From aec770435ec28d331cb867386de28246258dd8a1 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Fri, 20 Jun 2025 14:54:55 +0000 Subject: [PATCH] Update documentation --- 404.html | 8 +++--- ...7c83d148a0460c0432b36f6a42d7b44c3a5c6c.png | Bin 0 -> 46059 bytes ...904a3b508bb6998f378c1fa5ff621e0b76dcba.png | Bin 0 -> 31291 bytes ...ad5931021a6b52125ffe6ea82c15192f5c5cbc.png | Bin 0 -> 43088 bytes ...e8ae3d8ce069a10fe123160b635c1fc01d8ba7.png | Bin 0 -> 33594 bytes ...6216288db32800cbcb0ca47448ae11442d9883.png | Bin 0 -> 32250 bytes ...604d57b778d81bc2acf9b92eed1a3caa96bfc3.png | Bin 0 -> 43701 bytes ...4c95c73f56bf7c1da30af1df83f9c401c971b8.png | Bin 0 -> 29973 bytes ...2750b6ec37bc3f923a84d59578627fb97a63a3.png | Bin 0 -> 31144 bytes ...7a760a93ea033e75e2b5347c0072288b92927d.png | Bin 0 -> 35723 bytes ...1ceee60cde564284e6fad1162b1a2b9b25b641.png | Bin 0 -> 35371 bytes ...86700c131a119d054608abd079bb6d311f2b87.png | Bin 0 -> 37619 bytes ...b30d984b3efedaf334390b8775103b2417708a.png | Bin 0 -> 42060 bytes ...3f3e94204d82c2aa2a1be33505d5726269b33d.png | Bin 0 -> 36378 bytes ...f0d24b03f5dfd816e976ab8ffe005551b22c02.png | Bin 0 -> 49515 bytes ...c1d157cdc094e4bd55238da2ec08bac1fff860.png | Bin 0 -> 34425 bytes ...907a4aa84afb3d5bf02b43a21b1f2f64b9c58a.png | Bin 0 -> 47034 bytes ...dc1f334001fc54cee3a7eac9cbc4dea643cc86.png | Bin 0 -> 33381 bytes ...801fc2595200e3bf81455b3a0f3d8c778f1754.png | Bin 0 -> 31103 bytes ...c2c85318270c24ffc60151a8da73539528cffd.png | Bin 0 -> 34741 bytes ...1d68a5392772314d59475dbf8a6ecf28bb51d2.png | Bin 0 -> 48568 bytes ...2ffc913bfc81849f1af04850c47b0b71592cc6.png | Bin 0 -> 39845 bytes ...94b790946987f78e2bc002a30078695588dfd9.png | Bin 0 -> 35515 bytes ...cf8f9ec7f1308a8550ff34f669a0ba418dc5f3.png | Bin 0 -> 31959 bytes ...4ebc692fa8bfc53d4a09fcd2eaffc2261647c2.png | Bin 0 -> 46411 bytes ...fcdbd2132f4613335d41c4c5b8048101f57cff.png | Bin 0 -> 32452 bytes ...329f0a0aac7f1b69051e7b95e02e5c2a4d41c6.png | Bin 0 -> 34135 bytes ...981419ad8c1adfca6d46a26ed156ae34a0a1f2.png | Bin 0 -> 37353 bytes ...0cecc519f4220fd3d83aa402780cf411799b5b.png | Bin 0 -> 31723 bytes ...c0a4a46607062b7438f4dfef4b0a66ae9c9003.png | Bin 0 -> 30524 bytes ...66d4bf0b0d491f392e1ee9e13b0cd0c4dfa92a.png | Bin 0 -> 49314 bytes ...19bcfec75c21bd4997a65ce0e8236cb9deb819.png | Bin 0 -> 35084 bytes ...b75242ef8b31058734eba031198cf088659ca1.png | Bin 0 -> 36369 bytes ...5054aeb1340d93aef9709bd95ecf5435f420f0.png | Bin 0 -> 47750 bytes ...8576cd6d5ca670428dab48f86e92d06d4257f0.png | Bin 0 -> 40304 bytes ...4eac585ac268b49f21d44420d231bf7adf742a.png | Bin 0 -> 31880 bytes ...de91f0a974b32b80713193ee9df905dd354ce4.png | Bin 0 -> 52887 bytes ...03f9851fc0a144e9855d4ed08de9b833fc868b.png | Bin 0 -> 34986 bytes ...bd57cce922bad447799beff7c1ee114e708598.png | Bin 0 -> 46636 bytes ...1c2afccadeea4cf3690024991cb696458175e7.png | Bin 0 -> 40149 bytes ...064a9e5880dc48da56f702516d843ed8fb196b.png | Bin 0 -> 33467 bytes ...0ac7a001fb8da180d70a75dd55d5c9415f31b0.png | Bin 0 -> 39080 bytes ...097732f0d7330cb6a420564a73a93cb79ece81.png | Bin 0 -> 37446 bytes ...05db1527c54e05d581058d9fc8c51e783d436c.png | Bin 0 -> 39613 bytes ...09fcad097b49d4dc509ab820f760b4c84ae4b7.png | Bin 0 -> 35605 bytes ...b3bc6e0399a055bebbcb6e11b24cbc7d4ddfb6.png | Bin 0 -> 47658 bytes ...e5bdb3c297640a56997295da2f3f98e70e6849.png | Bin 0 -> 32906 bytes ...aada6aa81328f54dc1620d786116367e1fb61b.png | Bin 0 -> 32990 bytes ...9c4de77bf3708c7062d3e8ede1bec641164471.png | Bin 0 -> 48838 bytes ...641fc6da304fe60a93afe444d44e2c71b2b2e8.png | Bin 0 -> 40431 bytes ...5c094994ec6a35ff6c61fe54c2eccca9966a3b.png | Bin 0 -> 40552 bytes ...8415d.0794cb7f.js => e168415d.ea42405c.js} | 2 +- assets/js/main.7ebdad13.js | 14 ++++++++++ ...CENSE.txt => main.7ebdad13.js.LICENSE.txt} | 0 assets/js/main.cb7f8436.js | 14 ---------- ...n.9971b046.js => runtime~main.02de6760.js} | 2 +- build.json | 10 ++++---- guides/js-waku/configure-discovery/index.html | 14 +++++----- guides/js-waku/debug-waku-dapp/index.html | 14 +++++----- guides/js-waku/faq/index.html | 14 +++++----- guides/js-waku/index.html | 14 +++++----- guides/js-waku/light-send-receive/index.html | 14 +++++----- guides/js-waku/manage-filter/index.html | 14 +++++----- guides/js-waku/message-encryption/index.html | 14 +++++----- guides/js-waku/run-waku-nodejs/index.html | 14 +++++----- .../store-retrieve-messages/index.html | 14 +++++----- guides/js-waku/use-waku-create-app/index.html | 14 +++++----- guides/js-waku/use-waku-react/index.html | 14 +++++----- guides/nwaku/build-source/index.html | 14 +++++----- guides/nwaku/config-methods/index.html | 14 +++++----- guides/nwaku/config-options/index.html | 14 +++++----- guides/nwaku/configure-discovery/index.html | 14 +++++----- guides/nwaku/configure-nwaku/index.html | 14 +++++----- guides/nwaku/faq/index.html | 14 +++++----- guides/nwaku/find-node-address/index.html | 14 +++++----- guides/nwaku/run-docker-compose/index.html | 14 +++++----- guides/nwaku/run-docker/index.html | 14 +++++----- guides/nwaku/run-node/index.html | 14 +++++----- guides/nwaku/upgrade-instructions/index.html | 14 +++++----- index.html | 14 +++++----- learn/concepts/content-topics/index.html | 14 +++++----- learn/concepts/discv5/index.html | 14 +++++----- learn/concepts/dns-discovery/index.html | 14 +++++----- learn/concepts/network-domains/index.html | 14 +++++----- learn/concepts/peer-discovery/index.html | 14 +++++----- learn/concepts/peer-exchange/index.html | 14 +++++----- learn/concepts/protocols/index.html | 14 +++++----- learn/concepts/static-peers/index.html | 14 +++++----- learn/concepts/transports/index.html | 14 +++++----- learn/faq/index.html | 14 +++++----- learn/glossary/index.html | 14 +++++----- learn/research/index.html | 14 +++++----- learn/security-features/index.html | 14 +++++----- learn/waku-network/index.html | 14 +++++----- learn/waku-vs-libp2p/index.html | 14 +++++----- .../js-waku/migration_v0.026_0.027/index.html | 14 +++++----- privacy-policy/index.html | 14 +++++----- .../benchmarks/postgres-adoption/index.html | 14 +++++----- .../test-results-summary/index.html | 24 +++++++++--------- research/index.html | 14 +++++----- .../capped-bandwidth/index.html | 14 +++++----- .../incentivisation/index.html | 14 +++++----- .../maximum-bandwidth/index.html | 14 +++++----- .../message-propagation/index.html | 14 +++++----- .../rln-key-benchmarks/index.html | 14 +++++----- rules-of-engagement/index.html | 14 +++++----- search-index.json | 2 +- security/index.html | 14 +++++----- terms/index.html | 14 +++++----- 109 files changed, 388 insertions(+), 388 deletions(-) create mode 100644 _og/087c83d148a0460c0432b36f6a42d7b44c3a5c6c.png create mode 100644 _og/0d904a3b508bb6998f378c1fa5ff621e0b76dcba.png create mode 100644 _og/1bad5931021a6b52125ffe6ea82c15192f5c5cbc.png create mode 100644 _og/25e8ae3d8ce069a10fe123160b635c1fc01d8ba7.png create mode 100644 _og/276216288db32800cbcb0ca47448ae11442d9883.png create mode 100644 _og/29604d57b778d81bc2acf9b92eed1a3caa96bfc3.png create mode 100644 _og/2e4c95c73f56bf7c1da30af1df83f9c401c971b8.png create mode 100644 _og/2f2750b6ec37bc3f923a84d59578627fb97a63a3.png create mode 100644 _og/307a760a93ea033e75e2b5347c0072288b92927d.png create mode 100644 _og/331ceee60cde564284e6fad1162b1a2b9b25b641.png create mode 100644 _og/3886700c131a119d054608abd079bb6d311f2b87.png create mode 100644 _og/38b30d984b3efedaf334390b8775103b2417708a.png create mode 100644 _og/393f3e94204d82c2aa2a1be33505d5726269b33d.png create mode 100644 _og/3cf0d24b03f5dfd816e976ab8ffe005551b22c02.png create mode 100644 _og/3dc1d157cdc094e4bd55238da2ec08bac1fff860.png create mode 100644 _og/3f907a4aa84afb3d5bf02b43a21b1f2f64b9c58a.png create mode 100644 _og/41dc1f334001fc54cee3a7eac9cbc4dea643cc86.png create mode 100644 _og/47801fc2595200e3bf81455b3a0f3d8c778f1754.png create mode 100644 _og/47c2c85318270c24ffc60151a8da73539528cffd.png create mode 100644 _og/571d68a5392772314d59475dbf8a6ecf28bb51d2.png create mode 100644 _og/592ffc913bfc81849f1af04850c47b0b71592cc6.png create mode 100644 _og/5c94b790946987f78e2bc002a30078695588dfd9.png create mode 100644 _og/5fcf8f9ec7f1308a8550ff34f669a0ba418dc5f3.png create mode 100644 _og/634ebc692fa8bfc53d4a09fcd2eaffc2261647c2.png create mode 100644 _og/68fcdbd2132f4613335d41c4c5b8048101f57cff.png create mode 100644 _og/70329f0a0aac7f1b69051e7b95e02e5c2a4d41c6.png create mode 100644 _og/70981419ad8c1adfca6d46a26ed156ae34a0a1f2.png create mode 100644 _og/710cecc519f4220fd3d83aa402780cf411799b5b.png create mode 100644 _og/71c0a4a46607062b7438f4dfef4b0a66ae9c9003.png create mode 100644 _og/7866d4bf0b0d491f392e1ee9e13b0cd0c4dfa92a.png create mode 100644 _og/7c19bcfec75c21bd4997a65ce0e8236cb9deb819.png create mode 100644 _og/84b75242ef8b31058734eba031198cf088659ca1.png create mode 100644 _og/925054aeb1340d93aef9709bd95ecf5435f420f0.png create mode 100644 _og/988576cd6d5ca670428dab48f86e92d06d4257f0.png create mode 100644 _og/9a4eac585ac268b49f21d44420d231bf7adf742a.png create mode 100644 _og/9fde91f0a974b32b80713193ee9df905dd354ce4.png create mode 100644 _og/b603f9851fc0a144e9855d4ed08de9b833fc868b.png create mode 100644 _og/bcbd57cce922bad447799beff7c1ee114e708598.png create mode 100644 _og/ca1c2afccadeea4cf3690024991cb696458175e7.png create mode 100644 _og/cd064a9e5880dc48da56f702516d843ed8fb196b.png create mode 100644 _og/d90ac7a001fb8da180d70a75dd55d5c9415f31b0.png create mode 100644 _og/db097732f0d7330cb6a420564a73a93cb79ece81.png create mode 100644 _og/df05db1527c54e05d581058d9fc8c51e783d436c.png create mode 100644 _og/e009fcad097b49d4dc509ab820f760b4c84ae4b7.png create mode 100644 _og/e1b3bc6e0399a055bebbcb6e11b24cbc7d4ddfb6.png create mode 100644 _og/e8e5bdb3c297640a56997295da2f3f98e70e6849.png create mode 100644 _og/f4aada6aa81328f54dc1620d786116367e1fb61b.png create mode 100644 _og/f59c4de77bf3708c7062d3e8ede1bec641164471.png create mode 100644 _og/f7641fc6da304fe60a93afe444d44e2c71b2b2e8.png create mode 100644 _og/ff5c094994ec6a35ff6c61fe54c2eccca9966a3b.png rename assets/js/{e168415d.0794cb7f.js => e168415d.ea42405c.js} (99%) create mode 100644 assets/js/main.7ebdad13.js rename assets/js/{main.cb7f8436.js.LICENSE.txt => main.7ebdad13.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.cb7f8436.js rename assets/js/{runtime~main.9971b046.js => runtime~main.02de6760.js} (98%) diff --git a/404.html b/404.html index 542d01f..6a1ac4e 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ Page Not Found | Waku Documentation - - + +
@@ -15,7 +15,7 @@ ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}
Skip to main content

Page Not Found

We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/_og/087c83d148a0460c0432b36f6a42d7b44c3a5c6c.png b/_og/087c83d148a0460c0432b36f6a42d7b44c3a5c6c.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac9c4396db86e888a54ed7caf25a1ab77ecbb35 GIT binary patch literal 46059 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 E02YA>0{{R3 literal 0 HcmV?d00001 diff --git a/_og/0d904a3b508bb6998f378c1fa5ff621e0b76dcba.png b/_og/0d904a3b508bb6998f378c1fa5ff621e0b76dcba.png new file mode 100644 index 0000000000000000000000000000000000000000..8fea29883d44cd08117a6dcc0689cc06a8f318ae GIT binary patch literal 31291 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 LQ`x^;|MC9;G_U2x literal 0 HcmV?d00001 diff --git a/_og/1bad5931021a6b52125ffe6ea82c15192f5c5cbc.png b/_og/1bad5931021a6b52125ffe6ea82c15192f5c5cbc.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb9ded3bb787a36a18d802340da711ad2140a80 GIT binary patch literal 43088 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 Ta$opm?o5jEDt{5r7~K9}L$@}= literal 0 HcmV?d00001 diff --git a/_og/29604d57b778d81bc2acf9b92eed1a3caa96bfc3.png b/_og/29604d57b778d81bc2acf9b92eed1a3caa96bfc3.png new file mode 100644 index 0000000000000000000000000000000000000000..6d41e08e89339575a1f0678fb6a3eae89a8ac8e0 GIT binary patch literal 43701 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 literal 0 HcmV?d00001 diff --git a/_og/2e4c95c73f56bf7c1da30af1df83f9c401c971b8.png b/_og/2e4c95c73f56bf7c1da30af1df83f9c401c971b8.png new file mode 100644 index 0000000000000000000000000000000000000000..1fdb288cac8a6a94d8ef6328ebe73ba518c99e50 GIT binary patch literal 29973 zcmeHwd010-*DaP7+bUpdoq~YX)(Jro0?MdW!3mHd0m7&V2w_lW2!qrX6a}hG0s<(h7iJ(yAOTucfS(e@BVY2=YIFO{89U8OU}tTzrFU_d#|;9 za7|NP@LSZke0+R@moA>y;p6)N3siq#}0{9+bH!=3KCordHp|_{R48E055= zC_fZl?}w5c{cL>3`5QF>U;eP=%k%Hq6>}NfIM+bJpwsalLW^=$9?gqZc(eJL=TO|x zq$9(Gz|=h&arwuNyPE`do3Huhd50(d55gC}2=e?F_#c1a-}1%wP5fI=RPz1fmu+8> z&Q5;wHG1ubA)o!V;IXf-e#!GAm1lm)7brTkZ{3^NC!4+R#CL120vFYOkNOmU_ZmO% zec$zeU-@h0`879&{Pz6WjW2X!;|;+H+&FSbNNvQ>1}OXut^Z9xA!gGymyx!gGm8de zJlMVNiGJJ_OjeW1;<&WO=fCFrA0EHaZC}`=tp7rQCyQLO^%VRe-PAU_Nv`{Rl?Sto zO*HLxrI|=%3GO-h6WjQA6i*U4bBP~cd+zf?v!$19NhmoxgC+rLc-A+(xyxT?C=;^U zeH8lC%KX4Ua+GP%cFj{SE}#{bXWJz-h}Q9*DWhakK^Jkl%R0eFjzSQ1Zj_d`?RfS2 z(~~PpDvwUCO-5&KnV)_C<(pr(NEz6iTK-%mJQbF(bdz{Zs%*Bco-kR)?jzFVdTv+M z;|J>V^q@MQ2ENjSj3oG$lg7@CGKpIJN5s}=5X6D{L%OJ z54Wdk_1viwonlvTl?R_%gv1PClkd!RTFVo%>css@ohFKg;*D5cPp(KAx@MV{d0F-i zbm(f4iX94j-O|038T0SY3D*RQ`|cKTEWI^I^R%F-@Tf`PcchpjtahTxwR19{biKFjR(6G-Ru}K zyUe_$t)eX>8woxuoS}%Zwo%d%vxF1Ze_^oTKoyRXqpjml3kZuDdoDjbUVi`gow!${ zF^1N0WN$w2s@s)>72n_19=33+NAPwkw~E^QtT({lE`0jaAB~5;kQ1v|pk&1u%g~IS zF(xyK;>)kzp%c8PFELnUb6x43Eg$^2%dw^0T@~{e7%XN5S0&QKt+QwB5D!)IZ+mp@ zUeETYA1&TLKO0f|zJj~Vd}@;t9g`8_)&JlSF@FE+>3Ru$lQ0xESluh=V>lW4Y7$xE zeoIpkerEP$3K45TQS5u*#c-`2g^+JTbe{h1rJd0*l z2Z7x8schr~yVjzNMQtc^;N_Tyn+~JjDsR$0TI1ZJtZyTvJpJ}SH2U;-b`>$^qTgaS z{b*L4=U{Y%pWnydcb%mBz4>aFUgjk&m8)F0njQLjy))163B`H7@re7~znr_g*VoV@@ zqM1gP5g1}-gTg-3SG)u`yemr}sC$p?AMwZL-)t7wi#hMdU8Kuo#k%)-u0~~-)awqN zD>eA6GAyT1S4$Z^Q>HkPuS>zck+!JSTUl(9r$6enPEell3D&nMn`u^L$P`UyM)4Be z%Q8BGPFl}12jnX_8cOqj-MjPYvAP<2vNyI&4jqrGeSK%(rFBbuG|fKyjexXGTT(rF zd8*{;#8}`LR>~eM(^BDldWCND$?a<= z<7vcN{i^xS7GLa)vyPD9Knb(F!MphSz=vCj!Tsj7{X7@NXV9-gZ zS_pE{#qm6?L2T*bWJ#7&F902Grf)eII`NYH&11KsbyOoNJh!1%Sas?B zIJH``u;(NI#WT*bsV5_1xHU2GQaye5+IZUfn*esxHoKCEf~h~Z9KR{&)%Ie%Vuh8} zAeh$CxWM$|8hJ|E@35OJA2CjM3BXj%Pd6O5U_|IQ_cVW)FP0S}jOSP}eHKPi^)p4K zZ=AOrv*_CCG5jJhQslOw#qj$Vj2%`Z<_o1`QoOLCqr8fQuP&xPw?*f+g>7n4WR|{W zL>e9CMq&-n?iC$+w%%{O&YjDcI&E-8s_5pUy{Avk%)}60n%ka7KT=&D(aHe`uHy_P zm^nPL44(a|8e*zS_gh7O8J_oO^wsOvx(xAQY|k@d=f?5xe2Y` zC{Op6w)>DB!`75|ojX}le>7dzMl)G5*l>UmWfl_W-dE%;rQheegExPqi6OO}>kfz* zM;B&aSq;q*&OKv?{>V3e|X{K{bpk6dYO1{Q%u#)H$R>W&|B_?e2#)N zo3+F)U!3gz6rc7TE2?7Y=NOT+XjUb^aJYUrIq421&$`6`V9c58!-MW8t{uIB#G*t0 z+XJD;5a)t1%(KqwK zIAn_gdKYmu*Fn!6B&evb$xAaLDlj<3DoybQcb3^^(v zfKuyX`KE)$)!@v4RMC~GP``|&MI?zJX`>-HZBWhDYXVpa31?E!c(S2-AXL@V zHDM^8AjPI%;)TKFmlQ~_qX&hQK35``fT=nt>d{x>$HgWHM_|tV?S^@JG8o%ZT- z`w+8N_Z;bZDTKov$i`7Em6rqGYsJW>O?O$v+EZUHCg+hgPcy=wp1N~`;w~odV7wPX zoq;jT;22q~Y1Z8JZ_B5g`Ph{%F!Ih{SLLe{!A6c{=s^Ihv~oZA@T{&UNLb6+ppti( zk$U^1_M@xZ;3N%q7dlcZQvL9|>E1IMKnm@NY@E6OSN$&n#cZdQ+jYM+DjB`X`-ZoM z%VsO=JZpP0dB;WF%vvu@P<+{DqYpQDUVy3u{uucvB7BxpW>@(lamCnD$&ipH+57a;=o0=^qP^XPxT$je3* zC|lX@xymg0>(?zW3GB&(hy8SUnT5SE|0{)J0eDsF-f+hl!RLj2UJ@&_sj3ko=g9H0 zPixgg>^mGhNfj##Xw||O{*lvm-X7klM77```@&x8r%#R#coNjhI9on_BkJ=jQBu+^ zN;B2_A0GSuiX>St1BfEyUMu9A&$~~UpYi;P3Q;N|?mK@y-z~{GFU2^GLY1g)ldGYI z%y#?Yfn<4= zz;sDU89v`RA^jy&eVrR(J0uGlDa*`{;o|j6>@+G6m(X`e#7zYdXPR3sv(`)8$hf>{FcYeFoH?>7qSv;(=)sJ2?$vz6?ICEzy=}J zopJ0BK*Ws3^V>Bc8HM)vsq*lct>HmPv31y`2VRIYc?zo3nnMZR-?ykN+V%J@PTYYT zuE~N&hY;->MU2RYnI$G+8nEUKd?}S;<0XWc+y#I3RkAS)?Y4G;%QXRYs@k zSlB}EA|y;x;YjA|{-Ej6oa1O86OHn_ZsF8$6X96dINybloKCCQ z2>tV9HXF)f!y9p~)CYhdQUZdg9}cKJx)sHYjBx`@zcyKsz?+~iUqCARjtfaM@q_(hTDpU${p*hbO}=x$v37*2u6TqE8rd3? z;9V5aFzdjN7c%f@Jn^_WY@tegWg7&k4~BpEvAWoUuXY({JDGTSeUvI0|K2*z70daH z9q_nMp1U+tXym))SoWDEU@H+V0LVlA03Ht$AW7sP<-=8(CcSbg(uvqd=*-!J}@Nh_@c7)pNGiYf>1? zV5A<=Jlz&;vPClg+9Ye|I#fE|7NOGOixY)roHKJr3b&@*>r9>NOHJ@Co{oolys+1K zc_x8t%qi`5D6uEfn7}bL3VwitlA6OAj2$v{UngcplabR^__*K;pmt>%*drQ6mf6@< z#_u`(seZ8lYCIyX{cBqyXo!x`X;WFX*~P{;dD#D<9M+T zPY5YJQt)(%GWl%?uNg1sb|~T=T<6g3C_=uveh#pj8aU?dHz^o}N6KZ?7((yuD!~YL zs?`Tbrm;PRAIUCfya(7)xo`Ia1z$?+(Hrf|v!>w1eP*=>eUNtEbhPmZSME`MayI(3 zBU08f9d`q1C7ezz^%Gy`sRtPVQoV{DrdRk;Mw4Z0gGF}Li4pAbHj}L{*v>r?Q&zw! zv_)11u$$q=7!er3fmU_#;K|++{enfZRVj;VM9Mse3yx?Wi;=a_p_G-wX`0?yQ|fnU zy^CR2FLtq;fePI$?tLQC*y-KQ3cr+StD}ycR{~T0pr?zDy=+s1!I`jD7Mc1hlJ#MH)})fjVp3*Z3_f#DR{4T0rL0X? zXl5mDy)q2vHJ*FgNtTRJ)Qbo$uE&We=^)f z#&a4;E&;TByGuXtM$sj~eYX_9wE2qitwhE)q_};ke>gdXHa|5GYqH4|lB<=9;O9Ti z38fj&Ajt^m3Wik4W*3-dG+!g2ciUyTi;kTl4c_`Qi#VB2#W2RAOm48v+rP%Wxl@7dwj1JJQ6Z;UV* zDKGP45u*pZ#z?z#MUXV%&%e30ULwn`f6Bd@C&Rafp!qTqZL=ZFxu{xE_nz-)W_~_{ zoyG`YdTtqjTJKiwG@JK|FZ?lQzC`-poJ)5N2Y|$cLJTTKLbrCBY_s^0yTY!h9}5(9 zGst86LVh7m%3C!)otCT3m9?;QvGbJ9OqVfN$v~=R>5M3jOyFoD{ay znu6=nbrNWMKXMm$vcSm*J)jCu84@(WuLYDO1CRF3Z)EbJj-+WvII$w z!q;V!8i&g-%bJ>dgQI0ZYfu|M4yc5tyMKPOSwHiNU^Y%LE&s_ltzyOX5v1DDJ|T}5 z`ir%I?XNSndL4Ro7aaWtiRUS96G&&tRSrwS;EWuKEIFlV8QS=U>jP>X5TZt|XBL4O zoos2cJr$Ndb#|&^dBQPvSqO$N>d#!-E-@l*!W`jk*~&VYOgRToab}4t@f2YcHb0nn zeEdDy_0r}nKPXe6=O2^`SVNqqk7Unfu#-u@1{WTj8>3};*J7(K4q0e;is_$&`HUc@ zDa++)2|d_|heJbKqRHUvHvdV%1NMrIUQg(d)PHcN`?ynFp&+s-g|=CQU$;f5@<}Ea zidk&t>6u2E25w}5tehCqB^V_5Ee(k4n-oG>Flc&w9k{hhTAe9~kDQqUj)*~>M|ifC zMu@`bE25fC)lrhm>xGVjc^`NO5%@V^sr41YDA`w|@qjYU0A}!w>(NL|Y~{w@8DmDS zDLUb-Q6K%bPn6o{fe>tsOdwTSk3P@#}bjmZ8sZ_Nj)0LgkgjvenxxP z4Xq@JxGv$;S+MsbAYb<$AGcL;%!aY0JRh?MvDzdL|* z3ou!!6W(UtQx_=TrswZZpF-OxnpN#S?Q}D&<)TJTz+)`IlJQu@9U8U~V=BNAhbig$ z6f|;{IdqX)h=YXx@?x?MsJPpIexqSpfwXV4Ld8{8BB9%Nkai53jS={Rn$JFbVr}9V z&@&Z3b=$njmwGJ6kF9h^9)-bGvm*s#q6$Rgt( zCjr`S3@Yz5F!v{prIfZHdCYU7?aFa`xrExyf2QUD)asR~blc@cBzVm?%Cv;HQ0q(9 zD?gf$GJ4Zv?R!uyVMSwBAc?C*NtxI>aPdkzO2e zQn=C1^=G?VeuW2-Ia)dE@`2!d;^5V%*NS|h$|HK&zy0IK2%3=Mcy`(s-H`VrXnsI- zHJTaU^JH;k*mdmdHexEwYvd5_b87TeVoK0{(Z0SDav#j^#SGa^4at5=;pmp7A#;?mbbAe>eNI6S^aId1O(zL##g zxHQuuktGRarfBFWPX~YXILnCr3XLNnzS{aaDm1@wks?!SqYWJ3YCq0!s`tp6QgZ72XCRd2|G zp^2~o+c1yXkOgnZg8$V}+W>_PQ21M9*(ElGcs=wqz8(0LR5s}-Skz}RV64d|H0z}nH*X`X7 z!i{?6^>jE^;fNJ*xEhUE!1_TN5DbFgA5o#;YEdWvAyv=JIx5z`4R{@vJurF)72))! zchVrF@Bm5l0LW$^!qD?TGpNTtfY>TgD?vqcS~)~%`fUs+SX5CC8PE0LB^9&;5pC)4 ztEojgSB1@#STn9V?5ZbdK9(VvkroU>?4NzvCG-nm-Rl;73%;ISJE00rljBm(f(UW< zJSccyCI$#Z7Io9b{#B8$rrYqsqYlrOD%|mjLJ}B zNnx6{FwBd0Za%FM|I0iG<7z-jY!5OSU1>xEqSW3GDv0j=Go)Z}-P}`M`NyUP|F*5V zh$rv`%3y?^%J2n&m-Df_#*++gt1n`S06UUV$6E!sW`oA7k!6+ita2~Ung+xTqb};I z7we$=155iJOpI@$@^y}K>1zL+B8CTu*`U(wpJ|K$s-+C0mAcmDJr+eV2i%Zqg&=7{mR{1Ha8e-Jdz`_TS+ za47!mY#|8B2jgScj7p#D&B7^1P69d`bpwRHL>FWIt4+~&}z{7bsKu8pq_rSGXLmv6r1oSX?A+LfP<3SN98`Qy7 z>)f(-E`IH(7a};5IuHt<(N{*Odn#>VE0-e&Zm=Hwfzd1hpM}|XvvVM+W2|%ke>>?O zm7)xexb?cyVgwOw@{nol;0CO;9jWdS zMhfjmD5pd<%Mk&;L&?NW7*e}6g4L;rc0B81aBIdCcyRxV3oD5j96^NkF&Y^dtYI>S zT?}TQ0q_stzXv(GVeF@3#Oeda)*Z*oW_37~oWWX9Gl?Q9lcFLt9B(o~w7p%d5VY2> zCyU4W!?aW$qy^{yJ_GKFM<4>i$EeP9;j@}D*r0NuO408?s5CE?{(wmFA5Pw>+_d>7 zbpRx{%x%nn2IpOWoiZ9?AUZkiV4i#sL$Z1gr?TrH-O?+;?kQHX7cgk5N?5fz|B-g0 zS`CO8=u+vqZOUvA^Mc-8_y(>HG-4tm_W9cBs*0p>A{q&cv({Gs5?+)IqXSe_N)!rKQWR7Z`krIg zjVO{N1=Pu#7xO8g5tg_C@*&5mp%xIAO@V>x_>3tcUZjUTl*J{ z!FCYMzG!qtvA%@oWVft(EFU$$uSDe0csYzOe8x~)WenmX9Z5|HDG)=XU7SAqJCVA$ zP6~AZup#)uE|dHkPehdz&GrP`?slo^JiA#moO2qyoiSc16TyZD;!LR8eQWg+$zI67 zzr)fcKmdyE!7& zNwuz!4{Zmjh>(3|)vzAB#}m|XCsh$oGO1Y0Hp4R5GRj0Qs$#9A{!Cim-=G@z!at%P z05G$2d}LUF3Xm+WYjnXCL_q3rCo-{SBiU1sD#|*osNyT118s=yARAnDF6D82;KAPk zO<%aME23;_IL!i)BVtPZ0HLueuLeE8JRy{3N+2zjr!m3`Jg5q?D`3IDm3QcTjkTWa!xY_BXh_VH&DJ@07@rhjDB4+xvq_GymAe9h5*KV6h+%sA?R~2Pgp`iZ*sEol+ZIMolYDRc}uO!LwvB4GwniILA~{`GXR=A-5LbwW}Y8-i6?_ zh6u^;`vZImgCpCp4RFETboQgp=q>LlVj5n3jEw?@|zu7LlKds|?Q>E~TK0iGfk z1O744vZQzJy{vV>Zh}1uaxX-G70tf7IjC^Z)P|u)dR!o#Svp-$YIdZVxHlO`gd?fS z0?gNT+U;4?4>!X!Qo3s)(S&(2T`GO?lX)KlM6CJ_#koc{WTnsL9(7XY1=dc4zg2abVl|tJLEOVwLjBWxLQssXLA?*xW{pd2Q^~! zOfeB#I~IJ&Y6>(`A~#^IiY>WxRf)MLF3mrpd4D}h(xmBRnP3L!?ybsI?R&3iWjBn; zD}cd3W(EZkHqOYe_N>!3JFs4Dec^})pm2B@!AGlj2)7AYhVGah$>r?|2nM@G7ZESN zH2HD!_g4ZTn3w0G(^YZ3Fq9q^`Tl3zra(!nw5BUPA6_zCs*A=}dR3p|xe-@zc>*GqAzj za;k8trK*C_6)WDBAT%rv{xn&66>z>xa~wRmaybJ>P?0SEvv#mX?{m^z3Vvh6yw{9dX zk6Ww8W-9Fh$=tMCb9g%#%Zz-#_&D2hJdR80`SCM&5Ux*F1h35s9op!-q&^V?EoGLT zl@$1OuLh#Cfg$9^1m6dHYmT=jR-Jk?t86YNvx=gqu(Cj_uo_gn{Z}Qn_mHyZNjzc? zvM;vJCG{h!^O1w3h08-v8F7g`*ZB_3hg`=dLYI1K`1w7B41Y41QX+*XGtq6FD>fya zU>4Ljz0=W$-UF6HD>1}WnflDb79HQ#{=HFNgcJ!^j{^6M>m)q~YYfVBbZ-(}nz_Vt z#zJ0gy2a|NTmTo0jB_U>b;S(8f5ZtB`3O$^Q3o*MAkGCun?0cumhW@~zci{}F`By{=+`YZPaG36j<2^w`{059SNO z3@MZ1>T|-%KafO6((WQwPtOJm#HlrOO2g3vOeoQfEnSeb6efOh25qYKpf@;);gwDLf^ zmTIs>=Ii}bGrwh<%m%=e){*$2Q)E!L|9nyyod6Y0BdB$Cef+w_qS4JtGmSkJMpv-c zEtN-31oI1>+Q;U7s&ko}ZnAnRiLM45&=H^RrCZ{FVYb;Ofd9LqG}qRv4p}bn0g-IS zox{0?quUI1<2a7}z*3tU7a_D9=6rgKT_1uUTGrFd>w61@gkwx5<;iPi`QpinMbKcz z64q|)@OP8vGgOw(USV=qj?081OK=JWu;-Gh>OxQT-`}m^a_cJdHS85JVx2F>31)y0 zI7?Sc!G^3&^?I}9;Fax*Q zF9DK%5!7&XAVdG*(6igWc>dlBHN*{EEn-fEMIg^IC4WOafvNP%QJ4gm=1!2f>&^He zCcHtmGHerZ;%Z6;!@`OaGm1*!#wr>*xE6EB?t=T$X#!LfK0`aNvpps+Ug4!bnsJ?p zux-x!IY_Z&??KEJb(|pxcC*ra)o}iiXdojAnyMql0D{p);;tRq(KN6Jjz?=`xukT! zYYbat+t?)W&*jy^v5(??o;m~?U#^$Exrz5wP4sC*b?tpn$J*Z9vPS2MB*x(uEHz5< zcF=Vms1=f_Z8(nf(e9|EnYofcbldyI7iG4F=Ht8nT z+}NiO9LPo!+b0CuaTYj+YAWbpgGhj@X(Y|G<<^3}IO5-ZF+1~RPK#e==U*J~IT<4r zn4wj4a?kyAw5GyHk`=uISd3Nqadbe?XZfi*)fH(Ou1ko)z}O(HfI!Opu(7u7``WQh zr4{P$R)PT$C$tf@Mcw8P49z>K?~PjL<0>vVC@b(it&v$3DTj*tO(=*(mwRvjCkNPUbC+_zm>@%MP9Luc`~vT>ZCIPEElN@ zeI4WPP(#n0HDd>#3PosHduZ%I=uhS%q5zNP$oHvmK3IfWnzm<|RmgE1kkl}^3^aT} zj`R@((tTDE-}12e{fMC!YNuP~t`l8oV7~=1+;dzAZ~J!UNlC$se3m1LObvpPs#v4k z*=yRA3T5)V9zC{Tk5#aXn}Lx^921PYjZ4pf$~YBI#$v@RgXznY?hM*4Xm3n=nzy(0 z;BEH$&VPiXi9#QRMAv7PpgZ<{Ie*8=xNoS~1fI<8O8r-{E}yNF_gAwb^AQd)s^&n& z>F&WV5to+_6=W@x`@6v-X66mghQT%k;$}Zx2Kla|u?MkfrHx<6~X&$V3$*qvRI-DbUd1^CDDqTUI9;r z)XcICqYYSxf=N+w#98w66>i^7FrXCD<2||g3@QA>>$W$gNJ4WoddPO57UBSl}dO5l_o|{PPR5rHpT}dv@6C52fkNZxmulbN9~2}M#_+isiW~Y zI;Q}d26Ek9PitYtLXXwZxu1o>Y#kCAg0R2|r#YOnu+VPU$d)dQ(+aM_NtB?Pj~D?I zb}yCu^ZkMTJ&ugHE2Fg2M`obkQ3E!?)0B&XF>r#Fkkt;S0OePA9RSr%athG9QVSgp zBj2Of2|iJga@lRzH{grzXmtLo(qGa+tq~flU?q<=a*ae;kvP7@PO7A5S7Ys3rOTdFzRI~*XGtkq>W^ksKXZY)Me5h)54qbk>3*%-o>uf2 zwR6Nd1XAe-sO}pA@1;)oj66!5rH|0L0H9Z0DTcV-a3T4GNayM{+w?&-gZ(W1@)M;J1syj}DDk|bs8Fu>4^Ehbx!m%= zy^&E4ex83htxT<}xzkkQIW*f8C@osSm2+->;8!a!TGnws5yy#S(+k$ZXt=syWqP0h z^_6yFf4HvZgLq|v+XqN8{OQ*h%?K36Dh)f-mYm8)c0bt1)8P*cR#qlhY-*4Hluaol z!gg14U;KVjrujfKNvNi#!&|;stQlJwQ5Mf}W zc-`6h2Dv~0>Kc2b*JeNGGXzKOH7wFgEf&rG`G8MLKI4QBb8a@WdCwK2z4+k#nw$g6 z>@nK$cwj5H9!^2EdLA~^D9HNpB&)pDwK*rd68$5D-f3zPN}!S&0CpS-tsPm~DtHH6 z-25{2UTZ4(aYPI{E$6XNiDMQsPG~O_rHirlTPdg!LUJumUCy+PV{CW;-H&*Hgt#IX zCCb~*eGR*)lr$n;_7j{WVsY>2~La<3W>*WRF08|>?ncZeQ3DhfX!~e1&h24+>5KoI6sDC#;{bVpUb0Yia&Np~XYKlQPW3n9$F+o1>p>y)0m` zZT`YKThcGrH16}{zs$Sf7DQ*)?|$VUjEFqe{M`Ltt^O$8^z*uAz7wzuUF~n>-alN4 z=g-Pq?7RDfcY`IU;CGv!H9xTC8pv;7KHu|`)gTaulbLCZMW_YdD(lP1P|}|Ta)$AtNpfV=a+I{ z@H{p1ec#5MofZh+%6kW!1pegP@`cDc4``!3V_ z+qIOWIW6lQ{^XP>IC?ky#LY2#p{fW;jrTgL;6C|m$y%HD*!%0Wzk@^91L7tVyWEr&GjgXaG zoR*|@Vl#Ob0^Phq%p9Xv;x^F_`$<~L{5o?jTT?V*KdDBoccnI~zqZ`^mOmo{mwzj# zZrd2Jz)OPX*TITE`O>5J&1b>?*;VK$j;Cdkj4j$zG#Kf5sJvQWd^bRO0+qH_^`F0Q z8GvTv!)O`nT9~V&%CH*e3Sh`{0B&L@Y_hxQxm@HtRNIlJYXP+zccvJ2Jsf5$SvNnM zjzLy&HO8PNq+oREbTF;Li1)2sJ|e@HeMB%j7p3a!?GTrqSxh|3guc$qjhdhx+BEpi ze$}u?D$%~XAb1iFUiT>|?Wsj8(~O1zuw*-ajzQK`9WS4M*^HKV?AyEjkY>L2you!+ zbbOvq2XKZXMZn*6g^_nPtl*KL8Rp;8E@Qq6&_P~)fEaA`3x-a#?5hMU30G6*#KP@q8q~Ozv<)fGx7jg|o9_ z{M#JP%urpVq>*jsF<>?(s7a5@h)=ubSa`uT3|EH28ufK zl5&Tz7-ccfPmdKAk=3KlLs^D-2a%0914XcKBovd5#l*+5(6A0(xw#?pKJjAP`XExRZE}_Zb^AD?Vf0z2+>a$qK1(#Eb?=0i9>k`sZQE z>`Tx#vHFBwdrbBB{9yx=YqC%&v9JEM6QkbCQE?nvyqsvv4)r-c&gjry*hF5GAW3-b zZGv~3>?vBxv()#sEL4eyIkMb06+By~!{^dhal+P7C|d|tfcM}!NnVr|WaZ!FvvJ$B zfDE7N@6@Xc?7NTB*)SdM@aTiNzKN%%oRR{}oKX3`b4r;(10cfa9Vo&eUBgTmixX%i zR&Er1Sd8_=ua1{EgzMboGlg$UcIZ_o#L8VI`ZoXi)s~}XW`zzWoKa#xCM>aI>zA`( zy||Q_J!bhCBBPmphU~3*gLfbQkfU^)_-fobZD9d=>dvZ0b0^$|mc@8C+P~vVH{j2J zdmp6Mi#eDsKO+{hd!e`s#`#s>|E`FYXKjP2P?i?4!|a9Gaj$7Znn{Tp!`cwDw^K6k zfO<&2cIPXeOuWzb9bZVwsml6zG=>Gs6Sp{JxsP@nVK0DqNrb%OzgcWI)V+?3MPxf% z&ls}W%3&EKOXC!cn}dzf+RFyHH!m5(P7kt5wkZ!7`M0eg3?N2hqG=Nqna&zXEHa5% z;xI)jqTvbK2qt705z2-I98ZlT2(Jhfn%1e0zx9m4d3Kz&_J*yg5llZ2N;qY~7P_N_zHV1O_7yxK zdBQ6D2=Q4{+GFM0DvS64*7ENc)3iY)vX$fsKT7+(;ugG}i6mr=B9`0r(ziu7AMxAHRsr__PY^buO`}z&{+*#V1i> zDJ4SH+Y1d^y4a8lw3gY1ot0_Q39T8*ATUmM5>PXH zD4X?Gr=lzXtZLW~a&&bc|C6hE>3Q&)!^X%d{_*Re;^4EtUvKaxEDZIWU?w@+s!ony zgrSLEJR4eC@}thV)>?1`pA%DzzJ!JW&a)ZhNl%Z_5FjRE(vK220Kj2>v~>b&&QhQf z9kGdutd>Lam^T-uAQtnVKa%79ss!afsbpn3r<+moLCICmhNdF{9WQU+m0$1dHvXaY zukNq&y1B^O8YhxL&VF2>Ls{L#!{tTxakeU;n*b?#`NE$;7BGnWuaIQ4Vrw=m^3185 zi6^RpMnTkT_yxoI7tCH{?>&cFv7j;r8x)&;H05p+M@nIJ&dCBtdc25>WmQ%&)d4hZ zp0_Y}O5rb8a9v?l!L+cb&)2BHZVyZ&T^WR2i58uI`^A${=9a?vmH>5(<5w99^J%^e z9iPH4tm>ZpeB~t&CU^vhkgk~vt@sB0^AxugSk>b^gmmc1nF)efx&C^T10szWRVILT zqlu*)^w|{x^(h3Tk!JtBuj8II?EmnDK5&xfokH0=rHo&z!`fRsV+dneNW=JC^r8&F zs`nr{`!3mGnY>L}1y+;+7$pXQZm$j)1+oUe6}H{KhADQv{xytpZeS%FmKim(V6BjN zL)7t>GRK+0CPbbV8K?_Fk05AfS0j!55=m*rcvzo|bBusQqw0JvBg)k4NbRFNy1uWy zsqL`M(ojrK(x~8Ap_SW1OCNpzBRmDjHCu;&-8YJ0*Yi53IsLJ1`gp;c@%mS_dt>G7 zS9`Q)$K2tsJ%RaPo*Ib@4@0E<>sNpw);BCD1gT8eQ+PL`g_$ycIk`)eLH za8(JP2^Q3b_=<>Lsi(?AM@wq%G{vA9=sas@%fcO2h2ObBi;v@;&YR7TSPJmfuOVHl zzkS{jzER@-KU?B%l(qk-%i4_w(f>aUqK)X;h@SuJ?bV>CZ@8NhkNI2> zjE;uD2H_1nJUjxYP9E3e;rS+;hi9$(cYN?Wx<`m+@SpX6o-`)#@O-}+`DYDJZ2VRp zo*g`=jvqDfj34P)cXJz^t~T=PhQE%hUs}I5{P*JtL-4-fL{~=*}YV9}8I!X>^?j1H` zLvc>kiA1*XSo>+2`k!~I2VZyYuddo1XMbzKEQ)`1wleVNd&1l+WM4W~{pw(^H!CBE zRtWzYx8A7{TIZYjg*0}isgmjY-E^P-vP%S$ZfKd&Q5icfy^D8MD%|77L6QwA{PFuY zPy5r;5`%Vz9=@L$9I7(i4nLYh+fMehe-I+KPi^{@hFF0o<=94r-&N-ZA`Z`V6MWTz z4}G4CkPP+mo5$URMsvr*OYfg<%7HsA_-?RtqCui!C{&64(9=Ey)w)Mb?%b2VY{T+u z_K}|@pNgnyv~+!SVnUs?DpejyH?+IC@Qpzfe`=f~)pL1irdB&yzSnc7ZM<`}Z61|7 z&#G;#SRAjF*lv36s^I;x+kW%I_;Sufqnf2(?`>)8`?^W0)!F=;hMNa?+Kl)d>K-K`Uw7A5irws~@|)Mm3kAAf7TI6F4T zP=+@rT`${gpwgO_qutW zax8tP&~pmd3UaycLbO<)7bBrI%y+En7j&QaD3*S(L3Lqd+$JD|qc}SlV_CiS`~5Em z3a~OW)z$@cOs$Ii>NBTVwhO_8nkk;J6Kd=4!4g#9b}z6?oK9>We)7H4el_%}9N zeOn%$MO*sAJBUt-VEf$Wj$Zy=^5Nm3?ZlB+Z$&qX`A(kg6DnGTIRRFd@jrI&axi># zQZr^sdoJD;`zE8P*JP|Tu#A#f!JQwkF!vgaLig<)O`so4gwwK{Op=5XM9MPt9!`-+ zG<3M)x%#%Z?s2o=dosFFC|T+I@`(ne!QHP?Vk}Iiyz&}ViKWZj1;Lo_Hww${fxuQg zULi`TlSW&X3`Uz`%=XQ8*d;|RFI4?v8GOe!Hl4{5&T8`R50TGRDIRaoT7}R9^qgt{ zX-~dWTzvnuAFlT|?xp{#ta<9=E9*20r2Q6Ww;sB1lHQh_is>&aYGR}_2#u&VvyN(x7bEKnfkylS1R8Jq zjQl1|!I1kiy+o;Lh-0xK33H4jwcXmW27X+}l2Ob=d&SbI(}UKNwDjrN;ncXy`(yNj zeq%Q*TYQpauLX|vc=VymO3wA05b9C=U6Ew@ zVC4A0-ZGkKmuXZcl#bU(2+~f+NVIx$A>^9mtYuyO#p1e-IO?bjmi_JCr7*5PSrRCuPV3x;3e~XC)aTyVk-(~Kv&o8j9kioy0KPR zFa6Hc7)>ljOe6{ODj*-)%r-d$y&l#I&@_hezU7X4^MPmgGGSo3tnb+8~ge?#`&FA`> zHjsxxV`4Q!>-f*}-m~sl^ zkgW8pV^NPgTd!RpepQ%{^u{1z%COZo&HYZGmJK2%}o zx}l|S!B9@~hD;pI91dHYY+BQ<5PEg9u9~Q+Ljk%_%CNV1-xr?bZ{$g~qmi=)=OB&E z*d!vi-_$vZ{oWAY?YA&0ec|~{QkEJVnA%2ssU`a9uFC)pD6>UyQl)mEzI}$vNpSB> ze<7{EliBFcCCJL_$*|ZZoCZuJz4;Ndufo3$!eX(%+7|+F&}}58NV~lbSZ5oOkYi1= zB_1glDo8ITy!~4oGvbeS(4X8HrhJHR<2IwI%&Y!$wU)Ws-S`l4CUsv)DF=3o5m z(kM~!QNt+q@16|`jAxMP&P;3_mb@mOSO+&k84>Qr@0OR|GmoK~`r%kf{vAEM!6_OE{Ll}AqTl370_Ytx(g znEIixI#OFqF5bh4N|=wg9qff%`v?-;`R+%~Xc29|kqJm^O3k>J{z$B*wVHeMP(x#;TNUTuJ?QUps>qnFv-DqbTVxtm)L?9K zhKg2)u#`fZ9giAncJwIxSyRH3io~90bux|JZ&{3ZLPL<&Px9S=KHaVTApb47AZ9j2 zvp&0CzE7EN({{5l&TyY_HJm#^cyiwxG~t6*N4jCTIcYF39F7W)X=c(_#cyZ z>zf3~4&o>X+Ke`JEZ$t`G;-c9k6>s3|_(N&%M9df{Caq)^>tM=J-of@9Z&^jx?tRWq?aR>Y+ zABa`mJ$mK*V3c8loO&O?wzsqWVT~B89%q{980`BKc#TeZd`*;zXxSh8%~RVu!`UWC zTB`03Q`=tD?V<&nLczJ^tVUIX5@#FK4OmK1uXoPdAPL*J&a^0-ykU7@xbhiaa94&d;ix=?aR1A@kbs$V@k``|p}l#$$c zJ?r6cjqT~Tp8`~{zAA`$Z$4JD3Jw9md$dl8Q#zKkyqI=BAX4%bi)1fZHrW(3<2RfV zbN+Q@fX*5F)s^i)GgJ%bm@D0v(8CDdf~o$c*&f$gr%+IiYF&9;NAtO`F$ zL90m)#QbW&YwaX~c1Dsv*OOh$pjPc>W5p;49IG3=vPtzi0FG3)HDCqtl5H;UUf#=r z^3Jv+xf9^Y`Pu_T!BEW%ahF!dzBBv&Kyb{Uvc@1wDLIzU4IN$> z$?FIFb_0p8TP%IXZaY$k&(96UG$uBCn!(|hUYcxXOm{RTe1{ZzK?=U`XE|>IMQp>; zh7540M<4Zvj>YvY?v{M?`m+60I|K@0B>3MbPPS$&{kIze8sh|!Hq+;ygen#egZC$c zw|Bd?^eEN7Njp|{?{1y=c6Q@ZjYQS}ckWAh`&Y=@XWl8!zP`dTacGGS$0(%;YD28H zr(U}Y`U`}@LdQ^L(DhQoHX-7JV~}|kBRRT9U?QHlB1r-S%PBh*|AM3Ey;7y!iEqe zF0j9dJJVMXv_4iXU5z^yChavo5XAQqSPL;iql(9z*D(94+S0IY|Fg}yb#i`ATZi2s z?%Ji*J5^p8mxjKSR2_9}X|e)H~U+yzb& zvHA-@&-?reqBfxB|2gnHTu?iyWxpcu7kR#ExH9%_>(IUblQiWVPos)7==?HuH+!_5 zYr>~TV(k*WTpCTka3FP8O3T?!h#YwW9ciT(4m#BJHsPU~el?EQQJHGdNn$}Nw(zSE zaVpKJVsL;r(3af02>V|IIe_dh78-k3;JN9rUZoQI(SsNJQuay-QP5BWYn+aiO<$x6 z$aiPI9m{XR0@HK@ST-u1fRI(^U!C~HVVnb>+iA?`%DPPr(~o0a+&WJD zV*YbpgCd^YcV%?}nQ|ZD#k|c@0-FHq{*3SxC-fNrr|KowQ;Ob9P9!atE_MP!v-Mz` z0_~V*9W0C@m0Hq^8Hrt_xuxl%iUVRZP})6bZ+%pEsP;k_5JRUsltt93L@O2AX@b)7 z;)KNXOHJ#^cdv4Q?Hb@FtnPlD+2?}1B@Oz^d&l~rOvC3g_c>H2ZpYW>WKx-=ahAT! z2o%H)F5Q8&Ccd!{%Y_GGOMAH7nF>4Y6zh5degW!d!+^j*bFku3)FfQ<9<|Hcg-fNn~yXNNHb{(`3GJg8N@;4<-~3FJfi; zt3z%8lrCVmr3mU@+wOfaFC;nNdw9H7D(paE`)^3{7;ys-cy4YC@T6Qx@O!c4S&e$@ zWJVvL!og+7QV&cgKNl%;0UVKsSV`W@^md1$o*Is&E<``qjzm-JrmRA~Lod0GH&h8KR%wk*jbgQQ) z8=ctWr8sg?Q?Jp72#6KSL|6l51_V@l_e^YxLFZ2Lxo#kJodLaKdgAa1?%oxQ;IN3O zzRj!p%75`;*8GShosI+^a)_?llB^E!>qbD?<}p%hH!aUpEJum;dGz@L4PqUpf^jZ| zO|rivIHz+k2-1j@8VBNR@ETq|S>g!%dEwiis`A$_0yY;*i+9ni+Lu!uLV+Z!7;SX^ z?`|2x)ey5K;t=%0RSKI#*JME^B!!Sym@fzUGhLFpl_VT{D1b+ z>rf5J|Ct5&XjOIzP}l)h0IHmtx=%^m*?9Q%B~n~&nm0n0HkJVgj^9pXrl*C%{gu6K zhxKx;XQU~uORfDmZ5z~rI(bQNpb*G>6#Qomt(kH7eI;*y#qyF zw5FS+6d*8ZK^rYnAgN&Aecc;YT|(~SG6W1VJC2?$ZrC64HcXNE&{pkOh2PR!`HDI1 z!doLqWu)T&1)!{gAfCJ2Wx>Tm3)cukNY9HzEdO&B3}Lr0>ZCsRrB+iQ;;fs z|A&`l1{{ErMb0l~e;$o!OJxAkOka%8zejv(jU?vMrRlCgT9ZvM5)2}&lT!`*bKr9a z6XU*+uX}GH#MRUkbU|W7j%Afin-uNj7U1(%X{78Y=Dku>* z4Pkh9V+Xv4eTfn5J?*n&ketdF+ahRS~wdZ9jvglew|{ z`*=Vo^(tQ~!^)7|^^(j2z`bAos(RRVQ6LS{J(bNHR3q(Awh ze}%;zL*V0YH}*FTDBL(uXf&tL=eOVxK?_sk&W`s(Y3o~GOaTmnpw@9h)}yyUyBigz z+pTNEEaA`=GrokN12+PV2^%$*)7||3Stk zQN{eXIpI4sqQ$x(ahQHH9g(z{ytwF8K9~BU+-x<}J_!Bd%R4f>snA^O2No~v%0|V9 zCw|6GOb1Haw`a#L*e^|{sbzd`)ES0{u2hHU4+)W;7gmu&dgVg1YrX#fzOW)NXKpC2 z&E7F3q;n#X{N+3M7Q0*>v)&Qg(1%F$H7Foq_G{Sw z8WcWc^RJ2ZD^mD?x4s62|6d}7`@&xZG5?2*ihou3@P5@`0oVFfREEemzN+M49__2_ z4|FD9gTmLK@L{O(YfwOho?nB)*P!rW%=G{BNTL1|m-Iig0H06J{`ZG_Y0ZR*!W(Qw zq}kj(u}YqXw0gP@{SeQ$h1YN0=a)WshS~68ga~6bxGegGu>j@=;f21i(VYJ}Xq>rH z0*+qctAhENwq%T%^9kdHGU<;bkVjn4@l|52q+ff$Z_))upm~g*p_jbA{QZR?kEb8^ z&+i4Gk9>ngKbdN?>>Hv&8yWBTMAc>Bxx45Bs1F-d#Gr{0WOsyDVwv-C59IFeS0dMZ z*R$)2*wQ-!ThDw9)F2 zHX2-bapTr^seF{x_i%)ltn_R4+J7G8Uv6RF8D2bfIQ2#p#$>NM44oc+dwu6ykUG{e zky+CK-gWNJiKo?;CUamuo(2OEVqFeJ=7nnq?9>*FS4O*GiH8y&N1~u>OM@AX+~QP3 zY8x{Pat~pcEViFE9*=Fa&#T`;rsQhcmy8zXurf=kLC&?s)Tzu383E0yT>Je%qN(-F zaEW%G^L(ZU3@o;L_J>%*^em#898j$Y6qdbsregpkX+kjPXKkPRVmC7AIW({0G0n+W zqEs?r@P0o?={h(#WY8MsFeMhY%RzS-hHrMAhq09g6~af$yM|9QAz{shvVwppVIilo zDNKaoz|CW^%JQgC7%nN@D(`4^tx<#{6QcrOhG%*ulJEK`DPM8Y9kC|M;Oa=PvA+W#2mLfwxMjz1bx8b}F>BP8y}93firA55qAI zDMRXZa@n@A*i?Je86ph^G~3U`R10i9xC8%_Tgz-$A2-^UlkloiQ#(5UH*#5jl%d6N z_RyIE_17Tj6&96lBHhc^%qk;yQJEgG9=!N!A-g)vro#MAQtudyp4i3AxCd_jbQ5}A z;IZ&{akm7O4XWH+%+h0{#%*b_IMPVid|_thMeO2Sqdz;64}<$j8Rn@(15cdeGZ8>?0Orveh!-AQ}enDEI|Lge^!o>F9ya8@bxw@j6ocdT&-3v83M?l<|V zVx^M3X=~PPd-+Cyf=m`GdM9g@cjl=z!+fsAOv;VnO>;38-g`^h{-*B{8xKn>J0L_cCarBqK2h>~0{s^D_LoTkONobS{LBM@TN)xqiH zH?weL++J`ApWdCK67O@W7GF<#Kos`~rQp{&m=0c;g+)q4?P^MWG0e7I5y9r?mXX#Cy&iS zl*_Aq)3nPD+dl&0%U{X)#YC!1r;uIzs}c210T>T@STI;p0$Pt)757e0<h2O;Nsy%_c5S~1}%%N5AHnTThR>m6*( z!JdRnm5M6^#l_*0SS>H)Jm$a@V-*C6JLYQ@C+cME$gi8sw>QGr)+`8$VpViZ&b36> z%9Ow^Q#JIquhHx~R^SZ7Nrt|D{UpXj0_5WZa?8^Yu1Frbr$f>+3Oo13X%XrvlQ1g8 z{bVxkZVO%LNSpbgcaj1WSB?jQg zs)W{HvK%s#YTuVNEt}m7`VAx$#hP(FKA>Nc8W~=m64*W|0d&t~mFU2YqMhuSc?c@KBfA_Oj88;xvoi_;yiBB{ zVr@qqth76JoFqG#C^bIas6-i(ZpPioA5THiN~T&(@tGD{ed@97TnpW1q7 z?!a&nE;IKe@lXLH)CHM*ucs>v=ROFvw?ZTz4v7qiQ^pgIlt%OQK|C09wiPFr5@qa= zU}-XF;Ghg?TeP)Ov(Jr)dAz^${S%awsJ6g^0Sbzy74w=dJnZN>DxD;GV-aS>$=es; z%-Ex?DP+GiFWKy-!2r5Ck-djnEsQrX|2D=?9vfw5H<ZW zOd@A?-b*@=aa>a%yn3g@A3eR+X;Fs?*pqE%1t|HKDJq21WC{+I$b}hsx^KKqjCtYE zhWP0^DU<aLC$L6CQMr&Uh&v@ERiR}r8%6n3Qc^tpA4kXsLf{)MHgLoLl~O^LuB z8*?2#Ph`YS$CFSdgmqP!iwW*Fyb^cF^Z`68a7MtbO3?5E?UX>H>-KiHHuIj4?9Cw` z!_Y|TZr-CFG5l10URG|cBrCu14#q6OrDm_F`>Doi5hpW3ik60KwqC>zht{56uT-^J za!9_0K^g7jf+<=Arf4lo7%_5Wr`n+zh|O#&D|6$7KAv|0X5=2RwVRq#!s+U`hsoO% z&nKp@p9Vpafp5~f?VfkLmUWa$0#JyERK<}xca+E|1$guf247oJwT^r;YPH9$4FQqN zKmp1m&GKw{oa?YrMxZ*}6#^4B-m#;aniPzIrlQq17`ALyk9Ky$!)Re6L?U>t%&?P{ z-YUwFgHNJ{j)B}B?YjgE(RQymdCout%bn^CIK=70+M%+W_B}FLctR)2tot;1mF-2w zT&c#q_>uOUtMfX@+&d|0r}=NKKMGK$M`+EDni9Uphj<%qJdjs+2xYjjz=n4w^P*Ks z$v5tk3n_x9>FU()txQD{vB^puZUf5A3EPqRKoTcPGX204PJW)S(cU;$kIK;AM(s~e zf$oa9%dxf68?^WvrV=JuZCOM6VnX5CzA><(!<(i}h}>lQo~dmQKy!eaY0~r%AGux@ zr$`N;$CjltGa&dBF^MTr=mTZ$AP-8P?{w98((q_t1aTl~t0^z_PfIBNdjSM)r0q%$ z>_qlYcdprd`uIJle;%I&BIZ3U9(v?E;mG0#@(VScBWROtNg=J2L@Hz;yk9SPO{gIg z_8G!P86DZBy)f*0l~is>UFe3{%k~j`Gv5@w8tei3_I6MJyrTQ0P`|OTw+EM$M(g-m z5!FJhV-xorgbkKU?WZ}Bibuw^-17KZVbHWSqatEbV;MX>wkVBcA2ah`n(EliDnRb5 zDe$EzYQ}^UUcTTRmh+fT@5&+S`4UC4o zcu30X0@03=!&R#T52j>ACb$Xiw!9L>Nr#=!%gQ4bF75Dfx%6x1V_sj{pSVeyS;nh4 zVWae;QL*Y+wfnBcZAjWiqzQRSqh+8SF}{-8`-)zllIb0mKcAY2q~;6t6c{Sry9F#% zB%Q2MsEngdb+k%R z+d1V6j%LnPf;oV{ZHhhIc_mOc6l=9{IE=_}9%_b)Bj0QC!zL6n^fGK=sC;xwSy@07 zW_>S=B){sEwynGU2r_0rGAjuNC8}N4nG)k47l~GPBMtf9yT$N(>+|9(FRejvHof$i zsRnWznkX2Uf2OaiLeKPR5?$N8n{~k4y{(n66`38z1|rS~B+eaS;R1_@X&Upo5~i>) z6VVWGh%b+>JK^MHh3Y<)k5Qiro$S&iAOf_K-+%dZ`+91GL;7yXHO)vj<<= z@L91Wg(fHYT0vU79fsA-T%VncX+$)hW3`stL$*)`#5S^q1t@`<9@3{JI&lv67MznY zO(|Lmrql?_G64!`G0U6%q{I_k^~iC5cmbFOO(~|apa_*MOoA!y6(Jy^{u>ot2A>aW z&=9e2#eZBIfX9kE-%aFQxbWgZSCQ3GnvPNhq&y2M5K)l0AB%_34=O9-1&O~9h3sxx z7Rp~DTUriL%po-9tQwjzocVJF5L=F1RCbVm7pDRWY5g5<9V zkT>;laKc-mGF`E(A2qgxkNz56{-7{8pVNhy6YMhnL>zhs3`BU46>8zbnAAr|4r8&& zwe@=aHZZwgE4SCFp4cK>mJxumnHueqZv`RfVdldJxg0l$$!9r_KwQNtzhafa*9rw^ z$KE6fG|nC)0vMB+m$iW8^m56J#bHXZD#)qPeFT{9c7PXG96*0`s|s*~LRbHO-OKhAl=BTWp_4LnplUR6n%OThk|;MHT$9Nt}mYkIGa9Cb^RM>cOhQVD}!#9 z&LFl`lB5{BqK$q-0DA03aoxmih+J^cBlT0bv-1#7I>4RHB1VXFRehr@2n#miZCivh z6m*>Itx_}vNG93|vT{)M17K|0P#T&@==?sTa~ANrY3Yb`&$oG)@_j@2_kM!CUX#`snMeNmj* zhPNsxzn8$)GjZsKtXa%$`1Ifui1S{8l1wEhpaAxW$2<|Z9yt^NU+?Tq;FX{w=232r zP!?iKgpDG0YX^aTujJ{F0%CWCICM;vA+cnOWzzJ3CV?b}*wt*TcSRT}5FA%Pimrdf zQV8V3un1}pjYzg!U^*CFrB4+5cUxNdUk}5pe})usW~On!O|=%ZS(wTcA%UzuoQ^Tg zcsk_KbV?kZV2ZOZNDGLn20w$gVaMi^UM+;+{CyM&%)1uc>(r&bCQ{L~Pj4yb4^IGy zt{3%PKrR3Gy<^whpN}El3nYS$$gIZ++fP%l;!fV|4{LzNyS2bdcK%AUgbbf+dnDsk z1R&om5|oHCh_@SZBKslxSzeR7hE(jBgf2)}-E2O@7fcut@s==d$GT$$wF|;AHYp|h zTM6-?ZMrvP)&_jp#us^@*g%XJ(7s_Ut{F3jz2vhInF)!LG_8$iNjIm&F3El5WdC;(o|x5r6xJBDd7!irMfn!ahsF4KSRcDsnnFXjT`NWlw8I)mimDOPHWwt z?b+uij_4#jz_^>&sR?CN^#dYGhA{^g6 zVIy8X{)cm3U{01JCqK^}kEv)`5y^I??#7sm-HE*ebw;wsK>er6fjw?+d@n!5Z9Jl| zn=6KpN(RXvZ?2%w)HXc0$~>RWN%xq{hpc1X)D4~i-=EJc9wM=f;F+8jN1gm@V>JuZ zaogwwiirRP*a_tl*K8mfcEySmPelyj6VaI0$gNo#+&5Czp_6NnU{g)l;v`;&gNWw0inxUFEYAGAbZ6&jCniXjUB?TX#Sq9w^nkKnntJAT#=n ziwHYMac<9+GJ`7G);#J{f3N?%3kRzdq%^o+96s%gP$+pN*A4(x0VnxqVHO(ak~(BYLNs^_I*7b1Hilm=7_lh9KPzA; z&4F`A>)VB7bqsDg1?{Ld_d++&~6E4n1}oir&!*gBNSVEGUje-s+oq56apV^Xj7(x5jHXvoaG#sl`_!j;R>L)#`q2a3tg1i zpW689&Q26P+QNHSvR3oc`pwRU$MC~l=w;+o3)fp@(mTiC!y`Fc43Qhbkf8BU4LJIj z1ZnjUVLG$yvI!89onXaaYBq)Dc!Hi;v2<@ZX5KBiF%WHwwK-=RXXv%4gGV0;>tl@ zKBz4ap3kX|B+Af*RS-b7_qMP%w&E@j+_EP_vcVrMxt{Q_C?E=lqvFeo(OBoKRN*x~W_X!T0>2u+uuNV~h>U zP+NSnsYCrORw@P8k2G4qFLWQGZMDBL(9|Bt5BH`XKh*Q{Ys7Csa&!@7 z(-A#FPCo4{^{E+gdK0rA^^{-c!orr6k{?p}^ym8`o$UrXqWM}Q z1#SeE=tzP`iL_ParHxMCxE)WiwWR)fl&Wt_?LJsf0MJwGYoSu6S3N9wSwOw1=R19C z-RU`h`H#UyN@nemcF=PL_=p&N{QD~%)?FVYUGGlw3LE(-&^|T7+9k1~-MXtJvZ`N+ z^lBUbk>#EF6MpzZ&-J69Kf~uq5WTU zkS|0&VQl{MLErK2|IYqjzII?h;9p+vnl0bR{fkC(obR)Zf`~2Q)1L5rzgFZ6-$#H9 zOndRJI{z!1;@qWg1490Dr~kWth_dSI>$&pv^?W@&Ur!IBxP2jVQ4R%`5k`;xJa+}h zU7VA4W43Hn@peVr244_YJJvw@YDVHteJaw=nzamt+Dshj%N-tjwmD*%{|oWx49*+2 z+m7j(HJGX#;tU%Zq`6OEG`#TN@(CpWFdMZ8mB4>X{-ymoBN^MehXvcg8*CP_E;qD9 ztF>lXiY?7gX>ljM5MGa@V=vq+4X{}g!at@sa<%(o!JU_Sy?*WL;Tw zH3yS!)fD4A#FtXi?$&$>dX?7yZsZ|ep139+2{P1%jMie{@r5T5BXKDV#pp*jQFvyJ z(@Cl-orMlv@5&KB5d@4Uu%s-@SG;2QvJ_n3y@Y0s6w{0_F;ovDK*vR{_MtyQe=BcK zbHQO{OBEFH86i%!_T7(iToPcB=nIMVdkWy?UwoJ2I^6UQnENa9SUL$^7bhV#esBZ3JbFhu^6=&pNNFId{ow0u8}Xj_xk1qpY(>pVoR}WsVL=1zMMhK)$#5wiEUbqbUSvk& zo_A_&b3Sh0RhTjEi+GraFwCJx6~(yl^nt#PLdsE=U1LA#upf{RDv73UU@V_%~ee27S?J1tbSmNzY^#xI(bwMk4>c_zw`Q?ZOGUq)>C%KS!hXhW@H2dyeCdXC#R#0$~Gc44Ih@C+_4$X(8yp9ib92x3{`x|}vNIQl>IS%ygBl7$Sb6i=~;o4Ic}mIyo|gGTcbWpqfdsERMJj9L>j*$OF{@oo6-1E5k^`FEHUr{TXrh8F|@WRI@yq*Bo7v+Z=tjDf05HAEBOuQB#@n| zlMria2P3Yi#2Mgv4HF~E(xj8l`W|ruL;N8N4g{=`&I0oI6nHKD{zA4y5#JE6P;7x0 zez!U+oxwHy^Ln>hO|jafJf`Tt_ZYB>ol3{l2fbk9_&rb+Cr%qwg$s~y)DwRWH>E@| zN+G7daB+Y@Ofe}S<;Fk&J~Zc%vHDTi(IT7L=rI^iGb|S` z8Q(wkuMbXIgPG2rw)Zrc!c>y3Bry#o=^heR?)!~%e^+#48o&~O?HPL!8SL>nVc@_3 zu%YC^g=P(!HQ(`mpU6qHO73H`sR?A1q8n`s)`3|BPjuNeAdY%>znO{tEEEJZ`9%RH zi5=y^zj<<%*n%|4{4CJ!M05JJWJ48X+WsOe?iE!Tk@pwy7!}A+X}6WVTo6RzJv|}> zSR(}Ht|>m>qUk${-}xk|`ZCQb5Cq~gH{QJ<=hV9mJlpKN4%5koS;*IPAP(EbT|ea^ z-%gP=g?RxKnvDE2_>P2_^L4kS2d~xIsU*Ot=-^R$u1&2A-nPi7)kE<1rvwYKyHkdu zKioGthX!K=tWx3h!Wu`By3Al)T@JQ6^)N8|BKdwXlICxr5sYt{7xQ_4bS{X}*}4t9 z;*eZ$7H`X&yIsZm_vOSdg)kQXT`h&mPO2Mzze)a{Ot2N>vvfmuSu*1e*=VwBQaeKp zExdM7JvhA&r}BDJb(7!_VIf!T|45QmDsjk@l7Nw6Cm-E(D$lI2U%$atKUhW`d z=9+G6qZsR3$PncW-A&KAi<~QR?78J%^o4A$XUlVU)z=~*;ayW(;cHp@l@$6)3auDP zedX-FQmWve^p#QtsQH!g{(pt>zAm&V=J3>6;??iCyYSV^Jf}|R9MAm2>hk{uNDs?5 literal 0 HcmV?d00001 diff --git a/_og/307a760a93ea033e75e2b5347c0072288b92927d.png b/_og/307a760a93ea033e75e2b5347c0072288b92927d.png new file mode 100644 index 0000000000000000000000000000000000000000..d8421853d34c9212f428083d8d7456842cbea335 GIT binary patch literal 35723 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 literal 0 HcmV?d00001 diff --git a/_og/331ceee60cde564284e6fad1162b1a2b9b25b641.png b/_og/331ceee60cde564284e6fad1162b1a2b9b25b641.png new file mode 100644 index 0000000000000000000000000000000000000000..d70b263207a6a78f5858afae5725145024705ada GIT binary patch literal 35371 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%0Ds*viOaoP{z1S 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 Fe*j?)*NOlD literal 0 HcmV?d00001 diff --git a/_og/393f3e94204d82c2aa2a1be33505d5726269b33d.png b/_og/393f3e94204d82c2aa2a1be33505d5726269b33d.png new file mode 100644 index 0000000000000000000000000000000000000000..defe03d9aa4ae2e0bd226eb65e56e758a675c518 GIT binary patch literal 36378 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%0Aul$}w*STEWyKF&C6H_hU>|OYfu_ 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 O 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 literal 0 HcmV?d00001 diff --git a/_og/3dc1d157cdc094e4bd55238da2ec08bac1fff860.png b/_og/3dc1d157cdc094e4bd55238da2ec08bac1fff860.png new file mode 100644 index 0000000000000000000000000000000000000000..9d03918a3c0924f92db9d5ab9dabd083050a8167 GIT binary patch literal 34425 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 literal 0 HcmV?d00001 diff --git a/_og/3f907a4aa84afb3d5bf02b43a21b1f2f64b9c58a.png b/_og/3f907a4aa84afb3d5bf02b43a21b1f2f64b9c58a.png new file mode 100644 index 0000000000000000000000000000000000000000..2bfab81412e8cf0659a29a7643f89d7fc2ad0b4f GIT binary patch literal 47034 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 Fe*nmIHK70i literal 0 HcmV?d00001 diff --git a/_og/41dc1f334001fc54cee3a7eac9cbc4dea643cc86.png b/_og/41dc1f334001fc54cee3a7eac9cbc4dea643cc86.png new file mode 100644 index 0000000000000000000000000000000000000000..1888cc452f4e4124a081b54b81f33a0a793169f5 GIT binary patch literal 33381 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 G{r?3y*IHu$ literal 0 HcmV?d00001 diff --git a/_og/47801fc2595200e3bf81455b3a0f3d8c778f1754.png b/_og/47801fc2595200e3bf81455b3a0f3d8c778f1754.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8fa7a5d34f70f73244ad8a163b402248a07190 GIT binary patch literal 31103 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 #+ulkqlzFAF!5#bMRZ+ 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 literal 0 HcmV?d00001 diff --git a/_og/571d68a5392772314d59475dbf8a6ecf28bb51d2.png b/_og/571d68a5392772314d59475dbf8a6ecf28bb51d2.png new file mode 100644 index 0000000000000000000000000000000000000000..dca80943587e3fd05577ad2ad2dd9fd01b01197e GIT binary patch literal 48568 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 literal 0 HcmV?d00001 diff --git a/_og/592ffc913bfc81849f1af04850c47b0b71592cc6.png b/_og/592ffc913bfc81849f1af04850c47b0b71592cc6.png new file mode 100644 index 0000000000000000000000000000000000000000..d572f1daf8725d62423d17b68e8328fa366c06bc GIT binary patch literal 39845 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%0D|i1LxUS?; zc1ecXAS_5*JsMYzxQ|((RmwVtjBvWf5c7tt$x4Yya2cpN<_3cM#)G%CCQi7xsa%e= zR{khU6Kd`@+?K*S1FAp>SK(CuUMy@lDyBmJS$NIu`|nRv*9fD7ZH`++vZhQbWUu@APkpv>o-3}|&fBK{H4d+gtxBZ!F6 zIfN+M9CZKy{M3_VfV4#a>8*f5DzzxT58$b>Ei$x;4)B8}6o?|+2zMV~ zRsK>TkuEJ+{r$s%@Z+$8QHQY0eZneEKYNzgf1bqM4>TkKE|QM z)uE!cJ>}13#@r$_sIa%LBu8igmZrs@3i6gDa`~hZ^JXm)98@PFlmw4>ZnprC)4Zhn zm*{*8icUt66*N|CUaB~QG$!kaK5hmWOw+j^KPev^lp%y2x*$(mC-A`D%@Hy(em{AB z9jB7M1~o#F>PAgLxufJ)bG|A|uY{7go`eerZGz=JS9bejyYcQhi{!wps%wXW zHEqmisHlbC#Czvw-2>KLRI2FB8CDB6<c3W%67`We$W~4cYMhxWw zfKUhi;WtV*bU2vqLvnNZBr#u;yb!oFdD;!9#Ay|_ym_DyUT`bwa zFbQcV4m@=xLtM&tE*6PWuwggUI>0d}RxE+=Z$Feg%JM;D7=&jk5zx>j{T?dSfJ~aV zvx~;4{Vd{MhpI*4kM&TK!MbZ5O8qu~>+8^_FN|=QJ?&C02i1NPAQykrFG*~XsRt-3 zvomFtmLbl(r+D{&7Qdh4H?iEpYsriRt0MBF3+4cBH`74Go>nafq`zC(@Fu`ESDzsl ztpx0dP(V9XC>gsq212p->ao-$ZBUY|gHNO(LBIJfTal-aj)`3!ws^rFR7wUC3?Um8 zj-be)91W7ZrTp*nRCgth$m_`fdM=1;xDKcr+l!m>j52E$Ykz+0eOuSR_{4t&hjnna zEF;;k(s>v_IdgCLUcS5zVsEz340uk45iWHqM?y6)L)EcmJblLoFadLMR^cKw$$QV8 z#oIo=qkm}aZO8)>&o)&7YDoV(PVXM4UrMikGUWgaqM3j zJ?M{FDbO+g$s&Qp_#13w$=~*5nYt_4kD&welN}3`WAFVLpRxQzsP|el9@0bXL9Y-4 za~f>)uh;&K#lWJ!4~EK$Uyt-_mHvqUzc$|PA^CNd{s~II!oxqplwaZDS9ti}a{I6F z@GCs*9*F<^_!S=he;Xe3kNh&zfcoK=KWMjY{>!HEPY>ajO=DNr@PCa>}>OWk@FDveD>Gmr;{0a~M8w39Ty4m47{o(KbY5|}C^FMY8{=WuC zq4m7tz>Q}Ed?|fjHJW|WZsbKd5~I;2poY5x3>k%{K6tm!b)df$14)N_@G9Ty4%h%e%%5TZ zk+>^bK-NiZ$XKX25hOUTb|(q69OppSQX4V=EzrwG+=tVE^=-*YwBNP;vLTJBcwcS!ysn=kfI{WPIwc_%EPDa8ovjOKK=0sW z*a38|cIl5CfGBpk)eES&K7LpOx@`KblFt`!&lSLwBJ8a4{7<*G*8_6|0r&?ac7SCz z!(bS+edqhbg?H|gHhdt3b=d$S$WEq=*Zm~nJ0K0D=aI)$`PIn0V7X@0qDqDZd_-`@vXXc)OJ#8*J8<0 z2sC!8qJA4;syE<@`gMvxB$mLxP|qYFPE!b(pFQn2$D7;aZS;_=2Npr@7y%VL1T{Z_ z1g8Aywl5?lAdr`UDS43O3WNe8keDrCmRdlk6m-L1xC{2P6}F-rviV8oIAB`2moWsy zInf+IFw~vgZ;_gh;A=OUPdO=}p6ljnYZ)2}^pOPcmw<&crgjrsa0EAy>91dFd4>r~ ziiNu3lHe^v`?i~U3dxm=)vHt79I#5@Z#$GrVs8^Kxiex!4`Nkr;Cr?KSuC-Tb})Kp z8%FLM6mxmVK;LxzG0uvTr}BG)B^)MQHio+O=_|u1ARFZqz!m{7o^@wAQ1%)wBjfFu zji&Lk`pNfzpiM4AyBsKIeeO#nbSa&`6L%LblueNEgV@XEn32wJ4HkKkb`}o64V0#4E$yPPMVwVN{Pq~7P-T*>R?tc;{vd1Z01aSrD3z&WJr}GE;go2wcWZZdkkFs#KS(`!3y<5aP z8It(9pW&VCV=q*nS?L9m%-i1dg2Yp|>=D%w|P?yS_1UlF4LPyideF z1MXbQ)g*i3_)C}ev&+-?jK6q$)FqkzHZx!lGZyzY@3Xrw@O`mhiiH4+isHblV05MqY#oi_~}5YbqDx~JlgCy)UQhT-T7Ff zU1V;Nk%9IQg%lVcRDsfwp3lkNwhUPwYz3na477?{Kq8a0+~E_mp{^b|{^zDF-ZL8^ zwx_Q!rb@eLG30Fbr`t-8`L3lw z>WMFUZ1O17SQpkP zK!Fy+cTTqFGR$h^BXNcU#LbmkY8eO9<1A!_ud6Zc?DTXF8ar9)7}@cXmr(yVTV{c%Ze#6t7% zJCugjCSbBlZimTnyjy8r;1K+xPSuVDa)L}ZMW(yaW_6VyglO=(|Md2nIm=TZcc0tT z7L%>A)Qwl z9wWMc#^pq6bF1vo$s&2A?j=h0cE9?^t9gmMn%j?sEof6hYNv`gRXTdL_3BpnPi0?b z6nC$5KB8AQ-(f6|bF+JCviJa)j+xOsRlPH17U(Q_Ag|Xj40ZwEmeDsLD)^s0D|&q4 z%5;7zqy+8v;14730H?y`iB2j2L=Kjy{ECU-aEu^_o0P3H(!qmPK%7{Dta2?B9$0w_ z?As(a@s)toOP->G1M71HmbGI%TTvsB)~cuVBZH^lgStu}NG-;n{S0218LEDg7YA=d zWNYfP7==hyKBo1T7+F6A>ZSsE7aAT7Vy|*`nZq(4aLVMOq(k}qkAkrb>W$t^&L%<~ z$Km^|8b=_=NcoTr*+Eq_iVPYw7Y8oJuo#iXmCDk>eVgN5l7D=*?gpl9Gx|02=H|mS zf}dL`>^x4@&O?@geDej@eczxlv53Gg#jbKO%tl42kfTZ$Ke|{k8Scgcd}jK_K&rJM zc&xQUU&)!ECFk}~aSU>HEe8D+_u=mZZeWodPb5QtcH9|q{)bPA)e>vgFe`U>>4mFcmTcg#0FW z8d#?XhJCU)fQ?zuJRuCM8zDBnU14)NtgBcOD;u`KS0HL8@43RhX=R&4&0L-fS2Fx=1Aip;;2- z;t#GE=jKy_6z(Rp0*LS5Fgx$ofDBPwxgQd#mW4-F$u^@gn8lT}SaV~~B;haUDZBgY zf{T!6e7^r1C~|fK&xj^xVLW?8CCyt#EXgg~KiZ_RSTEHPapp5|?Q!2k$fHHgUer@P z$EdrzE96<@Lq8M#;fk2ar*bOnk92zD-Fe7RbOhUk$Oni(Sdhs@fmfR+D?*+Gds?{G zA{-&?*T~uJJ`8Frld)js@UAfOQ#Keh{b7+~w0#JOkj(`Yy5~3S-fMVHnUB3Ia~~xD ztm6QQ3(q90t@8B`bzP816-NB|NY@9{2n!+Kj!wsotC9s9pqhn(EF1HqhNIpb&B2uc z$XM={yOnU9ajf1?+@>$(n>WzX_iHe+lHFRd9WoDnhm_fPSu=JV1 zU(l>BSeMnABw@(3uYTNab5po~F{XI2WQH#%HbaB^IV zW8(LGn>Ps|$w86u>o(H1cA$)I@Wxc?)&=7QaTC1&5)Q3$4w6jkf+ODGIP}_;yz=GE z^I>Z7DzfPjv&M3&FPcA&5FasP67%JII$1{ITDbynL~Lm!fnAAR_pPL@ba7R#Y7@>i zbqlRHpV{qte#-xu@f(GGPe29d?8D|7JS2ts(UxB`;Jo-KAgv2rXvAQGMJK~J^y~Z& z_S|8{T&^>b)VpelQfEmI*TD1)?UBbM%M#3-ffd%DJykTGl_j1)Fke6!?I~#ioASFG zBrvAvl|)2)Iqw(*7vls9DlaR_q~~#BjbdH@Fpu5pD$ay;m6n~OUm!8LF!tkNBqGMsNUl`*QzVD9$?>*uqOrrL+yA|e*{G;VI$IhX+L_8|-S4MgdkT(e&75Y`OodpUzcCN#AHY-P}@5hxd)=U^N$ zMy%&JLY*Fp+Ez)ZTgp`Vg_Z9&2<30h!*{*nD6qUU%>60xCERu>ut_$^9+X^9Sy5DJgEZ%6$%mAo_E4(ydYtf*L zV4#X`Vs(7z_;+N&gC|oF8Zk+bfxoA<1F~ksGUh(Q%R~N$c~8_t987}p#WlIhs4m#% zh4gglgAl31(u|@nd!zsZvBBz5blQ6R+8UTxQCOP;cMOc?YU*y^Z@|VKT>GUF-xO8s zX@=PH&b2;MQ(BT11Rw~H=q`sSbJ_dQ! zZil?q$Zyc02W`j%8!MAjsO0csa27LZ(0*eepb%H*3pp0*8;9gcA#RCM?ry=X1~2j= zPYNm`$e-TT#!f1~kmwLtc>@(rVVLg|8|d2R@M{Tn0ILu#nla2Lyn4 zvxqREWZ&XK6lAB4kGIXBOSeBN?7z6(WXHd-Dgnro4PK3W!P%lqmg1u-1K-+&5pJt( zv?qeh959K+7Dc}$?NkxtSSjZ7&JHWcv5$rswHD0=8!(Acxx8Gp$l=RH9wEo;ok!3j zhBTIwmZwK2EmH^AmxZsDnw$>)h;<)JPTp!1DsIZz>dLeZD|Saza~2|wd?KP*RMd_g zmYa}=NpuXia>qbJ34#{w`&+HQ0Or8`hIy>fdUa-#aF!$HlI*guEkIiEIc*;eM~`(Q zRCcba7Dn;162&%?&S*ZOXnqaRfqZ)s(Jmcp8f1Ka3ruil}c z5BhYeYq+4U8#Gij8ip$XbwxgVAw`P92cMa^UjM}JRoI3^Jo|-|3tb&O@3)HilxC)l zw~dv0YG;C9V2r=u6Bu)$sWiwPwZ1FCQq3>;q=LD|wwmSQwN<$1AIAu@$(o>rREbT` zNqMGfh~r=5&i0~ANJcpl?rS`b=2fRKo+Ak`wmK`BYxywCOX&k;ihMHe79mm+I1X62 zFmDW|Kj~x5PG0y&UVE*#z;9ApI1oJ?^mZhV=!!D2GHk2o=VA0G4qaAJQ(Y_{^OIOH z=2*yp)vNYHw&OB*vZ-AQ$``jxA6>DLp1+X3#M;#1DP;izbqY#&aSSrzhV!b0>-9`j z=P9d>G6@!yn5_%|(;iFbss8u~Pc4_K{rnz8XEP=1J2euv(mW|936-Th5Ct_e64fo5 zlY8%0^28-_qD@MyW%^Vr6`#B+q^lMO*o&G&`U$iMmRt6oqn#? z4+*3|65t1Q0Pn$8=v_WAopusl=qjL^ss#pGq+wDh8lhYt!|sK^WCANC)uTZrj_QTz zKDGC55977gcv>g0(iqYHlq(mbj)R)QWAR|`EgmVxTw(2LW42>~tM#ht7tKLkHaHoh zV3vw%WIccxC{vaTIIqscF``y}*Kb9@_~j)tk#v!xZh0RcOP?*UZbd2`XPhQlKi`s0 z8Nt9^^YrOO2k(VuirLb^g%|X!18p@J7U=1ooLFJ5qaN#;%BqH*p=)I>p+-^o$c1+7 z30!CFcwwa4K$%jsLi!z#g+vlggnZqgyl=!-=yA(x6L9zvW}$X8bESb2{XYFPSygKf(&ktaCTZRsPnnLmP3%u3GQm18!N zzN4x>bC`@Z1w~tlKoBCk9gt(nQ&xC@-aqpzrSpXM?>D&9z-voKuq>L|dFU0G+^(G1TLK(+RTe0YH+-K~oUGo6an#BWG@$PWj%aK;nAg+5MwC~D~#SOS7bR^H@P z(n6r>`nwO*6>y6IWHn&T8CGVeaeQ>mV+TP+ zww(Xbop!$EOcusmx|qRi`b^7MK`8JvT60AWuvZbX=>$!mQm(&V!Jc8sKcn4YdRt4L|Qwbc}lja=XQxs5IJZeDJk`L z{h}p;<<+|aqvfsXSUGh)1~KOQxESh2Ehb1rmWwW<$bd7}>Nr|L4Vky_J>gvicU&YONkjUAY zO$#IQ)C#ggm!1zsYSiajN~%k#j9!vU|bxm&QM&`TYU7vyoWar8LJD6#u3 zV_8P7juoA{VB4)e0X`%4nIElU1-u4+lOzx&`{!lWO?g@mjk>FQ#VY7a$Vn)wpY~X* zE}C@H4Iv}Slh-WNUe2gnmQml}BabIvcI{u;s=EKE0~n$1@@VZI)JlK$h=gw09)~s% zNSUg^+oOhqE$3K41~u*_i>s^engMM$Epvh~cR;J(nBmenS}-|Og%jh&RN^_ZTX0VR&KjRHy4Lmd7T`!ms9G(>I<8PVu|Pr z<0Zo@HAGyM3Pr5^)JHJIVr*kJk%v7=EE`4zb2apD;o~K6#}Wjv#Xh;vF`E{;-Zng zEJk^Lx=v}Y6RFd8uF62Bwx=LKGm7GxUHTG zELejh3MO8@xv}~^2NSpj>}1%nT+zd=nLR|bY>}YRphB1w8i#jS;uY!--fp3|<8+S{ z5ezf>RqoYMP&oP3kAg}Uk<~&jb{@@MLk|`%_A6elRN=(oC6<;Q6{9|C#qzYK%PrmT zJ;>YfoQeq*c1Z%0W(NE5Jg8aYFeChB!#~kxn6`Py&t{u?`M>X=#7xe3gae0ReCnzs z9Tu~{4~#yzfIyihw+)b*4weyZ%=$7}yyeR0!RrgtvCYMFa==z*^Nr#wvW z$%yilO<>25O6m;a3QI77=V2zNj8SxHzRPl}f2-eeNR$(czdIKN zd5O)|0MF@583YNxvw&w7;N&?Sg=q_d!qv2~Qp+do=#HQvX}Tb@3E$E)K!SaVZSYIUYkFT+ZcOUl4CFCywPij9zg4~pDk~&>*V$< zQuv~|nL!_NEIR+~iCQ3-8TeKG@^HWO+r2;0g{=J`?%mUZaB-L-SVF9CGE_Qz6#iFOUMP5mV zVn9nZFjA}gwxhSm#jeEM(`*6D@7O+=@Y#@{hU|Az5lOwI1p_?$*F`Jb#1J=b=PIzl z#(}|Ah-!7S)IB`GPGx7($t$!_)K>be9e9+LAy^R~N&%d~Nh zQs~ih2yds*QE}Um^#OpLymU>#fUzp?Q6kmykAjFgoncbhc-s|AQ*l`GH}vzYdK7Y?hh+E8`}ZME>Fxc)FB%K-M5rS(_4w4WCpHO;Z( zYL0D9aR=)lBf-(6`8);BH$pkVwh}#XL&_J(oX{(Xfjw)Xdoy( z^x8c~q1J&vtp4!xe_SSVTaI3a74aV)>_oPdK88HqRa)uhsX586@V0KjgtABp(b*_caO>W9$#tOYW zjOvk$CT;kNcYjso42&UXn~n=EDvn7V3p9JWglw``?UB~W&$;Vog|h`W_T zZ&HvzsB3CSWsR8aHdo^C_PHTw5L$BI;8L|*$Uuaw+$}HzDl2VM3nH<*lAx~kd8_<79^TT+Kg8Y=YK7hes~niPg{?9v(6{e0X##1(Kj<>tW#QK0wCVIDVd!xs znA~omI#jb4x(G^x35qNED(E;rFjurkZ%|?Rl|$KJdR{;m)ZzB{GyV%m%Z8qb zV6tv;9v*icbCDCCZPoRI$oWOv9G;3Ll#iEjh4Cd^f7%eTzppOwGawuXBb-5d$d=&S zyaba7=WJP;s!Rq-goYqa5@N`yykk%a8UpxXO#rk*%_P1|8Q;lT?DMjU9oRblN53Q( z?0RPS)GI!;)$dV``7IFHCT$7X_CImiGKih^J0)T(gn8Qi7R<(G!^+QCp!uK$KB|ys zk5}!HpNX>)HLMF}%*X(PfL;zGka1fVcoxbU1N$%c8Kr*r+ui1EVXcSD1#27w_xEjy zS-{?a4B6{Yd-VDU0j=-stw~e~IoT^F9AF!Fh>d}CIQS@I@o#py{8%ztk?3My6 z`Ub{`WfxpN*(uULGzZVg8yu1=ve76x$M}+)*=WhZ{=xv*5EqI$M|0*%7s85tZIa9 zKQ?ry?*_-E{{%<9x?p&y>vehpP4swq6Y?cRY#lVZB!H@iPvULq38+;lre6oOXNHY= z<&ATNT)`NdUbS34zpe2Ni9{=pDkB*@`+lz}W_G9R#X7ej`kMD!{* zl?{w-(sb1VE}RWkhe@Pom0o02?wjIi^|F#EG~jsHxzwW&)%2ay#J(uEz%*pP+4_bd zo}!NwwY_sY7}Fcff$qe*QwDBPXXNk?;3u8IFtI^uV>&;kEX7|xF*dO)ZYEl6xfws3 z{;Y|ls4^tOoHtVWvT-aY1scljwv<>S*q6W1==d5l&^QB7?^5dzL~82T_Ke&c51(u& z@vim&%J3^AjSF(OdcWnY!UcfhqbvEJvmwuz8$>L?L&Bd;Y3Jc5e&gI=k8C~6%xsdu zfr$@Kr?J5!#O!;3ihE0Xm<6af&!W+WGl9JK1ax~l0vQ-{yUJNC9WyGSIdf*zW2Q2z z4|72UC;CYf{WJvev>XiMnUPs29Bhqk+#&NUySag3E8kr4M(~_W7-|S3y9I`!DqOZJ z@<--g0`duHLZidV{#ZMVyt)qEyFiXZ@5||>KRxx@<{HSmT;Y_b zd9kCNBh#Xz_8c43EZMCuz<~k4iVS-@$P`NqOf^tzM1wSN!?8cg=(kdy0)5A4J%Ej* z0Dd^ZMIzWYVsc#kXtw`l3gA(sq)BbQa-*zZ%!hB^fRUudw7V13^{?7gR$Y73$(D3U zeKiU*ISLJ*!LGx^`=;!yTRzlJ(Ct>V{r}8qJ+QC*%4=BH35JN%`$eCNr=0%!^0?e- zFOlTaqA$-~O+GLB{ND3J>JmqSxc)ReqU#9Bqj@(_fhZjQIaX9?GN zY})NucO50(bFnxB4FMAOv5c6bm4_vUz;uXyv&ylU{RZN{=LrUC-SEx2|4_jqf8PmO z=*4ibNR@?Sp83u17~RyC<6gyy8C5U46(mFwTkO|}e(!KE&NOd~7B7Z;bFP*PCHJ_g zwrGSARbNR{ZBN9=fmso62`_nNRQkluzmYETxV9XC50`t+Y!nG%7b~0VgS)MmvvT>=gsA-n%RH2; zI?Oq1*IVRc+{3(=UR`VXyx9idahaDbO1{^1ep))!W`G)2lZUuIRxIU$u!prxIf6-w ztz-|NLgL&}K@`MPnxkCu!c|iaCA3Wf%|{}wCeG{9H|k&MEJkiif_*m{S9?;<-uj#! zj_>-6f6!&Wutoc39p&73a1`pgSRNhw{!*@Ir-D<;+|(0J8U?d8`r=ErXE)tH^BtDX zKSG>jd8W9s@cR1EPosv52jqvZGPs^9`m8M1;FJGo62d2!1YEvs?VEWRYFrmAPij2L zLY0SRfmS(eo9Kq99<0IN6tS4zwB~xG7HK(Vq=f*8_oUE}WYyxmHl#h!I|R^%59AE8 zx`B>UXCfa1KMzH!alb)+93P!SEurn<E_}3H zem{||U@s~ObeSKD@bmfw^HpZs^b`)fT1VbVXqKtMFnwMKXjT$ucAyI;B5xLf<{tZ~ zq3`iyFtXx`5c%997`5}-e6u*V-6q^R*Z~!T z_~PVvpulp%3?H43ZqSp0E@Ll5pdyLpjBWxnzP1-b_v*Zdheu^Mk0f(S7~l64U^Z&! zD0E?*kJHzkT|2Y+rmcN7VFd&|h|A6usLjw=#6(fgE7sOHDYje^)b0`!OPSex7mQ44 zE`sY6eB>M(;>2#bq_ol&fhs6~)|gvdxe5Qwcke{rEj65M0v$kr^N_Z2aEuQ9(u7s3 z&+Y5bZ{M){Wa*gY)XOW&j#D`T{nm@x;U>C(wX;%rz31mgp^=O8-qj@HCkGa1pu_33 zS%y=G`X4RzsN9|d`p3}$xjZy&!KL5~>5T=@SS1m*J2;?Df_t@_sSikSUmj>GJoeqU zc5z-9bf&@^!bBQMv;@M(@?7ANAXcXx#yvO1IC&ywt}OeVFY=EbR!g0~^TJZr4%8xL zfOh}FF;?A&>yeJR8IAn`xD|=H-Q+{H`Z!HVPjIwV#_MmYD@}%8s#K!`Ffa(05>`3bTxWB#@;%Fet6KX7<*$Q&;!kR?QYovAGBuF-HC?+k3120%O%< z=>$hfSA45z&YwEdi4U&uV(&&Ku*3=RaCTMwq0J_^1TY`O2GuKzmos=gP;-fZ3oepOzh4m_t+zN&QtK?TLQB z2ok@DbV_a&KW!5|g@xW5A%(Vy*Zq_X61pI5zCfIiXQ}1$GHxjgA<-S3D zUkQ~T#)jR(Y>kw06oTidin1$Wx{-K8rgiLpwRfFSO{Ux0a@1=B3&ue}MjQu(&_n@I zKv6_RU?Lz*LK{H3^csqc0s?}AAVoltBHhqyu#lisrG<`Cr5ielkh@#(z9 zY=I+K-D;Hd8f29gx8sNl8oFYhWBereN`h|mBXaG;FeH4iyRmCcMsrWp!MfypLtRe0 zhPr**ua!9+37DH9IqP0Msj)Ss^a82H)PCs^E8*I}O7C2jvoXUa?bUSIu(a@r6KQt{ zSB!k;uRem#_YQk8Q&Q_#A+Jd+W3Giup0{~kCcSd=U8NAje~B#^d`MecTk|9xa9Q^- zPcXrBdYolL<4yHeFL-?|Px6*?n~lAZYE44>x-k5++siDsJ3_#N{x0K=lDxfq1P(|* z&cEOS+4ndO{CWT?6!a3WPn8+$AAD(0KgH+DWs21)$hhwDctF3P?{ePabs2M}?E}}z z-`X{AQ5~%Pbk}J#i?{z8raifEEZbEni4h#!o!+A`&Ke$boJ}lNf!&Ku4|y&&ifW8x z-x)T=)?pbxb_pbJ>pwy5`}I|t;)zYi&8#9h#o6Br=QM625i@q~u!I+9(97}?GXbH_+<{c zu*h1a(RNsVr{A>!@%MuCXS&p7AmF9lRNN4#jm=~?xn*6eSw9hgJS>BbuBdqQ?asYZ zdeO^KTGpu5YJ6{m1@ck%b1Rc4N8tnI@Zs(6X(e17Cs`Y#Jw4R|H0gTHb}5pr`RdPV zkw0n9(kEmr-t7LGFK-~?yaI#jwM?xhPxyon&@Zj!>GHx+A>TWRtQjS@djBYL<7FV=u)G-OaaXNHF`BFBC2tTfeR+Ps8zDI&in!?0vCJUks_RY*4WKU`(KiT`XXzndn%EkRVsc zPME2rcj=91-gCEyBUC{771myA)V6VJruQClcvnUZK9Eq`S6L)Em^FShZ*gb_# zbv;C>8*vm;R?5=WzcW}^Oie5rVx1vLZILO)kf-@$GONbS+8sqH`=|2H9e$^W_Kz$5 zTVIu!4!7)~$?!`s_?5G)+&q9<`XTSw=R>1=Lq-m(nwU&OIt7C>Tb_TRw^Eq#Ezqs)=)WmA}|}Vt#&KV!X?G_LTMH>B!R^PocfY zxuNLM$=T~f;mGTm=$u9c%3Zcb~0^5bOobN9OUH zsg{^`vzVIgV`aTLa*DdVPvmK0RKw$HwVdp;FBc$kVYHEbx0p`2?NGRn)Rn9D+(3=TFgokwSW{J$ARm+cvv`oNZfAE zcRJj^Pt#iUBmRIGo}+qxIB@$LqX=C4wuK^b8z4`HSKaU2ok2~|zmng;$47Q7%#eRu zW_jFBGUTP>$`o@Yd)CqAZG!w6rd6MtYQcg|*_Em|BF)qIs_3|9DaxGM6Sb-+9l zquA-zw8UHPy@&c+&LRG$iVLh7<>fC8^&(DB9o&*CpDS+aDH)Kk1Z2-v0*QR-=Hj#6 zF$br>o32}R*e*puSvJZXd5E4&Q5QcPmr35#W3V8_uOoN#Jcna^R8ABNgspIMHydH_ z;}eagB+7KdVqu%tk%i|)<6HgtjcW4^;^S$jr$L!fH_xFbS2^CmPl%9iO>lxelT-Xw zV?h(0`_e1P@f_;lMeb5{syLuC*d0sLKKkm)9$M1*2RxkQDrDGQ`j1t%qEkfO?7T2@ zTKG(`VAlKG{3t!mZM&d*9Lc!ZdX47x19jS^r^@KgLJ%>i+;YiEcWSLEgU48?a6Lo*sP2$gaIo7A>QisSzq8T zrIwN@Z*2u@^U>Fbi;E}n8npMzfZe*liBz|4VGCkyX5qj|YP6^Iw%n91OLsd;L%)-~ zXq@D+>!EVZB7!E?EGM$M-XChx2^Z!~R;XPAH+CBaH>PWLh?Y0N zV8YWEQ!5pyDH`}wgl*7c@0QN85=*_H1abeto6vIkAF?H894?f7^^iNmbSNEQ7k_Zy zCxq`G6QMp_{3zME+3sataF>C7vW~-+BWr_rqddLVhioB>3Ww!+GSJDkcFJ)ndN5yojV z#hfbG-dd|tkxPL$+SYF36lsj?OB~F>YIbNPx@oy&%jf)xt;0HN1x$E` zJ3!>HLWy@?t(?-Um6Ia5MRTX#Qnf~o@D^Gwj&6MhYFrOnrCsczlWFMTu5ueu6;K|% z2+r&TLYKesMPl)FF0pL4nllvjXQPD3*RlIGnlZxolNRw?%e`9yHR*d*r_((&(ITd? zvuD2Gg+#j*YA;_W_-QLwu zJMZ+u8qS{*iZt^-;F}GN7V$KG9%@>UAa&Hm6JCuw)VFD38;vkV*7l!HYh!USuI2_@ z#~ZyifvSS_b zejVD+s_R%PhU468NzvY8cS3!Y8TOxtcW4}&V(qOWAA7-7M;8Z}csvO(s=hCz+d+66 zWO&+g4F`uFg(F6yd_*aUHzyyqQZemd_&RvU3!YuSH?_eLRa(zRCv@3r*fzE|On_b` zI$w4}#-RN!Ub}M!{3eep?Iq@C18kleMd*$n+RJzVXG%`_G+-yA6UMtz8tMuvB|T-z zBY!#8M~ipq3rOO~8P=|~3~0Bu(m4{@=_^PzWbXjRg=7RHn2>L$r(IbQV%MmVCBmsl z_0uwBYk1UFdTnS|0z6e&SJV5K*!u+qB+2{rUp{c*VEBel$5NT<^Kv}phuo~R$(Sn`+6K9|(-c0b7FSuEN3<1pSpvpA zjB@04N%mwOmLXNe z!Tr0T*oQW@W6G33iPuC{RcwAh)eeqI7CUWRQ2Mnpb>+H%D7-x3tPqUn#f%^3+(fdj z>8wrPOOt@8iRF@%H1f&`QQskyxG8k{w(13=&CPtg{7S-><6vJsQY+RlJ|8defQ&8V zOXPNW=hNMEFs5E5mN-RXV50Xg1l^UMZv$w(zqiUU9yc45aQ*6untA5!?F^JLIq71j z7=4?vA7^~BSZ4HTw*cGFgW}xONJO6BE z*(O`tZ!=mfVqRIWQ9i_U$Z3<3yk+-}DZf6&P)TWP`jMu^smRSMpwg<)8DB1~V3cY{ z)bAlf3_{!TuAh~SgM_htb6(BT$#y$abkDuT#?27tDr=3yZKw6wwECqlJ-|z4$r(*b z*Izx?vLHvpdv#IyfV}B|abwxX?H%fSZu$e zImPd`Rhq06hdnvh&Zhx?=?lA2hjTSP|EPZcLVO2DFeV=zI5gts zcmLu)6M16>`ZnQBVP1VLpwnrWe*R>VU<}+X);*q@A;A|W44OXm;@O6O6b}v#wg;E@ zHf?*hm?;V+54bVdg$4cJzs!=6svA5tJ*aQDy>jHXZH{U-nbzZ2C#7XmK1Zj=^&mA3 zg}XG=H)U^esf!_zcuMA7Ix6K~8B^&#=jjlPk0k z?qViHOh_>d%Ig#0eoAetq|L}P@}+^mVFo?OewdZ>r(r!O;2{G8{(3WT!Pbv5{?cRr z{Pv+Wr;bOST+jT-$_$m>oGEd}9C>c1O-ZhNqK{=a%p=2L9T~~B8_#;ND9bDjWVE|v zaYFP*H@mj_OaTg@L2~K#cK^31mXYBu@_N)^194E+5k!0dsf7DsC?i$Y1lkhc?Ap4A&2j{2BuRyrFOx0;Kit*f1%(HEaJ7 zhOb-|5?sw|fR&?JQur0~Poi6o^NBqLN9tr0?KR%u$C!el58f`&ZGZU%n#mzp`8Upc z`}|cmp~yEUiS+#n3=jr&#b)lQ*|scrlDkv?-C-5ii}c3(q8IQ?$O=8(c$QH2f4^evc zTx28c%R(S$N+PL5+j3wfK*b}Wv=HneKcCu>9Vx7F*I#TNfo&_-=ovb= zT!%w~Nn{=%SGiUAvF(+IZv2=h+Vn3iOb;^XA_O4kiR5~INY}X zQPl2@@_M3P3#5uQu4aCLy?ULF4>UX)ib>#Y{K*X!CS4CiQnI))ng;|dwD=D*#DtCh}alH^Q5A9UxlmOX!?`K%%!~CnL%dt?FCW`BGu`;lK#RxUEg6 zBBFo;h21m}1oFAGDxPmR?MsD)A$ZzmtEK{{?OE~FUV7cNkb&7yEaj zHPb)ahd+K5`}!5y=@xFtIPE#SS;a*T<^DG17}wA}7m!38G6sY9d0qO(A^EV$15Uzc zH-z-(3?Up+DIO#t3{NJkhb|!DZhwg4pS%9m7ttZQ&PVpyPXO!gUnr^))TnfW-hp~_ z$G_T|KR(y0(b3T68@R2SJ5eM{3A7w3^hKDPdSheNlR`j)EyM+V+Q?SDMLF#f2Qw)k zdNkct*dGP>#ns~M1fEV{8%#U28TchNsmPXhGFM~&U_G1%?mOGNr%)0G*9=N(o0tJw z)I|j@M>RKaCupm?(B!4__2+Sj24!iO+Oykjuykk8K@UjSNH3?B4ILZVTd^q5Z-K;D z^j8WpzeDa-cy+&a-ZdP`2foNa?jv#dg%axau3=c@#UK}ph1&|Q(hX{;TySsAivL>){^10)$rj7^=zje_Vz(YFBTYW$h76%Qr+Cp*W+4}hrOULo{x-Y55;OMetdBQQW1OcX%mD9#$0W<9RZUCu1F%r1 zN_!zzv8Z&L4e&n9&;yS`^%_xRmM0_*3rgsi1D`hD5sQTD-3#tGzQBZ4JZf@RMdSe| zuw+O?CKQCi6R_XQA&|z6g%y!|QM1+KP)FeHCl`|DGDi*xyIyb>*TO260ZvAz=kZ1k zr(0nD{Dl62KgT@D^`5&WQT8Z1d%Hx}(~nNL4@+Q#B;{BNV1Tq0=*Djr2A3xq_NI+Y z*vB)jj!4c!(@N?T)+xZ2!#WvTHnEYzG89RNQ#&a|_>VXCVx3DPtt(HpR{7QJAe?Kl~qRjaj^7D%Z857mG?oxc-ZzTex3F^HEx} zG{`yP9FM<~0G}ihPZQ9aXoIat^gh!+L^P^$9cI<+R+hsjHqMFT+74RJkNu8CJ zsi*09*mpPivdT!#xuezdR+|O1-%>3M=zELC86SGca*^AFM8#5_9pg$lB8hM;HY!%-kGdsCYV-LlU9s`GoxyDKYrR`F$MFrMNJdT939;?X;j14 z@8L#{%MHqrzbbTx!`4dz{bG;1l9CM?SKAh55D|tTs|PP?(h8FFry$9aYK0fv`uXKg zXlT-7LV%=k=H9zNBt24Rc^~g)=2ms0=Wh2?{MW@T_9p7`MQjr4*R=-XXA?-IJ|&7G@bhLqCKnr9cV`T)Xv5(wnv$tEwP0j!uBM)nkg4CFPF;>iS`f^kMWFp(Om zUf9DKofl_a!4|<$!VMtJ_Z|;S0MQQo)?-aw-7@TU#5_&VZ?b?%s^3nw7v@FAqy^Bj zvOTy#8=>RGni=cVk($j!n>0(;z;;dI*=ZyY2Xi!L7|46Pn9JQSw41z4zfneqq&B@l z%!PoBc-X`s#Av=TUxrE+Fd?mMvi;cC(NHN1}*h%wjD6 zf@tokIk1@_O$`Iq;DgJqd!l54bbX4wSH<;nW$G8$AhzCaJxpkmR_< z#u-jIrS2g({n%aD4Y15ol-ml?pr3e<3cp5Bugfq{u%zGX`BuEhFY&fK2HD-9XcgKO z_f^!K14ixh^}*T*S$Ev;oH84tjEeOmFv3~o37!Fqy)Iq4L??j&!EzI&@qChdx+iUz z^EOQ{S!KI4KHTop(CS5(U3jg<0$IL|jQHs>=~Pp$sVxE-p=iWU?G1=BRr=e@r>dh2Ywkc^ZrLmu9} z3EA5kxX|dH1QCfDCxqwpVsk+Tlbh#q%zhhuM&=ODd)L2)xScYE{TWb9I@h%}0tYj2 zt5DIyQayESb`0qPebx!JUdZ6*AtPv=%Ixv-WmuouNI_V36V%-MD1bKF$6G>-{=hTt;1n^TN((6&gdhPq=?#NnNqeX*A$f^ykE=tTT5f%4UzQU_24 zBJs3R!4EFah1NGYG%cFU<=jQod9s?qO%FO0kz2R!8~JdiqZS1pg_ z2#Ug~cc7$3lxEJ_%!G|*EFfg@YNJdL8Bf)}s-7#Z5h_hY9*dXbaX+G1H4f&9Zxntp z>T&O^*XvplFA#~S^B`??`^hnW=gYl7K5mrAJxoRJGszI=`S3DRv>?P|;9xE$c0T}$ z4wX9<64jw0YLx-_WekBd^-?__W^&_~E#F@V_(lc7{`R>75${ccaU>%HIvw{!Nc}u6 zJ*L$#iisQLJYzXd`t|ki4)w=}9V8S(l5Qis2l0VByUPerq_|U=P)>MJeD(xzoZ-xM zW>k!(r8lDEc(S63GNn!rTrM;$)*rXuqsVz*P^Wc5Y<}pr@l9gTM~LKh>;K#K?;HK| zHjy_`1E2BGzjW5Czx`WNIjMrP@1Typfu?M0y+w)AVoCvA_zzqkWMH%Hmay}0Y$0_CDLn9 z2~n!_PL$q4qy`D)w;pEZob!tB`S<(Y>++9rE*&TAXFq$db+5JV`_5wxHRYWQ>v zbAK_}yS;SMdFAvf&Pb@eJRD8#x_Y>CyY|K3tu@y;ZNqc;q-^Kg@WRO5 z_j^8;yL^i0FX>w&+8o4-t%;3z%R5`t*S=`@{$kc!;b7Lohq7V`9t}3}v+}bZb+nb$ zYbV1m?{%u!M8D(I55H)zl}q!L(*MD9z{HPk>kq#?-OT#i*3Ccu=>d~N;o{rwyPf?= zxAF5T&R(s!TXFV>pMv~0>FMyxZ%n^S|K#T!xX7Th`@ru%{B-!O|FtGg=03W^+cvBl zKJgMA<7WDwEaA!Jn0xPK4-Ia79$5JalXE7AezJtCmz*`+xBbcan5#V;9oasJ<9%{4tGj)ciAjoh{U5hGU$gNgF&e!j?%c+ypj}f=J>N!o= z-#i@aVB~Ime`91moBW;gV%x<}?<`{NB0RfzLeE@v>rPcz8SAop#;Yz=n)Q>U_A=2= zVrlne(MWvWkyiR$XP)R+jC;lYB!Z{ypdgti?Ag70Ofr1E9wTvMv7}`SE$Nukj;0wG zT_!RL+IsWHQexZey@sPLx1MS9p^+owy{3xpRG&z7_dQ_#W9&yV!a0TC7=;Q=GQP~= z*H(n>avPQC|B#+<(Xt6GnyKcWu-A9%b+IWZTV0yi8JbhYZjx&G#7i|%9Lhk$Ev%Dis=Xc3Hw}1_OP*nWoE~7P7fi{^lVNd(0EdSKAAlfos zn(9F*qxN;J#G@BF#Vu+NQ1+y5$Ze2`luq0|7NK**&~q$#tX8Z+HK#$|YpVQuV~EUn z+5=+obQOmURc>kYHLTj{)3J#ViM8cf%Yy^iADA#Dr2KAp7O%PK;)zTZ^)u5K^n6$5 z85%@4Vvk>*sj(@*&(_P1o#$TCn8Kx~Mqe$Vl+&j4 z-MR}M2gVt+RD{d!;EAE!3i4&&hhy_-26q}2SEii5z1!Aqk6#+c{P!OwLgduq|DBLB zhK}4Wl;2@$)s<_NM_V2e_Pr!ld+Pi!&dB}i{jL?$1r({9b z)n}}RcN%>{gX?;{3i8_YFyBhIZ@_~uMfIEjid{&4Y7fys&vEnthyBOePY1mwHMK9u zkaL@@3%DFB_vHEF2SQ{;xqaVn=WUtVr!61kOZ(p7YvfjI2$!gWpR>=YMzBxJp6y4l z2M{n=^tWyYJlgQ^iHQ06GIasL(#f|q<5TT9k*!n;nOmX`ANL*d$)CB|)Ar#Ie3lb20poEN8Ve>`WP`wd4th+%nLe`dC}mR2X$aAxci zZvs|dsIcX#N-~6q)CGr!T&_C9W(8f=nBwHS!ew(;$!ioi;o{x4Ip*@2RDq0#2R+k@ zd9@qAZ^Z3q&Bce1Gc~$cB~>1lS+>xXOYQSY6)~$4FLhv!_k{OT7Eu+<5$S=4xXN1w z_b886H9U#Kd8v29u846<`7AF!Z%w%p8xdjb^SzdMK@&sm)1UT?@#vjxQ1EpbpeD`= zZvfE#)fYbkc0GW@!LnOf0^;5KALn-4mkhDGvg+Opo0}@3v`yh_gh~bv(mtQxb;Uz4 z`Pc-|hG&x?{# z?-LNMDMt<6+2qybMJbD9)wjjKB=qD(?YhE!B2b?H) zI7umMD-_?Ik;m1dP944yBYt9beueDdt71kBk+}FhNMt>0|Hm&-F`cBlTPH<2)9Xm& zioPG;@qDF%eixQCDKTmuKDoqIUx3B-PESYs$%X83D`EVylb%&_xM-xMB z&QLkW{>mo3&KLK^4DZbSRUkcX4FM@D=RED_6$_o z=?YpX*Fhk(>hl=6vg^#Zvr{;;t=esl+D0BjK7@3grl{5_$RoM)ZTi~Op_4K{$?IuB zmB@$hVVSKJQ)d^mP;I6fTgJJ(5zFjn@bw@E@Mm7E5ypED58$VR9a^T^z3^}1kKF~7 zkVz}hQkRoJGH%`)3AUfcCB~ph0;8|*#u`!M zgc;O<6^|Z6S}oD*@L2smg7G?=H`Bp4<-JBDWp%Hew9%Tow@d!CVEJNyw6@^#Cv~5z zy_IrVaS#kzhtN{JceKbPwKLO|U~{V^(>cDHJkpE`$z=`QpUF zJmNvGB-ol{Jrmi{m-iTa6MnWJ{l6AeuCf`9%S?nN7hy63Qi?PJWQr7%_m^ zFrBO_yUn7F&bY#6sjn@MDA*JbMBn4gh;1QU_cJZJ0nI%{>D;&(Jnd%UV|1=(7l%V>7y`$}aZ;T( zpUveYtO&>fBFpPG>%75_4!WzS?ggNw8IGQIFFn8HE8megH|qlQ@&LEPxI3<(tpLA5 zo@>*0Xe}FVH}VoB-GC4b_C;b|QO254qCvrOPSX=~% zlx2UZ|Ih9FmRN#KtF$pH%SRFquH8!Nh_XOMnSv8 zmM8!?A4?1ry1b3s`?iZPHr^ag;no31-WRw3fH)IGS8W;alV@<=)T%LJLL(QbBhlKB zZWL06y7EDfn|Y_6yCuK7g(SZArM!hMn-O^jbvnVNPOsU;TMcql0|Zs=RFhZP@DNXm zpVJr0MBhWor8+pcV~}Hf^{msAo5nF&M!g4CFvcs^GRxmSV8pUBOJ}O*kfV>%pNwsF zOF^YtJ|c(`Q2GXW-vDH)74*957tb}RG$Ub#NqX=}ZnK(fvS5D45u_xsYQ3(VVQq92kQP@TOj4{H7P&{O&6Wun>CqfYY=HP@S+2?l1@<$wJ$L>IFcuoxwdQ8dhro)<2T@XD`Wp{5h za`$&&%c$}Oakh?m?-PxGRz;X2z=Y3bc}(5c+Ow+h!!Csv01Xt9#OhD;phsj$>Ggej zaC(~IRmQk>+;})w#o^E*Hw>4{F2-Xxn$eI6j??N}lGD3FnHvK1LD71$Q-x+S{f~H> zATw#z5g>X;89@<~;xt24SjBy#s{bVHi6ZIrxeU~U@wrf~q#&gudWhdRy~fZhP zuE_b+OOIfu+*rJf?cRPm-WojN2D#GOXMyCqwhsM@hGQ`QWl4{Wq#p&>b9+tVir+Uv zwhjYmRDQTdi#fu+{QGdRylR|`1bUE%d)jEadILCuHtXHFa%!3I%6yh@2LB<#-m+KK zb?}I~)E=!A)k}fG<%M(sSAHxN4qV(aw5j}S#Jvu$Hx7HO_!xB{uo?9_8#~uYSoIV- z-XBr?$qqKIw{AU$OhTlG(^!K74E`wm{0Cz)+{=Q@UB0w#Qqy}z;mNZ8@C}#l>1NcY z-L;}M0#<>7`Dyl755|T&lulP!K|)Z+VBcQWv&9kgy8O^#imaEAvMRfyQf}cLQp_0| zBbj#Y-7cT(F|!~xv6Ny?CkQ{PNXaK5wFk1C9pK%JrVgALqwm_!vh8`uwrA4^sQ5KB zdm4gn$BcD43Y0CQUl%j;=e6Lu%Jg2{&BKOiMF_mU{?%v3^GhNDFwE(D7&3i z`$%bj0RQ;XT*BHi@0F-iuROh&Qxi|k7d4=T&=dNk%L;4X8!$PdeGkkba) z)uw24_S=VDZu8cDINnxx2C1~WEl{=?_b$p=gv2>kv5moh&MKek;Fx@tuza)Y*6ZLm z(z-t1hnn}Q2#6ddoZdK3xTbU&K}>0ZJ0&|_79aMcEI^#P7C8<}bKc3Q2n%tAcnvUA z(t8TP*Rft`3akV;Xcp?-xX;4SfcZ&dgGT~sY_wdM&j^m4`z0?DVPy%=xPLMV;3Orebv(y?-fi{W?WN_7`NlS&;2t(IS z@!mVl*D3qOYL|=zr=gxv2LNgLRhso@*d7_T1O+@wzK`Hs{-q1J(X`hgZ>D6!sfEyE zz`Cx%%fU>nOd3X6=PI`fg(Pb7QzciXjo$oLU&5$E0?l%NNonBsDSg#oNYie`>6llU^ zmFsD@ctB!)qp~?x@H84OZZ68+Ah%F%Wc6!n=RM12ika) zR{pI%-|lf^`y`=wzfS9H?jQHB;}lz30IY|#-<5GoD^=|Z5=FjJ9{=Q=nAamUwI&WO zeu})uvBYe6VeN_ z_nP^{D;7En758=OV8Gf!uFlnt%L$NwKNJ(Gxhg_MNnNRlB<`Oa`syg;b()$29>Bzw zF_ZJ!jZ|n9yzhtLuACzQat#V=-q!hqrxo$UdbkL!(bwh3yL=bVBL$XSkug6RP>qB1 zE)fp?g$YlH?&BfzGd056k$kKx@*5H3%d7e8JH8KRkm*(e(5LySicsg=Kx(Xg@%YoS zjx#Id0#d!;NkR}N%5Wa(M6C)&2rMv%9={UPLJ@JS2cy=L)7_t#1dD}tvmpAtC z$J;=WW-HB&$t<=m1`s$A!lErLu!R0e+a%c*nWFI=_kmoG3KSPEUo>6n-;eK@8!)YE z0f6#3`w4SSWW79XaxPsReXkVwaY56yFr#xIxhO2v@+#ZM0`YprpZv=8l}t) zWxLfEDT4vq9i>h~R<=Y?i**A@wN|`YwNy5gw!lbNpECziFf5T2)fYPLm7JsE(^>nX=bLs#9HGagR8`1!t@Xuz#C zlkEWi;xpkY_pDYnRq?qZC8nU@;~?{pFrMKZXEx$1E5U7hC0nF*0L)-&7&+?l#|>}m zL6cW3bYD)&Oc%U_cxdIt4nw(E8*S*=^L->ip&-;IBM$|+4Hh(Zmr>{7O$K0xzOGfkAp5;w3jmyI9rbe@nf^^zN;R2yx}K8;@`dp zi>qR9<)^dAgCBO7%cVur3P)hY^hrf)SqkB zY)$oA8cS`4p!@k-$39*)tbXEw*b3pdACHVdgF>@c0M~aPYrMA9K1R>Ic=oIGPunQ# z|~etKXyVV|e4;kD%u<#u5ntoH5jRUFbb2lJgx0s*(X*WG%_OjbL3J z*Tz>HF7f@WZ^oeWf&N`&`CPIOAuj4uF4T?Y_SFX+q5f{2@@iDvKXedzW_4`?N5x(o z1$rwzG-5ctS+pt16=I2$_fDiC(JT7Cynr~-0obb2A^9ml-cDp6 z%}q7@7YV9wVJdS9NxLq@{C8f{OdBfxYt;$sNhnYUp2yH-Ys*=x+*IMf_(D~6Y_i0S z_kWK2Xz2<%e7ZsTqXp^!gMxE3q#s)3fNF?0D3c0M7<_V`z5GF^Wr7?6sovBdm4&K_ zu>t>+*vx|rC(bV8*;J8On4xi}|1qz{@G(gvU%>d*)Ic`%tkRjw(ZUr1e@t z{7o-WH_*(cl4U2e&y({ZTjEIrQjqw&$eMpvj}zVSwBF*8(X!fXUZ&Gu{JO{@uWevL zbmENf#*sl<(1Z1sDA&jfXSEDIq%{KbxTxZ8Gief_XdS5!CoOKym#YhmOjtF@(`@l0 zj}mp%13Qg$S00VTiJD&~`v{kQ`y&Qo&cu`$G?ld1%2J`cgWBq6)oJ4s>>F&S&B%X-zGUzh2^6v`alFk1*JcTq-hDDI>QZa2_t{xfrm5?F3*>xoJ zalBXVzWMCRxP1c5EHK(~rO@uhc-gSTDf}eVC?OS>-^Y*dRK@D96<96xx{=~6V1U&# z+2d zRyJDBumL)+pV86tpS_~LK!?!Kt(#G}RHMWWBD~;#nSR?s%|8Y=T=m)UE8}h~?;)iK zL%}A&g`R7?Pu2R_2I)2UCw=+})vDsG`RNfTGdALDWcvM!)%6!a<9}mynM?eloc-bj z{@pnH#b)~Jviu@%A{EXrhV6PE`WM4?z1;mpgZ_(X{)+~^K8gE9gZ@Q>{x_@b7jXDL z037%*{=XzCzfjHkNv-&WYJQ=b|4`2TLN&io&A&B&zrB8w#s23?9A?l34$_};nLj$gg*PO9D;Tov`vp%MB2D?T51^v89h5*Wjl z?UE1to6hn?<_Z0i;xPIx0-4_V5AbwbunW#3k6O0Wz6oz2En0?eeScq{@$ZB34aFJ)PRxhA!dMc;9~}09+sGF7|%(-wY&n z{SPF+%_y4mwF-8hSAN%*y-u;)RbKy{0>V`vBFyh%4e#GRP)hy#=}z+S{Pf{$7SZ+0 z*#W-0lrX`FLKHnLmT(CXx5xltqA3*^2I9bn-@jV?56MDl5ACpDp>KCM@~?$A7nNEg^6VtIi=H;B2)5o_?0m z*ywD++PbK*`Jw#WEAfFKF{Z#>-++#gk5`!?uDaL)R z@jz|Kn@bi(pFq#Xl2nl~w*=FfZxy+qI&mA6?#~03NVOGAl{3qH9q*?HOLp-A+1~X2 z$RX3o4&0a-H%({WS{t|?&Rs6;hRv?sc9963RvdT%Ox>H?npA`hYbHQlXOst|p^0RW zY^1VTM7{b}8jyVIKzPb;iUgd3qJb08jOaAU+TLm(EQ9z(+5~`g z`a0#J2rx*KcX@xIA9GHi8OVI`qqjD@UWu@7J7`+hDo13iS`p5<6$lj5f-%!>j=)|R zd(-*V;`K9<2r|FU1%cnSH6J4B-s0rWIjNUv2Qtl2gH9k9;hGUq`D=Q-F3m$OW|HJLJG$(wPwBHeY?(L zZP-6>9#!A(9Nmi0#%gK1o=?166^t?qk#2G;pN)G^v^eF4@17})qPkh03XA-J#TE3L z4g(RxaK(!XG*Gv*IY4i{GQSD}PX}dV?LCsK@RV-ik<-#4{Ujhb#UaG@2Sv;9cOwsi zvU;49%U8Q&*tuJ50biO;J&Z3OCo4))Lu7j z677|c$vXFv%}Mh)5YCU7>Uff9eeJCcgxh>3=6QTc3w0x)T>bu0c*5uSlZJRzeWx7$_%uU#|ldh=sebfCza&hnk9 zM-(aeEz{>Oqm<72!^DS$31PF)n6=-Gp%a2%U7K;rl*h9=v zwGr{4hR{c|Pe%PsZh6_{!*mqKA$=ft3-<9o-V`;~bEcI0YD0%3c-7+16q&7feZ9ZG z3DlLRZ*IYYa0QdRDxp;oAp8PXD^l*~`kKpkd78_El9&MOOIzX+i&K`G0&_;UjqOb{}wpK^9E1fl^3r*Ji=mTnNtyF#QzF6tQoN9^z@%SxY%flu2 zGU`m5eNqQmd&?NBnTtT2{fJ9A&X1+0OZNKjlfCf}j`Mv4IMVziIEh&IGMqtf+P?$R z3g<;r2uNKFI=H#y-smg3Dov(sS9k-or|-XQ7K}Jj>6Bs*TUB%(lM%fc#T=z)g}WoN z(2Ee+nnOE*LD=Q91_baz_|aY(_s8txZWErqv(HDaUWe_R{IxAu2ww#Q9=53$%K-~r zQ}>IFyUsp9SfP>|u}O1)u{ zT_YT8HSJ*lWZUAa73}tAC;^It>j|%dDuKTh*QxuUG>3cOBKqRG?C*I$0q*Lak>HRKn=jebV z&cnVoy93tk9Qixp__tmmlU{&u(X_%xC6V!VY)yES&&J z4bTx0-!yQ?wuf>^Ws)o?)5!{IN$h0jeX(=IOJoxgzN6CpB_y$eWJH{iQNA?ZI>hd{ znJreC*jg%2>uf+ty{MB(F9*hZvD14N?dPDi{p+&?qbqq?Xu)21(w&ywgNCOQdHY?6mSqkGAZm^#E(1q6!DB66 z2Uy+ROZvNM&E{nx?z=)k&oExN&+Pi-e%Aebr-!4=-e~XOy0itGurg^`M6ptrf3Idx zcywVf)-vAXO=#d+)s}PpC*L^U2=ce6S}#^J6dd3j+PTK^G6vK|KP7$boF52%Q ziI{ReTG@-pLB~mHi~4P8ivAX-d{fz3vfox=7xmdlk0l{VALh<6ZL@E4d;DrcWPY9O z#}b>qAQu*Bt~G7$4&*YfZ-ttC0q-?mpCGHtf4@mq@xkngjhC`+H}*v%%I(;APZG68 z-}^=h_>7dGD#mFwmdp~SoyOkLoY=>O0bfD?5EJ_>>ITb}R~D9w7aaM^7l-p8p}K3V z1of*ikI(2Wi}p-L4lTYGEPRh+rw`kZu(u zbuZd#znMBJFwv@n;?_sHTll*&DR_P$2M>#O>uI|!Xd>aXhYVD=E8O2dD#ys6dMJ?P zm8Wq1+Y;X~iw0ziL`{qP1U@6`C@fvzI_oZF&md0-QMk18-O>% z5#HP8)S)_}SaM!Hoc(vW^JY4Vfp90d1zRo{5k)u_txvYB{TzU~J(PzEI9J9f;X(M5 z?+igWCu6E}x5`#CS5>i$eejpHH6}XUFmbnXOOL5Bcsgj1Y%90_5&vC>ft{j=A=>0l ziV0~Q#2XZJH2{;6|` zbC!n#bPqT=Q-UyDnherUrdWs`H2C# z9v*@bYD%~?eU;^{Uhi3W{owb1pu5&4 zgPDMkMr(%*ryW2C@c!lO0qvP;YupR0>K5#x?C1Ko6i90Q{S5G7p1bmWH7f(mopc2w zV&@I}E8P(N)v>(pdZPvDx!&YN4D!jen ztN72JenI(G0UpPDv2RColyu9aqiL0TU)H^m1Ye)-l_25I;BZq3jye4;RMB zi?PzVNr&0D-=0sO&IVY#bt_)`X#Dxz#Kr03ltp^-eF;um*o9%TJ{zr%An?YO#+DN_ zyU->BRgTPp?k(yY|2X!X{*xge(6xUHXEdzjw>@nIXp_IW4IEV@(uOoM47h}Sxa{)X z_juhNLeqt?F~^Nssy^cmfcJiMA|f=(kwrxx5!bj5x=#;DU{(;EvUI>vv8J?b{FC16 zPM_dRY|Hp|ZCloaf=Xe@2J(dj&|-}BbUMfB=*hfb)DdaEnN9mLAJS2%fI*Ch>>8MY zj;WIu9P(OG6CbyGYHq=HtfgrAZmYgl5%7m%-_@+B=&r{;7Isg#1y|99-M7ro1T*Rm z)|HRnbQE`3(3l)*n|xZVl(5ANW!cC3PYzv`e)8OY&?J{7yTAHs+_>}Pv8M%Y*TszA znr&70zEN+DQ21rr8r zA%PoR&`hhgCV`8KOj|>T@`;EJYB0)Kq=!+*L&1cQGD;TUqHs92wwH2?#2C)>jpmrt zj`y7Y+t~2s)dc$OV{kdO==d`ab$k+z*aLd8sh5#vl}>?JR{XfDDR+9`9_@iK3p#!$ z{gj4V0w+GwB#JxD2FdD9Ak@5*n^hx_qdMi)UcFtrmZ4U!PYi_h5yE>nKW-m4Y9qi^ZSCkmvk1jOwPtaUC*Z(Wd>Zw}Y36Jh5ihJQyp+fcEt*#FHI9s+ z)OAoI!Xz{LGGydPmQEWsYkmKx+x}`Ygohy#-&04-#96ZSI>iz@AF&yF@W#-yY)Skq za?NXtqR~u*?43kE7ob`1w=Zffd-qmvFfE!$+*<5m_xM=EsJriMW^D_sx$kO|tE9dC za}w56*Y-tkdUC)AoL_4_Vat;Jmlp-LY2j>%9tq!FsbeRd!xF8f@u*wL)NnZ9v>M<&HNCO)QoC zeEsf>g#*Dzz4xPIpLvn2W<@b%C&q%F%awZ*T}zP`%O`JJf$%XUUv=rB=lP5}h*!X{ zh+f$p&k`}_uA-Qh+rlP0heatKvE%|R6Y}H2y?RD8g0N3x*h+CVD#;zBB}(RWHZy~t z412R2j&|H~JrhjXt1Bq^J4H#TKj1wgIT?1Y+G4(y=J}c}C!j!RT_}+j)UvLxV|$(M zCjtIGnR6?R%G`C{P4$Ax;Vh<`f?TQM-Ty`CpSM-0?`)nHfhmAp^oZ9atdmPO_U>6`F zc~r7y%XEUvWePFwh9=(7F?2vXr>%M*+pVM7|%slCS;Zj zRUX)`Vf-yV9|Ze=dp>22GM&W6QyX%H3LS=nSCHN?ScpL>m_f*c)?E2XNouKRBC{kU zYQ2*ahu9R2i>4uxDnXXCt=433dl|G#j(=uMM*yPh=iT`*AL%lrhx<>4K$&pCR_CC0 zyKNq!ReWHUWy@DJ<7NEHg$6ofOYGraMWP!#KweK;p=L7DsR!Z_ly{o z(`KZsj!o#yqTzA3<1vqiQI>2JnCKXf{{JdGd_VLvBFsj+1qVwV$gu<8*inQRL8 zSzT(!3tgd`;2nB07G0fdR<}IJqqe!Y zapWs2gHFZ}|3ZJ@d*v6LRf?y!THh=3dv{yt>Yeu}ULv8ij5YRz$q?Cpf6ZAlluBbl z-P_L7-~=hg?F+U>Zi3v?1;;R4P9G2d9W!6KhbZk4>qd%tl%=r(X#cEUwq*on{;eQd z^xb;Yl#fxl(KO-Zt7~0bS28Km37JuAtsQuMBl{^+(OGax{@3oIne{kiS|Q0 znFnB5wEOSM`)}(eiNZ%`nbo3sQ`+Aj+l0t zybHp$LwT+@6rV-z=*#n5v6p@CUJWop-`7*{tEgO zmnNI7+N$~nYB_!Kz(pg44E>EM;0e%w=@?<6Wu@}9k}(2VW| z=bg?xeq*Loc(T=UU!>MhRt-yR-8Wc@m)6xjOKzFghYQ7WuD{YJJvm~0RQ`fvX*mvd zFPM+RgA{A3|3HmaU89(z!m8{=$KMbBSd@?dvxA{8eJl6I0+=~;x5{lsMm9Yo_AUTk z%F`5~jx2A-m1pI5Sr;|r^tyISxCB9)S%#XFs1-R_AA3yF0ICn|Byg@2EAbincneAw zN?D-!pK(10R+c8R8pt*n-T{v-?MSBJns8{q;$HFj6zqLn- z{Rp$eGH+4S8m3}gHI~bTyR`%Dh$uEjow$QJJ|I1Hx%ofQOa`X_z?Ct0)S8u<#*7nf zIOUd>bS>uuw^R6BCIlhfn)d7_dojgcoq~MjWofM!QDRmcbi9@H!p8 zgX^`_h+L(5GqJ_ew#)XjUC_&K4J)^Y(6N(Lf>N(SYAE(8WHdBnPSE0!YvS%0?W9LT_U0!|6wg3x zjBaoPnRTv9kB)UbRVp!jGpZ8A*RdW!d`|>GXU+BL0|3vJN0Kl9;R5uAMW=u0RTALw z21HZ5dhe_e?lgnB=5yN-NEm~bFXKj{z$*c9N{$aXGxJg0V`fm#{$cn3JQcChAG^7E z^t?Unhc8QITv&dCSep*XTMBsCEY#@c7`J$KIe^1bJ`E4AY~-LqCTr_s;qgXfq@<1S z*qIWFbOS#m-}{gU*f>Wp;4p6TZSQ-tzU?S=n<4jUMOloZKeiV`3+9j#qE?69lVb~g zZ*A0gn&B;OIklH6>?7S!tY=tz@(gJEWrvem4_w)TE!EA#P3HABXw(WlK7vMdgLj6W z42oHz*hQiMra(h+hYFnc9#ojwA^xD?Y6aqf+YG4Tna2wqR+%V#QJLB6V9DxUo3vIo zf_ZkBwn0FD4N-mp7h-UeS2!U<0L_1%ZUW|MCkQ`o#iL`pH4ojoRvD0dD^5r4KTUoD`QGG%I#PixLUlD z2}HVGA8m{Rrv(CJGdP8vJl0mIss4KWTd9-XYnq zoLD-924fu6nuLdaxbZib6i9#)vmGMcS>eep=6oiE`!>}-)G@A1$5o@A&}@t;{NFQj zn=apzSp|!Z_~U9XqGUjB`&cZ_91y6 z3Gm)&ZU(`9WA^BtNau!_?Yn7@hsd4CR_#H2C#LpOQGp(NL~;%-6yHk8^PJS_ifTv3 zl@TZ8<%{7Do3QmC(U7z@z*kG4N5)Wiy_dtcdCq ziIOKc&0rbnE(8WT=6aSM$eQVbxhv`o%vmgE7$}YX`4H{wD!BbkBL-n=tlg`UMKw!R zjcy9tjGD`7+;toorN%)0r7vT#eCt^|{uZRx_D6YpYVOSH)w%}%aScNZGPR^o@eVYw z-slQL3YY|c*La>)A;nkDh5r+uJvg#0xIAb+moK+c6kDj*bJj~-QS+FE0Kv%*ad)UN zBSwC4l_b~F5?LGKu2(!V-&ZFvj~I+%a77sqjmsEwSYpt>smp^!tWCHYS>I5I*=z zx`vusGhd|nJPz#)MR2j0f&y|o*<^wj$^!rR`feL{Ps>c}Da22i=`==k;oW#r7|IOV zW2W~;N?B9D$dOwDjq@)IFbEP0)??<>LkEjIJMIv1Y293?IH{028OQfcvY7%`RYoB#vYw411naE6webh2LB_ys!5NY3X`2i+h`@T{5eQ(+iDKgRQW zXg3GD!hCjzwUv{u?S&B2bYG*uewE3b7FEqt<(A8fM1^|6!V7`iX?k(nje*2diOgni zC|Iocl6!rhgkS%@=^JJ@T}-sv)rfnClAgT$!!)f^s_CjV-<7x9#q0!}M;}J0?bbAv zxHoX~LiCgRn~5wzN?l3!>yMg8Jbv{wWjXC}Ehk4*P}0RA?-376S4+xU>QrxU$qU+) zPkrs|!>JNW@IM_nIE9{)9?AF{tfq;-p#RjRFP&CEc!|k(nP}@@esLXxV%ZXY`t=b8 zc1PE9We!QQ1&dz}I(%6YUGQ{JeSKDALde$fvpw^Z{!P=cCCB2xLwO9qj+6s*^0r`*L;td?gLrv>{?6RnF+@3*LbAx#)abLqR@t;>6( zFq*sS^~;vtfSQhz9IGP@3C7GU19>9orMdpRJ@F{4j;3w+SSEq%rBlP#dl`N#vxeAH zY3+coi%e@QIg7b17b;z2+;sDa9_L)pisqjbBRr?j|1Wa5CGTxXS=10jAs&U^=*>&a4WxADN7Absf zE(KTQ%FjG5@_5<(D5Jl3=t%j;LU4p=2DeGQ+JxzYJo$BmQugj+11j&P`YdgG3US)T z-@;)oM)=70Er037zb4o^Oh>I9h7QRuUJyww*;PZd3HA{ERRjH9DpsLX!hf!yq>9T`TpsA{{!|K)J9MJ8uO^YIRvl1|UeJApv zwt2L;H>a;RUH?Y?zq<1R+xF%aINye5VOuZz=O9*xxz~P8*jZ6j7V-#ZM4g9g7vyQL{aExHO$nFX_l7CS@Sli%?WXCBj8p3L5pC zl@G^`sYJ|qNT^~91Kz7MKUo?GzM$S0RdscquXHY#&}mdw#-rxI!;~8Qf?&w``XvkL zNL7B#Y2K6dd;vLs0O6_Bv_>OCzFM!s+G`n?ktfCd`#@1>iKNQ{3L{}wI_+;Z)l($b zx4M^~9-*c6tKE#FO*U*s>DNYyye>R<)}i1mA)xL)O&c7A&-y*~oELupRwxA&~k!KH+%h0b;lwd2)6g0F5 zSTNqjp3j&ajt`hLo)%6DlV#1f7KbxPvQ<`y<58UqChq1oeXq$}J8sAScvqL^U?48| zfJmZ+d~tw9h!j(DFnzZJv|Ms;e0U(FP+R%18!_VNGia3^I65`g?tz_NTjFUD2|;Z2 zPOBf!PiQ@Pi%?yGn9=dQj0d-D!5qVEURR#tlLuM?%WkA9tSOzrJ4W5%Jjo@sD{X$c zicR&aBG9 z^}4vGlPD_DtGIBVjrxe|KNGXzp|hg;65BMN2OL|SzS0T6DndnDVAJ6gIa#*#dxpdDhZk3~U{0D{kFJ|$ztx8O9cb$EHXd8o0p0jg}V8I>T ziX|w45>`C^VKe{D58iP~gYAIyNBK>fcR6?bxf$gva4*#EkYk0bHu;5f{ioHae@M0e zQgi(K!_9?E%Eqr}UFO%$RPD~UH)haw)L2GFWe=FRVpbeC z_%x;MsO7xL?ZTKfe0{ zM0LW15w$qieR|zKd+yDxJTz?~arZ)gL75=UY|oG8k{WEB|C~!U(WAj!vaX>Az z;N~U!v***bQd5eYM^emdB3QO%lc0My26I9|CYMkhyboFrUZ!5Tx5v_4szMxmL5Ky$ zgz=2q4_o11ZBheo^?!GLiuzx^%MW(p$G7lrUBu%bzcC5^6C!T^^@9-qk6&B&>oELv zSAHFab#u92kpZC1|Aok~BPvSH%T+JW`ucfCpl+mYVPs9x&9O+PXF7d|wlUR%STNZI z0X+1_GYk6zT4EPqdLxB2@5Zh;cxo*WfA-C;Co>`e;9a~|=GWThO6iM(_C*+z{Nk6% z(4TzEz>aHrypYIGnK0@gWegiwWuGsGHe*1mc3gK`hJG{HTjnSn{2ToKr-QPFRWJnN z3O^vC&d4H8*~nMyHNjVHVSK2_IEr1?)pmh+bc1mze3#XCNsDQNb^g3BS)j`a)}9Rq6|oII3pqvpKgqiA)q)cLue~e(YWm9J zpry>9bs2$!3oymnLq!ye2$TXYpio@Oz?Us-g$l|d0>%IVLbb=vKoz&RQz{grSq&00 z4FORG=*XsGAcRdow!}m!geB|Tm(J;QAb$ekDj9eGpWi*;i_a~Iwx;xZy zke@Bl!p)!zEfNq>?slpX(%)hdMl86gInb*2jL4A-bmk)$FZZ-D7XI$duIUERc4iN3 zMw)K~2-*Oy(Esdh^^oOTpY=PFeB>ekVP7-154&=9rFGv>YRgS0J7iplS0Wwl7eJBe zJ5h`%Y6|$SC~ljyn@a&z%V%B#ocY!iyN)~?fy?Rp2X@f%v|YZL2!Zb#3*H$0&s#gjS2UW zSaUZ!d#0+Np{TaK;_WX5n5dEy$0rL+D#LJa1mofyR5(ng-||4&(jD zbmLT(66BRHAr19mPU_Xb+c*JRXNclwC3wd z^Rh=1SHKpbHkyCe)G3*Kb!O#OD;!;w&nN^iO}XzA$yHrK{NKwrPk%%=`sLS;#u-Y; ztn4FL6dPkrI>9adl)#A{M!i^rz%_TF%T=lE11F9b!+3-w7qR{^_#8k)!Y{R{R>3$T z&`)MuxMF~XG1kpM)x(oI2IW|0jos-g28QXp=f6BK?X>|vXiM}5mY-EnS+*bJYvP8V zlBJ&g{LFMVkNRA5ZEJ)`Q-zSf`GTM#7H~L;A{K&#t&UTyDq;-nT5pPleUm@T1gcfYc}_7$4}F;R zQVWsuD{?Ajsb@T4Y6<^E4iaJ#KobuZc`dT)Q5mh^pTNNuax?0a+aK=e@(w5vX zqQkL-$<4IA6QjrpNzj&P`LD=rXyh~9j~qK`xzi-=3<*;c2pPn~8%>U)p=$ucobWLp z01O4>cveQeUAZTBUM&KvfA4j(VICu-mWSX+iu}F3ZW6@S}71r%!FI96;SKBY-~#G@HCwlrR3cxLBc6PU(#{fXc<-E3f@gs zd>I(c#4DX9+}!8Z7cC0}B1@d0Z3Z~bzKjX6r2$C&0Xa6=!N9=8-Pdb(;Iyq3zQ;t!e%GEk{5Jy5uoP`TOTdshvCyK? znA(<<+yMIDsd)9JO@36St~;YC%`h{%f8O3Cy@;jk;MQQAr%5mj!WRS=H98Pv;g`Sd zwEu%5k?uK=cau@XJTRieOiQ{Nd0V7LVo5AXhEG;wWlVkk4(KMG)x?=*l(e0PCWaD+ zZW*5qe7goYCAEXs+zUAAaP%L=!ogLu$YxGTfohpU{-v?Qw z6f1j1sg;}dDF;@PLegok5ki(~(;*hn+5s_&ZP;oZn+1aXVWw2XWu zLklW)jBh>QMv%SnFZTcIdhjlo9u3vEE=5bn(##(q((Xy%j#GdG$Qrmtf?_8xpgeA;;28@o1$|Jj^w+1VC}*0_9%q(Hw9bS^toS$Ble>Kj=CLoRZfWkf@ zHA4w)onDG&|G9N!q<23^ry*Ft7^#7zrvT#hdoT3=1drerw{RKJTR$?| z@}~pu&EJ;rVVjRFevwW(d-2gN2E%Xr1BAmCgJCfk7K7pU`P^bK{5Kdr9eJfSyfn=A UuDQ6MYyf}0-iN%Hd!kSO2fn02QUCw| literal 0 HcmV?d00001 diff --git a/_og/5fcf8f9ec7f1308a8550ff34f669a0ba418dc5f3.png b/_og/5fcf8f9ec7f1308a8550ff34f669a0ba418dc5f3.png new file mode 100644 index 0000000000000000000000000000000000000000..b52df07c3aaad424a2cb7fb198808fc96c14b185 GIT binary patch literal 31959 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%0AkPNv2~HV&@wXKrGjOdMpu813 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 gj|mSvt{-s=+VbwWM~BXAg8wcms$at<8 literal 0 HcmV?d00001 diff --git a/_og/68fcdbd2132f4613335d41c4c5b8048101f57cff.png b/_og/68fcdbd2132f4613335d41c4c5b8048101f57cff.png new file mode 100644 index 0000000000000000000000000000000000000000..b1993e124f8c2bde7ee82a914bcd557885ba1a00 GIT binary patch literal 32452 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 L=Q4gXzVm+o${DQ@ literal 0 HcmV?d00001 diff --git a/_og/70329f0a0aac7f1b69051e7b95e02e5c2a4d41c6.png b/_og/70329f0a0aac7f1b69051e7b95e02e5c2a4d41c6.png new file mode 100644 index 0000000000000000000000000000000000000000..8429a80e6fba2d38a123424bbf4347f0761975e5 GIT binary patch literal 34135 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/_og/70981419ad8c1adfca6d46a26ed156ae34a0a1f2.png b/_og/70981419ad8c1adfca6d46a26ed156ae34a0a1f2.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca275e5db132277d2179b3f6b86b265b5b12121 GIT binary patch literal 37353 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 literal 0 HcmV?d00001 diff --git a/_og/710cecc519f4220fd3d83aa402780cf411799b5b.png b/_og/710cecc519f4220fd3d83aa402780cf411799b5b.png new file mode 100644 index 0000000000000000000000000000000000000000..ed21a5f0d5afb94a5e0d42add2718f9f49d654ac GIT binary patch literal 31723 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%0DxFs^Og)e@-@LU9XhO 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 z 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 DP8r#Q literal 0 HcmV?d00001 diff --git a/_og/7c19bcfec75c21bd4997a65ce0e8236cb9deb819.png b/_og/7c19bcfec75c21bd4997a65ce0e8236cb9deb819.png new file mode 100644 index 0000000000000000000000000000000000000000..0d23e52d10d0bbbc52cb909e30aae08db8539f82 GIT binary patch literal 35084 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 EA22wYg#Z8m literal 0 HcmV?d00001 diff --git a/_og/988576cd6d5ca670428dab48f86e92d06d4257f0.png b/_og/988576cd6d5ca670428dab48f86e92d06d4257f0.png new file mode 100644 index 0000000000000000000000000000000000000000..db7b7c4cc92f8aed55b309b68d99c3e57c12dd02 GIT binary patch literal 40304 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 literal 0 HcmV?d00001 diff --git a/_og/9a4eac585ac268b49f21d44420d231bf7adf742a.png b/_og/9a4eac585ac268b49f21d44420d231bf7adf742a.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc97e3b98944da8b4ce69dca3268a325b53b961 GIT binary patch literal 31880 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 IjOm^K140QzG5`Po literal 0 HcmV?d00001 diff --git a/_og/9fde91f0a974b32b80713193ee9df905dd354ce4.png b/_og/9fde91f0a974b32b80713193ee9df905dd354ce4.png new file mode 100644 index 0000000000000000000000000000000000000000..db9c5996f32d7d0721723756a53b9fcba6bd7506 GIT binary patch literal 52887 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 literal 0 HcmV?d00001 diff --git a/_og/b603f9851fc0a144e9855d4ed08de9b833fc868b.png b/_og/b603f9851fc0a144e9855d4ed08de9b833fc868b.png new file mode 100644 index 0000000000000000000000000000000000000000..9314c207d3e5486b647931d7b5ff8b56bc982210 GIT binary patch literal 34986 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 literal 0 HcmV?d00001 diff --git a/_og/bcbd57cce922bad447799beff7c1ee114e708598.png b/_og/bcbd57cce922bad447799beff7c1ee114e708598.png new file mode 100644 index 0000000000000000000000000000000000000000..7ba1f16ea4a5acca3dc3b06e3aba295508dc04b8 GIT binary patch literal 46636 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 literal 0 HcmV?d00001 diff --git a/_og/ca1c2afccadeea4cf3690024991cb696458175e7.png b/_og/ca1c2afccadeea4cf3690024991cb696458175e7.png new file mode 100644 index 0000000000000000000000000000000000000000..3376a5eb7f16e6e40c7fa232265f6bd2725d245c GIT binary patch literal 40149 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 literal 0 HcmV?d00001 diff --git a/_og/cd064a9e5880dc48da56f702516d843ed8fb196b.png b/_og/cd064a9e5880dc48da56f702516d843ed8fb196b.png new file mode 100644 index 0000000000000000000000000000000000000000..6f881959cee12aad247f763b8ba0126acf060bd9 GIT binary patch literal 33467 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 literal 0 HcmV?d00001 diff --git a/_og/d90ac7a001fb8da180d70a75dd55d5c9415f31b0.png b/_og/d90ac7a001fb8da180d70a75dd55d5c9415f31b0.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8138c372b76852de862f2ba80ecffa15bf5ab3 GIT binary patch literal 39080 zcmeFaXIPVI*EK9U>WnBhnjoNJp(7%_*#H$m5TrLjf^-q7p<3yPg8}0jEs=$I?LW`@4ePCOjk#9-yWVl z+qP}nckSwxTidq%QMhf}cCSBofv?=W05=E!`s@Bx6OV1%SPw)0uxv|8;oi3G*tTm| zE*kix%#d~`*xp{1-_VUOT@<;xJ3iyso~yCsDg*Tk?=uZ9<~|C&{wn(VYQdwoiznXR zGHBku{n4?);NXW`?^{lI4z8!kwFk|o;|7wi!CqE)*sG5Fk~RCTxwc_eM{dlIy}q7x z>)ItYZtGx{UH|w+Klu)~w4^Zcbak zz;k}T4_;OAR)GppJTlE5b;AEW@oyzc#KCauPdmA87+D2)uHlh^Z(s>`o(%-#W$=Mz z+lTaQ5ijd@g%5?D>0vs*d&>E-s^_Q&F4i|nFh;p(*2~NVeVf#t86!t}sP8vhG2S_q zhqUzB_&F=<9{CGOh=Pg@(R^m2oO~WQsp`N$Dw@y}xY400kYyKdA-ilk+!%u-dDSrK zd5pe^j?C#j`VnG9SCNdEBhsg+lt-t%R{`0oJJ$L8< zzy=x*Qyz9+LqF1WP9l3GeqUc`Pd}}bVqDcq*`Sx5uV>f4YdMW3Smu!=U~Wt6t8iMi z5o7hbXuiR6@z*oy%2B*>1@r}iRgg-n%JP6`St2aS;UjOYw+t_ai>CQcD0RW^?g&6j zkrSbbx+J+96mXQJZ~ieu#xA7N7AsqCNVghzCvzAYzazL<`p?x9+spc0tDeQ6x^$G5 zDmTe+ngwIEQ6MOV)65z5dEv}YSSY0VY7;oA+;i@uZ;X2OT#iv)yO-o#^wqC5x^k(< zY+C1_x!+{gwCmxWd9&g=QZtGD@Y#wS`oiP=s^xTAi&*gu(hLHT6{4@BVCT0snd4Me zG4(M|V|}5afFSYDa{*nSN7ip{8|I3tx`3;hm|P7ur61j27iiR_EoVU;SDG!irP{ky zFBy&v*QFU+P{CzJinGoHPJIvBWKb3-Zw6Ho0&Jz1XI;SaN+`Si>QujmPPJa{`zji? z%JAq~SNg{5#8+Ugiwi;@g2U7k=rx0C?Ac&~)oI0S=H{fCR%xgBb8mXJDU5epc*I+H zO)fn7qC~@Vc{GUs^Bn*PL>zo(o$OMYD|)iN2%A^M?#!mw;8QM` zs>Vzz9zR>NxnWuSQKJ0&BOD`uUYwp^Wzn;1?&rt0e%o1b^y;i`)5R3A6%Yfu!>`nU zi*wFRZW>XXJ)Rzfb*=dRnN>1nV=gABdxP2}7=y#m#**DE%M5-*$&o)Wm%-h6nVlZE zhGTf9XDyAqx@ovPBBE&Z^JjgCd=Hi=SVr+3 zPxU|stPDQS!Eh43R<;}HYu`3nnR2w+TqAf0oLT#ZS6%<{1=qE&s?jkoKh71qI;Lvx z`SW!R4!ORd@B*PTYCTuag%rK&i9VC&bHW9jxJ0eFKyaD}uFKMF{JAH`C5%K=xD-S*3&qg3MybE4Vs0^65dGem~WKSKOy@C9&5H^Q+L^VjBTT) z4%Hy&-!AXJZLe03`%uu|xNFjaIvk^>1F}@mEZRQBy1BF^c&YIk*gGBxZF6uBI?LUM&jr=&=Jz?K4Wi*LVWiYg2p<$pr!EwN zOqT^>ja>1!!^uSg55HZ+KQdr1-dITA><;AA+R1AnM@NUNAS#K;ZrH>)OTS6nXe7yv ziz*qks`bT5z_VKq-LI2y_Fd_sRNT&4R3krrySX8+TA;t@GZW_OkuzJ8C^s$RE=51OLYBKN8_ahkR4%< z^g^c`8~MD=P4C94cY?5JF82$?YM4HP} z4#TEuoprIi`k4d*Qw}SI*k2G5Rd)bB#L_wr*ibJ*Sz$@~DU+ z@)s9kZ{ya5;3#fWbmEb5H0Ua`^2FcHlP(x~QiJg#c@nZt#TlPi*nlpKQ`t1u>Nerf zClIVMXDLtuUYxC>^=!bO^Lb5pwhCQIeb6kNs~2I@vrle7H&w6a#-QWkM27>}cU*jZ z_2AFfA}bPF#xJL#Tj+Ra9B*WmKg)t|4#+HD$P{3HaNW#9Xm{*a7V%(z`0sBDev`ab zol%Y+PlIQdk^S;at(5>aVGTeedlsnIkoQprL@h)$=|Oc4Mh=SdG*#61ZWjM=LH{PC&YWCaMq6j&eTO``$OBu?AUA)R4!+NfAO?pVXQ z>T(){8a7tjgL(ovTmH-e!HI~@{DyaC5NbBw#F;<%8pq(z5!s*xZBFAG5vL-4-g@h| z8No6>f7<9T^UerOge7s8y1-?en&oZTi>w$+ znv#Jf+Qn6-*Eh_nEVoQKx?$!t{5F}(PMb`SaZ0jOC94-ZC)41wlb)oNvR-a-@ZAeG z|Lg;VT%T5WQQ|dzEN&_QL?oo>AL_~S?lx;ZWmx>8r;R{<0UcziEQg%bQa`FE!9p%I zfZjJb8V_KeavWc2XQR-Ezr$Lp|NK|HN}}5IG zZ+c0Dr#=#C7{8)^MamiEY;D_y$Xv$qN?8G&-tU$Jl4)hTQ>(&w%4Bx3>(mmwLHKEY zo8sZ0&iu9=01SLmKcJqS5Yp`-+XKPQI18^nRay{0@%UMf&wrhHh^fg*5A>tX6;w`r zRCTLq;Bk8Y*WuHPNuKByi7M{#k?TC-jT3NaJQB?+5lON%J_f=@JnC3*vl%gy@XH=2)VAT4gKA3f#Jf^&Cd; zFS9AUujDc$6oEtd*u6&oriu)Nowtq3)c*wZb6XXH9Sc1QK|FgeNAWK%*ajtxtl?;- z0#oj0C5N*_koI~|f%!$vA{8-MFJRf5&&`?kjpd_7r$NZidLFUkR|&Jm(Yn$IgCS_iM`L@;Jz6gcuicQU zXLkV0cLSt9>q?NFyR;;$Un_Rl&=AH+_X^J$|9pn)_afR(geGdH-h(jN(jQ+ktm;rE z@a2GVV&727=Zqk=pKC#b<`@d`(n5L%`COe)pm!OUeqLmvKi<}?}@Kj zABE7TqDvXcYqENooLALe&t;X8o#r=nDgN@te0%RDN6 z4+njJkwop@Lv7_ySA_)kh9h}9Gf%`HXak^s^4)X(kJDdv>{oshU{{1BHeq9pP?MckP$`lcxHdWY_A%Ra2zQ%;3a<;m;Ww(_bQ-yJRa<~BIDn#D zV#Yh-)t|_!*~&^)=5o!Z_H=%k<{;0z`$$V%LK-&1C}ALrz0?WETrGgY%}l4Dfp#)CEg z&jTdnIa5Xn)NYlXx*5@@Bb7P%Av5~AQ$E_zQ^O!9C|x)^;Y5DDR1QK68D9-*GAJ zgH4)I)(jQty|!H-eOr;b9M@Oo9ER$`#JK{%jm?ct+r z7iHT81wm%Dty`hCY~RUzfPU~PVyL=94xpQH^tDaOFYd{gQ_$no)$=$Z^hgJ);qb|< z_>WpkmcFBJo;}UDZD^8Z%UlEZe&7d+;y0cD5cED4MX>6Fj$cp3iz)vSjuN0)aPTlH zy*nmoeRvV<8G$2sV=+f93m}g?uPXWKAEH*P*Vj5?0u4wj)p_+y7`V&POKzZqy^-!e ze~mgfi)GA$KE;_VB)D)6sCrJVSK6{BOI}i65aSMEG%UlF2=l7imo$`vtj z3`jdu;i`IKiW@7#c?_LV5)D+I2-3y|gGTdFtK!P$q3X%Bp6@casXxuk4 zpY^An*xPd{5Pp9aFjGDpjo;S?mpBp`)yJr$0gz`>)gE>xt#=L!yg>)aihsoefFfcs{Qnnu%)=McCUI43SfgE1( zWBlSjTQb{ryeS%o%Gj#VN1b4ilgS_uR%W#A7Vy`#IMnO>$$>#FLz0%EB#|~yhCA0{ zfOH2v!ybB`A_${qQ~Mk3qYq^i0kZk9!u&dD{fb< za^0VQ@9^mxSD|LuV0+jvw#g1^GIATDx^HP^fxDkaK;-pCss#2lqa`XQGKkDfZu(4d zJH67C&~Ed1Wp1Q%Msm#@$La z!Q(g9$JKK5GBxmV40I%`~0DyUh*>tqO`qi7ZKyNC0uw}He z3d6q~O$MsxQD%H6AH4-+C! zm<|-=sm#?Ko&?RkJAUhPjl7(wA(Wx1Lss0v+*3*a<0_yS@+5@ovqc2{r;5l5ByjwR zR&dtRuyavv=L2dIq&&Ze?3NWfSwEA-Dp7t6iarh?ndFjb10L=9%=MRA61ftB>m*uW zJUptL30i|@4B9N*z8>}is(?YH-*^Mx1jUdf6~Ie$quc51B*%|aX=bSBMnQ2W_xya7 zPV7EVvi~CPt*K4esZNmIyBGIn3HeonAFpIEI3&$L1MCOYOu}Vqs1m7g3s$kh3tCzyY!huqLKSxWgxmHSn6`vG+2_S( zXce$DHUC+oIKPrBh12A2EN;3Ek&E$aS6O}!aK8jpi6=@|4ON16tfs2~i0Y%=M#<+L zZb9v_PSEdm`97!kGtTb*bab1nv4XLEs;6Ho=ntRd`Dt6dFV2*>-GF57E}nDf~;0tjBURc&(}-`_C*1qwarbQ%b0`;Y-pSz73#U3A5Za+#n7P=qwI>5Y)CrP%KGa}imsd%0)Bj2u4Ywx4QH>a@6-0H z4vNlJ=`TBUr50e@^Tqd4p5 zsF7BoCGhjp)Lu|$ak_VG1r#%VdF6+t6R}JAZg#HC{O-#nZ-OfvK=Bbv`25#1H^E|9 zkkB;H+#Kj{{2GF~fwET`j+ExvU<2^jjCAgEnpzCS7J`?X8_P9t3r5W*(=7><)2u=K zzv?%@xB3lHw~Z{&vX6!1X4K!=cYn~UD6;}!YHH5~(6aK?Z(&qQ3gD`kTs158uL)iQ z?u`QsYH7bKx?i0|40()0`YW5_#M?yxlDjSXchTyV*#B8|>Iw&KeU7A!3rGw2Bf0@3 zI!Flx{k)=XaXnz+j7V-Gd86VAGnSzsA>>TS-U|Y)&~wYJQ^Z$!42?N3`MCFm0!lyF zRe054?D;v+*75g@$uHn!*e(skVjt)TUs4*9bHR%AkR?qU5K@o&1i+Tqqw8PST#}>hCfB@P)+~c4e zvLu9N7%i8A8j&ka?iVGV#&u}tLt{WKm2b$s2Kv4xsj+yE$?vUl6!WslHIVro)zm-^ za8hG{_D#2Fy89vPWxMBFX>v7Ov>*X$Iul)>Rs{I0eWSxC>kBxg%apxmelB~!Em{#Y z4qP3bhRISv9IkdPUT9MykWTBc&ulD!Gh09}2Gt>gzyuY|7h-$npKtIn0_)#*d&YDG zB;GMP>hnDWo!%H(08Q@x<0Q%)G#Jns-=6$+xbuTv=2Rem%PQ2Wsyt#SC78!>u~7g$ zED%KDDjMwdm8Lj)^OUCYEU3Jk%HUu~)(N_2dfv%LUr`Na-#5m{3w*cR;W!=mItMi%)kKi#bvgyn1&ROHWTlvG{O-jFK4Pf zNEC)&HXc$As1iYQ&}?~Ot4}sHXyHw|O)|@y_*HT9_YCif1{;)QE48}>z(b!0Q{*v; z&1o{I5XqJ4R-jHsr`PZOsG$&J_o!W!;Y`Y&SBV$ z^DL=!sQpB0p9M&l*iHulT{Xm|@Y61IKZuu%YWnD*e+DK{ICB7Qkxft6PA>BoWdDWM z5&+QYVJBqWXpW!^bevT+vs!I7O4`oJa3_Ilg+F{?-*x4mPhM8S{d~} z?9%p#Fhl9VJO1Cp?6-__pTtXhGiL2Uqt}#bpAH~6D=qJ52*&+E$T~{-4_=oNJwMPO zf?A<|sh7&Z3*~^G-21~fl~F$ef3-qThx7bT7zS#De%Lz-&ed;H*Z+iy@)oh{H{_-`)2KjXpwTp+G{YX=aNxvb6Dt0l{Vk!1-OXXd#15A!N*9Wz=y3%Ly2KrglGK#7N(ArIcLEAN7Dj;NUQ3)U- z%LAm$>d31cr2nYsu}-ht6CBjcZpyq*a@-d9`=~nXGKU<3IUqA9bO)AAUlCXFcr`v zky%o<4F;_2^YZ>j^8vwb642PMx0c>iT|EiL!~ThcBtYtc$TJ<&s{2(Ib!P+q#bGGv zuRY&&L!bFM%N`EIZ+SG|1l#C;9b1ur@e41XU1HOS;<=rA>aesc5D6xjI!M;6Ki~n= zOV2P9_L}ewiz}NRg#=4@R*c$4dDi$QP(w9WlOahKyawpY03#=bQXR5zj z0srHwBzDEd4^WOeAyO--S4-gOhq(T_-@o(0SNYXRT9ONVCu8G_ku0)Z=olS>4vo762D z+Vi6iLaSr1bDOzUdoEpmkVgfq)Mkt&u5CI`#?((}#9E&Fo)Jr)9vraWAkt+zq%ry& zWF@u!;9K-|!%R-Aq)1*liGXn>$~AC&+%yB93+JR1wM&lM82WZpaQu*$XR!LJlBrm-b1Rfya6I1>*2mR$r`wS=ZmF z*J#}AUDvbC3Q;iPtF#FW!G@zL-+90Ot5IOWAXf;>dM^pJ7rzHjC2xu}2i4OZpH1*l7s< zi+su6kd#Ne{ZHLGo}`|56IkNFI5ku-n)@3X4B&gF$fs5M0V8RG{qyl30}(@ej3I6* z^)3N61k{NI{Qf_{!bn4UKJBO~_bToxm3D+T(A)&BuVl|`%zD@4twl|j43#msgn{_W z#7yUSq{*O)nX?#;{Sxxv@X3EI&)9=wdXHlt3-PNT%td-Z5(S8#t1W{!(6;c7Gl5-$ z)VE!b!ebnr4v0n&D~spovxL?BQliMhY7*d%pts3n4niJ5rbF6k=8xxU2>z6g5A`g3fcY&z!<1DAbCfbXs(peW#^vqh zL1+5N@Jf-GDqi5p*6Xg^jTRxYbcUJ!)<;l_4qzh;E7?W%P zAE}`2b>ykXzT)A3sE=QKEw`I0VZ9V7bc_n51p(NgP$u^#&+>CQ7Q9()XTR))qz3*6J<6G%Eu(C#1I|2?r(DmB!_;zi0FQ6uLfh~Bs>Qlp{y0NxD z6|!gBl^2W;2(x1UIB$w$bM;Ez@$Z;^R@cFe?PQ6*La51Yl!Ak$(pZ8mpmuNZod8Ak zfdB(Y{SrUj4ed3m71>ZY@I`L-W0TtOa=;Cg7N9|7Il$tPP!`DWSKyx6ZdeBq$OgLH zGx-4Z9Z?cwNZTJdcc&ETS-NoW%UiJ44RJvfUqpmcScfdTa8Y(SmQ0N*_TqRG3RbIOgVX>jcHmsTNiXI@SzAZ6cpx{Smf zWK&zNXuo}PN5qi>Ac$X;!7@m+Y@lb%aA~(vHoBu`SvF@35wMmh&BlxT&Z1<@MT7^kRoVcBT)~D#=q1Y()n%abm&pgp zGkjpFlR%T#75@r$hH^b67>F+l>5376osT_hv&Z-#s`a9!5-@CF4Jugkv#6tFtR(Xf z8)IZYTPE=CIrCVeuy#9sG-+sraMPZSuB*%xV5~AanZ29B`{)PBl~k|y2qjpCHrB`!{6${c~p1{d@y6)F0a8=g`*^F}_da1#HUpREaomi_M`}Et!hAPB9S{vLSlmH3C&--uK1m*N@ zp57w`A*Dw9*f?}Bhpn067O5?6T9a%9*t8FUO5i=n|B5n>5MK!r`gZ{+q%x80ruhky zeWP7;)-Z zKBuY8(KbKTAzw$$pv-UlW+z8lRcYiQ+6KTWFCo+z9e54T47kOfX9ItZsbP>d4apwu zD){`Jo6y55)XALmG)MwEHv7DHX?=t07Ni9(%+1~Y+kK^xD8#bboPXnZEQpaxW$9A% zyDAM3$11VLCw<_rf_>|#g<$w06-v2`BFXjG zP6R-rdz(f94cU_U%u9%?C|t;TG$3RS5H{IXh*Hw7K*z%L!`fgXMyDb71x*irejCnS zpt0(r1zG~)8ea0`E@C`p?(Mjf42-n~5F!KUF7G)CPh@=PD3BZ(@{Gq1`SM&9ux)T- z|6{FxNDH0d(jB(0{_cA}Wy4D!J8!uk;&3+Z`KE`7_^cgdh3v4o5#Hy*Ts1qO{tZ*( z4hc&8gD45iL?eSKT2Zgi&}cQyExX=H*>GFQ@N$b^)Y3Yfi}vP=zcjPiFVcrpru01O z1hT28P4YD0$?6L0Z>@2JI;Y9W<(N+wYDkke>z;RGI0Z5oaMH>Fb^+^tyv@RJh=i0= zb}&cr)1iJ;NXd#I-_xpC^V)E^5ciDH3&iIFfyNfuT}DBgHY}p5f7Wffm7;IehVK`< zb7r0rO@~x_we>$hoDR2p;47`bfVVceja2Z7Hy|Mg7Qtd28~-SiIO;tq-XEH3YaPKl zn5_@npX?%t3g&?18Zi2CSSts}BX+rZuU#}FE_DD-_qQI&Bk@31JcYn}l`K<&)BC=vIv7NC7DhBHrQ}*Mb69O}w5&AAPkh6YUw4UB{58XF0m!RJUIIY=^e??ruln8(zFkzn zBPL#2W3PX<65KCsLyO&LI~#gRfa-b^Sl|TH=O^=mIouFD;`<%Y=%Se3`@+`s&&dg% z_ySIWTeh^P8ce>hod`&wEk26s1J~E$kia=2=|qiQxr0%3i+Qc-ou?cRST&gzoOr?^ z%tncj>fVQATJ4F7$eIm5&9y!XldvXYUC(teza-YQwz)+=rQnFbP=t`Ry8DO3EZ6)} z<6ZdZAy2H$0MMQusNpUJgK$n^c@tx7tL8x}8yy9+Kx|yX@;|*LvXx2yHmJxVh zV$Y2^WKHoMrB&5(Jr*Z`s~szS@E?LX4%U|*}Opc=4e>E0$3ml4asA4sq%eSjiE7#<=(Qk_dM?-F@X0_FgxB;(A zo=B*OB~W4w!50(ru?DQz7YZc3N?- z(hm?>^Er8kBI;nKGq&en_}4o#bg(zWGiEQa-3zTzld|;wSf79f7gdgwp5UHRmTran z>>NMr7BFpALAz+W`bdF{e3;=w#6w;V21Ykaz-LOEm|4hlfYqS|6r1AW!rur{{n~8Y z+7KX7#-piHpgz_8mxw=nMeu0Ll_JxWa)XDPyLeFTSFGHcZE`=c>^`cSDszD1RWHyg z?|Xk^bsXvXh+lt^*F}T0)L5$4^^KRK5MtR|Zt}YY#{jc~DO~Kz0WSFMD^^_Q_diX+ z@}#;xAmx1LPG={+;;@zOoUm#Sm9saY0`+P;CSdvAn0Aombo+up#Z(?-dQ(Z!Ty%q! zm6b3CDwbQ1v{w<>C>W2{tORLOS8FyY%Y#kRtV-P%^4BA+j!(-WTfLW=dQ z>}{HpK!pz<9bF@=03?ixt{)!t_|XLkz(;DBmmn7is4SN%$Fmr%H! zR6*SW`n~Kd!AYc z?`yJ3DdE{v+c0drBOX9i;Dn#1+bi6$WDz9?*`Ze~hQ2?BG$)E=NZt&|f^+F=X|FJi zVKqm5X`}sUZxjE-RDz9KlUD_BEWD8Ayro(ZvC*H#xSb?=HtXmeoc_ie06!A+2LYI% zWEXI_^<*@0oS}}QeI661&TnA08?FOMVu!zfQ?%#W+#Mv+sbMz)@#xYr9SEa<=}T0i z^bYZ7=fg2QQ=T?3?aU!N%%BUMmmtIm(^iX#N?u5-*}BC{(lR`B|0SR~fO$Gk)_wKq zfXtUjW~a#3%bux1$Le?oHFnF@rHMRt|47gk2g&n56)3xtup0ixIL4TQ>C7-;1{ZJa z%C4Cqm*m3!v}0qvV2&lPEC_Rw|qBpW=1&Eqnbmf(}HP zdskK+7t79*gZ7SSaY1ONISs035GULg$O)66mfXb?6-QAI$w@T1sv=02ZGvCsh1_tQ zv_MyccOWay^kdd^gFv$euV=&al8v-F!)M?n*M`i#VZ1=gXwm6rw9i6ZnLs@VbxYCMb*=Lc=WzIqJ#8G zoJ!7%!=z>5`9kyd=#}lTw}F`}spDmR%Wl5K36XPJEtAQCbZ~KlrLFWf9_qTnwDqPiSWa|E#X7S>oC~EeP!DX#aNmdagZ3v zb&5ytYO~o(E`bZX=RXOm8jQ5chaI_^Z!QW`AK}p0O>9qSO*R^c&hn>eiaty}5mkaj;k^DIkA;Niavut7Rg0)A2*TLBpUy^Qkm)61DDmjP`0CR--;0_~&)2 z=UOAxmbOP}H&GR$86S>nk$0IMZHKF|TW#N8^8MwqcVQnvueZgF&ealayUQVn!6}Vc zu;i7B$bTbw6}&x~(URp8br+qWt@L7A)=y2~X|dM^+ZL7)-_mZYlfT}vI1}+k#wPs@ zMvjB2!uJtg2f{%9n|;dQ`=Ku35nVOgBwx#EnmhI~=)BbDVovRzqoD-qE-<(SQh3p^ z#sHfgrA|1_^mRouuki%HQ@m5WQUZwuDe+mso}lk*r)tTLPD)jHz3dmN0=HRR0^g}+ zUSv8G(baq-VMUkxHIN_p9wicD0zM@%3rV1Txwo-!{~OS)G?z7d%YBb!8bt5)VEYg| zb#_gD&<~wL+ept@tq*bGM}1p4Pi548^W01mFOYjNq;ZA4W*(qOFG&O@(Fx_|L^v+8 zBh1Hjp57DA980Run7J8O)~x_*-Zv7_8R9C>FS>mmi#XE6b+Hxq+I95)YmJ=$m+_Lqna2R-SLdIW;_>!Da=9 zuaM8xcwzUe0&7BPfniXQx~}o~B2hju`1Dg50qX3ud00zB2n(|U#*Uq*8%FMsAu^SK zv+&znrI2Fj4hPg!lioc5`WYoZuuF0h6(cVPx_0%i%A+K2lgncqN%5<$+8I$_T) zSWE=%b$Ky>92;`^x`>SM-ZO$ofJzKgntP%H8-%?~kh#D@EF+)yZ38X?k)b6fK2^s% z_70rGQ^%s{QVw1k7GzcNxzVdijATy{CxS!Bjy{YW>@8R@_woyd5jzBSnbwA@tb~`C zlx{b?LUwL}#ou8A*RlRBf|D`Fv3k^w@A@He?1g&-+d3{^6u8sLOOaUEw)$Le6Y;n@ z^n%+(-1!#9xsQE2xQ7eXFEbq;TLA`&Lw;BCgN^y=sD zCm5AD&|AuMG|3yOVA^rNUqF=p0r*vt{hYd1aZ005iR>Q2^mi56~$3eogSQ0Xto;seHt(s;0v%48v*^HKF9?6*==)R0+vOx7Zjbx z?hNbW1Z_nA673(!Bua)JOWvE-?~LNznm8=C>rMnlE^toVSc$GWeZ&{;ANd{}8hUR* zAdKpJs6N<`uHY!kCjUK{g?7g%8zfb4Tm2E^`GeA}^QL0`VeTb~P7PQc6RiW8!BPol zTIilrx7h;~Rr=qy*&GHj_`S z8aUM!NB1FnCHf=YdspsAx~*CtRg^MLW;XWr%rF`-Cya~X4l>dVF+;BN@F>Knv);A{ zyEbYY1=O@>-)5zOOO-&v3){v%$DD8#W4Mf(>iuXIwQfjDOI_pJDklD}+QV5TG55b= zM|mPcvtoQ3FM1En*&NZabb`IY0fgsoMk!Ej;Kd^7;Ht7!foDZcx)14`N!v^qQtbry zit41a#w{IKq>~(x#h&UjJ0C|k4_LzU`C_1$F+Ai$mEqMhk72&Eu?2pL_B2Y9lYD%4t)&S3^ibwgmuAAXv^U+FZ7kuuC?PZA$9VzmsH|S5z+a$p}N0Rxy7vW+sg@J@tK_&8Pn$j;}VL;wh` zrK)y~gCV) zlML3K>L7_+4iwwr;HjWb7A~Dz&OF?1LY`)Tx_gokhKikr_Paq_I_IUZHQHO))Y6GQ z^3^M#ysh6u(h2s^{|5;Sj1}oDs=D50@^^yXkpUn*2DbP<}AzGb}03i7R| z$v?4q3%>?gwD29F&FegHrnkJ!*ke4mEJ0(PfJH>3^q7#(#9NhG==A^XGW$hjUgyTt z^o~!uQ5ak2WDALJ=}k%`k?4!F)7U-6)gCViNxl;Es`9c`lxumhWfzg#4W}yxz$~Xz z_a17*_9RDP8rZpPxf0h>AGO|m6!}O|6&+oEExJjmn^#>=B{bYAIM6 z75ezNU#W2e4`XMFjSu|aTmZV~W#Eu%0a+og#TMM7IN_A*+T_mZO7hr(6p1^_tXp62rMS*??lk6 z<4P%k4BYsg&rkl+w#rNuD9EghEyEP`aSBA*mX6q~E+htypK@zxij;0Mp6DfTpp3e# z+Yhw#H%>P2x;alO`dVdx)X22xqyzV$lJ4id@_|AnE4CU3a>s9;{b`>2#m>BI(_$K;HS=UQ_8%7I==?)ZQ0CYWxd;TRG%>+^iR zv$n4~5ZS?aKZ)Ue6kUfepid~>ViV@+T*#l}x-|abN18jp=h^SRtr4F?O=+FW?_`Q` zrYv~@$Sfd_m0IvE2k8eCqE%|GHMKSycCAQ?gXw z*Hb2t7j;eeu!>+@Al+N-14hNc*2`Elpvmli`ZcG%*w63Fh?6@XO4NKzKZ! zz0kDX&iTHI0Z~`Xx*ic`e5uRX8Pr91DSzM&papDeZfdS68pMq)f$5#y%ggVCt@q8I zp7pi52Nc-~VDIz=3WjBlAeR#M$-dweh_iJ=8_K4(!PCzh=-g-#6@t*Ev}v)ky>jk6Sy?!vFk|s1}P8=)bo4ulJS}sMR+oB$_WeU4;s; zcX3cbJ2M12qpe4u!~mz+&x{^N3@D%yYa&iPVFr2VWor*?g2C-wvNv#6oeeF6hVqFq zInb_wcJ1asSA50=sRSu@R%3NH2}<)<3&6Wrd8=v_Koy53(zw8e&d;A_?4@(wC57Pm zlOc1ovA`=GP#-KC*)_SJAa(cwa2_s5dwpbQ83v5JY-C43FIVyHsVA|;8I7+swEi3} zsd|Tfa&`#lzFRSdGYh>_A!h?P^omaCIN=;o%YD|--hhoF@Vw3mfea;Rvvb2s_p7ZJ zR(e~InFV0#iVJ+6m0@)mx`}(yTQHUjbf{y9MYDlISIBbI)D&&m7lK{l$7fPsVR~>L z2YKCK=!8>*uyIwl9XEF(dORw?RM~E99{9Y8`kNoY3F)(lx)qOZc_?9Jqz~KYX2pqM z+*B^Jo>&6SK_ja#>f;9g*M^=5SMr7IT)7uF>I9yxjDdT3O*v{-$#tL{#{iyo zI(*Y^GcGUikmJsxuhmWjS>dZwt1{P|IQ>G*XV+7Z8TRXp;5XjJmqm-mWPxJ<&Z)$y z;TG;?izDiqV~%CjWvOO^+UEY^EM)cNXV>4kfGOpFtpKh+oeE6iMDWk2W4FYicY|+gCjzoqU06faRp=v0@3`$mtRd6S#DJ*GuMx9m%c1)H zpaKrK^^oHCYp|84+RR~X$H#^nK5Gtk|!a9nS%S{@a|MP{X?ypxygiV=4H4GRt5gA26OYm!{6;QNR~VcIXE8VA6u_D|Cx z*FISK@RG?xRcQWmBz&uPcy8$KM^JD`)m?k~xG%o9{bZi{J0WbJ<3q{{T`I30htOH{ zeD`$23ck#8@|ub4HlNT#Y*%7;91MK$>G)BF$1e|xv4mYep!@Rfm6LykpST!)^5V;5 ziAo1|Udgz6>!hD%v^x8Nkw5-=^n`}={^;do@9pPxshv)rUASFsSKdc;nUxe0U_}pIU~6iN8=y z*<&2r-pec@d-Z&=b02&cdXA&8sK+HN_on)CzS|5qv7QWHV2Q;+F53WYA73`x?khb@ zH>#661_M1vYA}d46P;n=0%{bul?ADnxt3L+|IfNCfC6KFJe2~C^Uy=;)ua){zHKnz zJcqE{E$bnkv~*0&E5c>myD7e65 zIyKJm_fouSFZT&mubD>sAm{yQ1QYvI9Jch9a{^#=NXNV)nC>yDIj(7AHw<~^x5 z*pBuB%zU$F&@6CK{WzOpv}kXQOOQ$=gphh)oXI|9uX1H-Wbj(GMQr8=4w?m}My4&E z*$?bf@$?GeKnW-BmcgR7zWeKu`GueNXh&^tC!)_{t0LO6AW-^c3&+%HWafMGQqx}A z*ZIkrh-1wag{|+3H}ppF9ZgOx`VcI0_KXS0rzf5K>Oj}sETA)q01pEF&bxFpnA9TN zU!oTb#K!s^)H45!TYBhQ&QZt)oS4mXZoP(Liet%WfE-Qv28*(ZExVFH%VJ^1FU;h!qxzCLq%BG&@Z*6iT&Ke+By4u*k!A@YUDpAD` zdKyj!uhQ=A&gcWRT^b!^G>a}m>C>7TA%<73X<<+2;JPn<^dMm)CPq~X$mOUj8p+;ZY zFf(6HA*13tubw14~>a3aMC7G%ik6c_7^ z()G>}G?->G18Ss)mCA!6oFar8yymNlu}CXm!8M@Ss4;k2<7E^;qCJ;O(jM8c-?g4kExJ)wI>V%fn`b$xe51zWutYAiT3|dI7^wuXXtF;Kl0H1DSlFh^!cu)aa}yn$CGY znFACmdGV^5B5@TAx6V!kNK0j|As@#pRr3mYGO5ohAq&e7uZ6cfBQ=$!A|x{roKDZ` z;`P&NJRpPn0+|scqU(6$9Oca7{&e+;= zCfCZ5eKLn*|4?xUgHSw^4X8VY_7C>10Yf$(T4(-L3hWHi55l4VF_%BXkJ+HQwBsuSOLyb z2Ec2t!L{1%a>iLcUQzarzfUJbS_Vd25_^lX4{1c?Q1#wVKJ>fFz9SmAuj1;5;S%pn zNisqw!kw4WGOj>>ZOX@+&iz#HnIEs-r270P~~pz`!YW6$??e`1sT`?llOdA#!HbX+Fjc z+YOz!zmzdOvFAqW>^7dv{36rH`}aoulb5RRgCfW4JW=WdmP;x1GpL8m3v3rHBF{UX zf1?y56Qo#C(MD807PI{;us%=podE=Z>Rel>mPl+2ZFi~SrPQJC7=EhAIq(hVzSZwr zxQ_57eoeaUF445c?*mezN3tbuo0yJVZj_Pal%p6hh3-?^^e_50(wo~!=o@<)^J z_cNd6{@nNde!rkwG^+9<*xI#5bMq?;+UP|DVnlt-6k``h)bq-3l}2USQrbq&fSTYU zV`$!G(0{D>=75y68^Wy|58`sYyLpE|4%8W4UUnT46w}^W;rW8p3X2;by#jBb@k`pv z^>L+<(e*Esq-dU|&B>SSk(J!AZhthYm}tGFjXkV zog;d+)IqbwZEv9s2@lN*b`Zz!hy|_heiBSfIX${;BZZ>+L=ZK=G54K0XW&2#6|>H%1p2aaJ=*ex19);xrP4>Q_REHQ z(S0m}ZT-hjLq<|#>nw_A?_*JTm#|}t`Mz;y*MoeIhAWQrQT-LI?^cTs(_fCV>YWlR zKD^gwix|-QRp0hc-y2x1&eE8O&yNyIaXncFCH#aYHHi~k)w+0M<$g-DgIsjx$Tc>Y zUgZ_q>hY>|_qlS4o<1d?c)#bxUC?TsE&da;VBZIONM*aqs~t3zTEh))LuqGb{&CHQmiX}eZsovDAzBUct7Xk zRE7OG^>$1`#lMpCF;2FchR0W`fhRFnsa@;N01!8rM^#crrda8GPB>OjBS&uJclv7rku}O!giYxkZE$mx)oh!qQWcW_OO6m@}SS5-TT6mLY~d$XK@Wv z>g6YgunXCb1*^s6AZ_BhDwi6#QsTfNNY6+H}6#?uAbN6U0W|rJ# z%)7qJ!5Dj&!lB>&%%lzbMCm}V^tt#7qh?P}Ph8oS$m`VRbiZ>30?zAS>XQXhi#kj5 z-;i;^HM!zX=yp=Xh@{wf4Z;fvHLmw7@W**OU>#m&Zhawx+~ZpyIhH!`mYQ9E$N@qw zYWn?60~GrEyp96}v*gz@_36E1&QZ`!LF+J~Ul8E6wOotW$6BF^b%8EU2Y3A3 zlgmr&G+mVsE7L!@WsW>$O@Zzu-s}ivq>&HDPa@-<;v}8MGc%KN&YN!@aFuVN+)MJM z%^j!wP8mrRzobLI+(01Atn+1+-&vQ{HP-gvwnMkixlBxRA&xU}wQSAIT;$#@BR1H( ziIL>zx%FbT9yDr7`x_%ZOw$0wZIDb&Ymp`L=?c z-)(VrHR37n9vk#MzTPuyUZ(#}J6V{6>Zkb3@wUD$`GAhFlyn!edrdF$#hr1s>1Cfl z8je)qJPHRj*5l(U0sjUEGEQhTZ)g!D z%c1%)i}A0+>##U0YCNb9CRyE~NiMm3pBjgwO?YsT&Njavd$f+!5)2mkMQQJEid%U2 z=sWPrxcOvGLPfQRSgO7^CBVu@;TX1xGBC7F&DvXscY}bG!pnxoHaOD1?IU}-98Rc^ z`fSNVgRQ0!sZjx9y55_1vvbc$Y%wxy8H!lkqV>7xdYV{8N83Xui!lbm)@z&$MpKWC zSn?Wu%nu6)6D5V3!ilCyv2e(C!HG%5Vk*UdbD8wbh7F=iMa`l9UV4!oZLM(<`SDcy zU_#y5$NFYiS0T8gSCI_M9E&S@<6ad!5J))sv9KT{nERpUY*o3LSVdZiD6J5;JqUNx z8(T&0Bgz~SAHgtk+oi+l1t&6zq2hC1S?gRMD7~^T(-)SYugu@34(~}-R(j=y3!4Qd z#?ofFw`;}rL_;}Q=lGkL%2wA(A$Lo!JHB*|j?)*%Vve%~56)SiJ)A_sFD$ljJDEwi zU<#b|n<|mI(pl+q_~67`MRuue?3~T(!BXx+uwYbqL}ib8*RCSc&bej{2y)p_ATX|t zCeS909&vQfNhSI{kqgIrdOPp1;-W(W&+cW4OigZNh!0q9=a^%0Wsd3oX^{V>73$-Y zl((&Gs`0>j7lW7Z>UKri&00;#v6s(%4qn!x9`%7`+f!c}sV~T&cpF?L*B$r1U{QXA zcPCrzM!&7xb0Q^VOOP5}p6K-3M}Pn*zpLva1&rB=DT{G4AjaqgdBsCftx1E0{t8sz zrmzEknU37pSsl$8Y=-3uis^E(xX?`I>k=dmWV`e5H$1Z9d0A9KSiGjb8~RC_T{?dM z7Zb+jKpr*R%K+RZ+KEBL-7%L`Xr8toH>SmmSYi(cPi)#U6y7**yQA5S{Gf7Lgt(nI z(hB^BTuihB(+W^wZ~MmF6@0owtU26q+vCc{b%!G zqVc|vkt_OSs1>~KES52!ha5**`fZG;j!@1uB;_kgvk%>DG{?Wv#nd4Ig;p@jql9tCD3I(oeP0gl_t8Kt?nA? z@gUZB?oxB0IE$;^De7g_6Q?)s8# zE$Z8nywzycV_x(vq7xwzjA6xz5FuQ4MEsg-sF!|$K7qR1+WBRgl>*-)$c%l?8;n7M zHQgkEoC5eScC3w%HEcuzAB%MA&IijkCrj@WP%e}Ai55Kepwdo78!HVSq5d%rPmJ?w zf7H^vrED#yJs7Y_bW7G6t(vRw=Djo%h3s&0lfn<#21Hzp>8P~gH1!l=%4@Ymy-(cJU zZ*rZS$PJz32{RQcWukXmtxQw)v9&o0vJ&!D7le)Wx00@HW-P~D2)*iMN<4F=<`sux z(9FrbwOxh^>elToPbEC5(uJqL1fu)pyt6h~KJ_-3>b0eF{n~b~G9V_uF8J=a>z}x@ zrSuOq8iQ_ts{y%}|CDpKR@)7_ecUTqD;RynHo>EIc5^8vw7pF2%pdW-I zk9J;lTw{^Nhz-k%oZG|`BhGpCz^|s;s1-Tqd4sL*olwc7;O>|AsR}>Ohni-;MR&!) ziuh>&arqsJLI({L!pinHl|jsIG1avrHoPjV_QxgB{Smd5qi^Cn{?*18xX)~@4|?U|oIvRX7!)&GI>Y{ULM%*tT% z%>Eog=~ahB{?CYJKR5n>ltG${Suw_F7kL;7O(krQDLiUN)a9h_9zn&~CXR@)4sYpZ z|EFdFN}j(+vQPgTgsvw`g$_4a@dz~o&fV8qo-W^qB!`y;0xH6h#dpWrP=v)QOeR_s zkcEODnn`XSR{f}GvxIDVKJmu=W6v{>j3KBuWIUb*mZIMw{?D-J-PK%RZ7%JRcljc) z|56``dHBpg(}`TxIe9o;9?xHd(CahKc|UQLzEa=4LWZYNB32jhNnr+YJHe^Sxo4Rm z(xy1Aq}fbD|9`CM2_Gb-L~tGCRU1CG56qnJLuyb~-Vtsc52h;ZZY)Wp#RL67m-n+d zG#y7VJP~>3?cym)McV{?9em7H2#1A0WqT#%5W2+yu6>6flQwauavFp=*DkWkMG^tm zne$c#<*0MlSi{GbMt^uq0I}rNPBs`J|B5aKIlDbT#)Q`)*yI2bh{j&laK3x&8ITbs z-F|Xi99C8fqa?iGsZZx5(*K!5BDD_;n+LBSMnv zb+z)b;w>yvP>Wj{t+EfYnIM(Bhi^f0F(mJKJPkTcn3A7I{>X-v5YjjpX;JlCp+PbN zQCV1>yT0P%l25;Zl(tJBdl;$`VTa?yV626h%eJAhW^z%%&$(%ZQC8P{U+<_f}RZix=~hUMV1QRfsMR|>eu5S_nfq7tw>ZyAQqTe z*Xw}~#r(5p_qmMU1&y`wAh$qha_vigpvqMr$}H#Z`+cMSuN%emu^?`CpGawiIb{?~ zD4K<-mh6%ysJtG^wS`U2;pE{w_~7SBa7T6}E$a>VWcSqB1ukD@7~#Gw>Kh^;k^>rF zasT`)m!{9sEd5MF-}q${SX2+97yBnx`y0)#|MtsI|3s4C$Mb(csKX}o&8Pm+B=kT2 zl{7uM|FvuxpMwSNvOB{ax@ssfTxAgs6LT3T^Fmf&b4NlxWdbjq`Qucw^ zwH}hV;fNt92e@PQHTJb{yzRjvUo^8YsU^l{-x-{0fb%K zYV$3n?hirn6CNHv;APciZL1^UPOf|(f|Q3$J8+_y$Odlufqu1R^i_%GZ$Fh+!8%Z?L*51Xd}y^H6uH57QBjLU?%KLIDjj3AI?i z9ThW(y#h>*r{4V9ESQ<)VM z(>T+m*k@^gB@!0Y3v^8j$c{nmoMYQ)oM815kd?Tx^N1eOFIUv=*(!yQDh@EHx?;D^ z9PojDp;eUdXsDd89;!k(x-oa0I61xrKz+0Qyrq0w5qSI_K=K|jJ&?+rDT6dr3vpe^ z-ZiEWV7nqC92C~!h4e5D8!Tb$qpi(0QqR5r8l!(62Z@7mD|JOeIH-`tE@Bc8(y5)H zb@x5oD27Sxi1&r=0fiaCIrpsEQ%evD#^qHgg10ayki-%B8uXWVLZ#y{y5x@#6D$F? zI(UguA)bmlPNqDN{|u9DicrZ5;OagD>OlZ zdc9I0OTEx{c5OIzK^PKp} zO9hs0vAQn|O5;qcwt%y-`%I)^WZunvOuyB_1oPfv9GT<2wL1nX@O7*y*X}1xGwH}?<6S3`@7t!|&4D(uMnPZXIb_yhC5Oj`sX#AC z1DrbHrcZs~$Vmm5Pp942T*1bnPys)ESv~AR!DfQBfPYGd&1eG?PTKs&W6$RLVIpFq`b!8*TW)AZ%hq0i|Eb6Ngd!?I{-(P}{5 zLDORhg1Ml2vn&PQB*sjMcE*r;Y9A<%dS?q@2g(^9K<8Ws;{tLfG7zQo`PQn8VdaH^ zs3r$Jhuo1R`A|^CPnSYsXRk-~tFX)@)!Fd|{SE)i9;d&C0F|Q2OB1o|U#K1GYSXW4 z@r>X59j4mc4LtfgPm~UbsejU~843K&sF<+;#)X7b^3JnbqiJNY2j4C( zFZCHvFR0u5f(=^#IACF?=CBl%UF_l|pRBJV3@wE2%Z}qXs06BNkPazn#iZ2CxJZHA zE8{YIqBuDQrZXQwkk#i^vrYWwzZH(B^fb1%sQ2ygi)L}j!>3lnU{z@uM%Iz3_e-iH?G zl9WzM~m*WfeZlcNTT*40*!?Z9C=VnloD9V8_-zQ?D z{hyh^9dTc8G(O0Lq0D}i}_ zbgcAEi5~7R8I40A~8Tql5*ZpeB)3D0=l<}@1HExoU)ug)i&X#I}mL9 z@}xqDH<;HoweQ6J-3E&2)o=nN)(-&%>+%y+`Cl;UgL=);wFcgkTQQ!UpzE#&)0kB9 z{Yv8sSh*_DB&*j{(Ha5WVj&^w5P>H`2_d7fxe1=dP<0M|Z3JpY?w=P~Tbk!qMDX2} zxb}(CQJIQSm^oBo*=A;tgTGAh8R(Fgo+;k+?XGzLso*m4FIms8(-o403uo3(-yAq- zK_iRy@422uaKZQV)$&!yv+}<)Blp)s5=_(_zUNK9r-Hx4PT#ZJi+6>8LNa~d9xnOa i`+rR=?qR-}U+xxaRh(QH6}Jrj=xXU}rXM)*+y4O0{OKqF literal 0 HcmV?d00001 diff --git a/_og/db097732f0d7330cb6a420564a73a93cb79ece81.png b/_og/db097732f0d7330cb6a420564a73a93cb79ece81.png new file mode 100644 index 0000000000000000000000000000000000000000..be49ebd3c941871b14cba4eeb937c3814df46b83 GIT binary patch literal 37446 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 U{;mAvD)^_Vrl*>I-1gf40M`V~l>h($ literal 0 HcmV?d00001 diff --git a/_og/e009fcad097b49d4dc509ab820f760b4c84ae4b7.png b/_og/e009fcad097b49d4dc509ab820f760b4c84ae4b7.png new file mode 100644 index 0000000000000000000000000000000000000000..0d545c202caa224340258b6394a02596d8ea957a GIT binary patch literal 35605 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 literal 0 HcmV?d00001 diff --git a/_og/e1b3bc6e0399a055bebbcb6e11b24cbc7d4ddfb6.png b/_og/e1b3bc6e0399a055bebbcb6e11b24cbc7d4ddfb6.png new file mode 100644 index 0000000000000000000000000000000000000000..e755c23cef6435dcee6dd5edc132af03f593fc61 GIT binary patch literal 47658 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 F{s-j1(~1B9 literal 0 HcmV?d00001 diff --git a/assets/js/e168415d.0794cb7f.js b/assets/js/e168415d.ea42405c.js similarity index 99% rename from assets/js/e168415d.0794cb7f.js rename to assets/js/e168415d.ea42405c.js index 6e355ad..133f709 100644 --- a/assets/js/e168415d.0794cb7f.js +++ b/assets/js/e168415d.ea42405c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5306],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>d});var r=a(67294);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}var p=r.createContext({}),l=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,s=e.mdxType,n=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=l(a),h=s,d=u["".concat(p,".").concat(h)]||u[h]||c[h]||n;return a?r.createElement(d,i(i({ref:t},m),{},{components:a})):r.createElement(d,i({ref:t},m))}));function d(e,t){var a=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=a.length,i=new Array(n);i[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:s,i[1]=o;for(var l=2;l{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>l});var r=a(87462),s=(a(67294),a(3905));const n={title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},i=void 0,o={unversionedId:"research/benchmarks/postgres-adoption",id:"research/benchmarks/postgres-adoption",title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results.",source:"@site/docs/research/benchmarks/postgres-adoption.md",sourceDirName:"research/benchmarks",slug:"/research/benchmarks/postgres-adoption",permalink:"/research/benchmarks/postgres-adoption",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/benchmarks/postgres-adoption.md",tags:[],version:"current",lastUpdatedAt:1747719072,formattedLastUpdatedAt:"20 May 2025",frontMatter:{title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},sidebar:"research",previous:{title:"Research",permalink:"/research/"},next:{title:"Performance Benchmarks and Test Reports",permalink:"/research/benchmarks/test-results-summary"}},p={},l=[{value:"Introduction",id:"introduction",level:2},{value:"How to connect the nwaku to Postgres",id:"how-to-connect-the-nwaku-to-postgres",level:2},{value:"Examples of nwaku using Postgres",id:"examples-of-nwaku-using-postgres",level:2},{value:"Stress tests",id:"stress-tests",level:2},{value:"Insert test results",id:"insert-test-results",level:3},{value:"Maximum insert throughput",id:"maximum-insert-throughput",level:4},{value:"Query test results (jmeter)",id:"query-test-results-jmeter",level:3},{value:"Query test results (only Store protocol)",id:"query-test-results-only-store-protocol",level:3},{value:"Comparing archive SQLite & Postgres performance in nwaku-b6dd6899",id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b6dd6899",level:4},{value:"Comparing archive SQLite & Postgres performance in nwaku-b452ed8",id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b452ed8",level:4},{value:"Conclusions",id:"conclusions",level:4},{value:"Multiple nodes & one single database",id:"multiple-nodes--one-single-database",level:3},{value:"Results",id:"results",level:4}],m={toc:l},u="wrapper";function c(e){let{components:t,...n}=e;return(0,s.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"introduction"},"Introduction"),(0,s.kt)("p",null,"The ",(0,s.kt)("em",{parentName:"p"},"Nim Waku Node"),", ",(0,s.kt)("em",{parentName:"p"},"nwaku"),", has the capability of archiving messages until a certain limit (e.g. 30 days) so that other nodes can synchronize their message history throughout the ",(0,s.kt)("em",{parentName:"p"},"Store")," protocol."),(0,s.kt)("p",null,"The ",(0,s.kt)("em",{parentName:"p"},"nwaku")," originally used ",(0,s.kt)("em",{parentName:"p"},"SQLite")," to archive messages but this has an impact on the node. ",(0,s.kt)("em",{parentName:"p"},"Nwaku")," is single-threaded and therefore, any ",(0,s.kt)("em",{parentName:"p"},"SQLite")," operation impacts the performance of other protocols, like ",(0,s.kt)("em",{parentName:"p"},"Relay.")),(0,s.kt)("p",null,"Therefore, the ",(0,s.kt)("em",{parentName:"p"},"Postgres")," adoption is needed to enhance that."),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/issues/1888"},"https://github.com/waku-org/nwaku/issues/1888")),(0,s.kt)("h2",{id:"how-to-connect-the-nwaku-to-postgres"},"How to connect the ",(0,s.kt)("em",{parentName:"h2"},"nwaku")," to ",(0,s.kt)("em",{parentName:"h2"},"Postgres")),(0,s.kt)("p",null,"Simply pass the next parameter to ",(0,s.kt)("em",{parentName:"p"},"nwaku")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'--store-message-db-url="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/postgres\n')),(0,s.kt)("p",null,"Notice that this only makes sense if the ",(0,s.kt)("em",{parentName:"p"},"nwaku")," has the ",(0,s.kt)("em",{parentName:"p"},"Store")," protocol mounted"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"--store=true\n")),(0,s.kt)("p",null,"(start the ",(0,s.kt)("em",{parentName:"p"},"nwaku")," node with ",(0,s.kt)("inlineCode",{parentName:"p"},"--help")," parameter for more ",(0,s.kt)("em",{parentName:"p"},"Store")," options)"),(0,s.kt)("h2",{id:"examples-of-nwaku-using-postgres"},"Examples of ",(0,s.kt)("em",{parentName:"h2"},"nwaku")," using ",(0,s.kt)("em",{parentName:"h2"},"Postgres")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku-compose"},"https://github.com/waku-org/nwaku-compose")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query"},"https://github.com/waku-org/test-waku-query")),(0,s.kt)("h2",{id:"stress-tests"},"Stress tests"),(0,s.kt)("p",null,"The following repository was created as a tool to stress and compare performance between ",(0,s.kt)("em",{parentName:"p"},"nwaku"),"+",(0,s.kt)("em",{parentName:"p"},"Postgres")," and ",(0,s.kt)("em",{parentName:"p"},"nwaku"),"+",(0,s.kt)("em",{parentName:"p"},"SQLite"),":"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query"},"https://github.com/waku-org/test-waku-query")),(0,s.kt)("h3",{id:"insert-test-results"},"Insert test results"),(0,s.kt)("h4",{id:"maximum-insert-throughput"},"Maximum insert throughput"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"1 node subscribed to pubsubtopic \u2018x\u2019 and the ",(0,s.kt)("em",{parentName:"li"},"Store")," protocol mounted."),(0,s.kt)("li",{parentName:"ul"},"\u2018n\u2019 nodes connected to the \u201cstore\u201d node, and publishing messages simultaneously to pubsubtopic \u2018x\u2019."),(0,s.kt)("li",{parentName:"ul"},"All nodes running locally in a ",(0,s.kt)("em",{parentName:"li"},"Dell Latitude 7640"),"."),(0,s.kt)("li",{parentName:"ul"},"Each published message is fixed, 1.4 KB: ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/waku-org/test-waku-query/blob/master/sh/publish_one_client.sh"},"publish_one_client.sh")),(0,s.kt)("li",{parentName:"ul"},"The next script is used to simulate multiple nodes publishing messages: ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/waku-org/test-waku-query/blob/fe7061a21eb14395e723402face755c826077aec/sh/publish_multiple_clients.sh"},"publish_multiple_clients.sh"))),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Sought goal")),(0,s.kt)("p",null,"Find out the maximum number of concurrent inserts that both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," could support, and check whether ",(0,s.kt)("em",{parentName:"p"},"Postgres")," behaves better than ",(0,s.kt)("em",{parentName:"p"},"SQLite")," or not."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Conclusion")),(0,s.kt)("p",null,"Messages are lost after a certain threshold, and this message loss is due to limitations in the ",(0,s.kt)("em",{parentName:"p"},"Relay")," protocol (GossipSub - libp2p.)"),(0,s.kt)("p",null,"For example, if we set 30 nodes publishing 300 messages simultaneously, then 8997 rows were stored and not the expected 9000, in both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," databases."),(0,s.kt)("p",null,"The reason why few messages were lost is because the message rate was higher than the ",(0,s.kt)("em",{parentName:"p"},"relay")," protocol can support, and therefore a few messages were not stored. In this example, the test took 38.8\u2019\u2019, and therefore, the node was receiving 232 msgs/sec, which is much more than the normal rate a node will work with, which is ~10 msgs/sec (rate extracted from Grafana\u2019s stats for the ",(0,s.kt)("em",{parentName:"p"},"status.prod")," fleet.)"),(0,s.kt)("p",null,"As a conclusion, the bottleneck is within the ",(0,s.kt)("em",{parentName:"p"},"Relay")," protocol itself and not the underlying databases. Or, in other words, both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," can support the maximum insert rate a Waku node will operate within normal conditions."),(0,s.kt)("h3",{id:"query-test-results-jmeter"},"Query test results (jmeter)"),(0,s.kt)("p",null,"In this case, we are comparing ",(0,s.kt)("em",{parentName:"p"},"Store")," performance by means of Rest service."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"a: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"Store")," and connected to ",(0,s.kt)("em",{parentName:"li"},"Postgres.")),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"b: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"Store")," and using ",(0,s.kt)("em",{parentName:"li"},"SQLite"),"."),(0,s.kt)("li",{parentName:"ul"},"Both ",(0,s.kt)("em",{parentName:"li"},"Postgres")," and ",(0,s.kt)("em",{parentName:"li"},"SQLite")," contain +1 million rows."),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"c: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"REST")," enabled and acting as a ",(0,s.kt)("em",{parentName:"li"},"Store client")," for node_a."),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"d: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"REST")," enabled and acting as a ",(0,s.kt)("em",{parentName:"li"},"Store client")," for node_b."),(0,s.kt)("li",{parentName:"ul"},"With ",(0,s.kt)("em",{parentName:"li"},"jmeter"),", 10 users make ",(0,s.kt)("em",{parentName:"li"},"REST")," ",(0,s.kt)("em",{parentName:"li"},"Store")," requests concurrently to each of the \u201crest\u201d nodes (node_c and node_d.)"),(0,s.kt)("li",{parentName:"ul"},"All ",(0,s.kt)("em",{parentName:"li"},"nwaku")," nodes running statusteam/nim-waku:v0.19.0")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/blob/master/docker/jmeter/http_store_requests.jmx"},"This")," is the ",(0,s.kt)("em",{parentName:"p"},"jmeter")," project used."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Using jmeter",src:a(45390).Z,width:"1178",height:"458"})),(0,s.kt)("p",null,(0,s.kt)("em",{parentName:"p"},"Results")),(0,s.kt)("p",null,"With this, the ",(0,s.kt)("em",{parentName:"p"},"node_b")," brings a higher throughput than the ",(0,s.kt)("em",{parentName:"p"},"node_a")," and that indicates that the node that uses SQLite performs better. The following shows the measures taken by ",(0,s.kt)("em",{parentName:"p"},"jmeter")," with regard to the REST requests."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"jmeter results",src:a(71101).Z,width:"1475",height:"73"})),(0,s.kt)("h3",{id:"query-test-results-only-store-protocol"},"Query test results (only Store protocol)"),(0,s.kt)("p",null,"In this test suite, only the Store protocol is being analyzed, i.e. without REST. For that, a go-waku node is used, which acts as ",(0,s.kt)("em",{parentName:"p"},"Store")," client. On the other hand, we have another go-waku app that publishes random ",(0,s.kt)("em",{parentName:"p"},"Relay")," messages periodically. Therefore, this can be considered a more realistic approach."),(0,s.kt)("p",null,"The following diagram shows the topology used:"),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Topology",src:a(83008).Z,width:"1270",height:"740"})),(0,s.kt)("p",null,"For that, the next apps were used:"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},(0,s.kt)("a",{parentName:"li",href:"https://github.com/alrevuelta/waku-publisher/tree/9fb206c14a17dd37d20a9120022e86475ce0503f"},"Waku-publisher.")," This app can publish Relay messages with different numbers of clients"),(0,s.kt)("li",{parentName:"ol"},(0,s.kt)("a",{parentName:"li",href:"https://github.com/Ivansete-status/waku-store-query-generator/tree/19e6455537b6d44199cf0c8558480af5c6788b0d"},"Waku-store-query-generator"),". This app is based on the Waku-publisher but in this case, it can spawn concurrent go-waku Store clients.")),(0,s.kt)("p",null,"That topology is defined in ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/blob/7090cd125e739306357575730d0e54665c279670/docker/docker-compose-manual-binaries.yml"},"this")," docker-compose file."),(0,s.kt)("p",null,"Notice that the two ",(0,s.kt)("inlineCode",{parentName:"p"},"nwaku")," nodes run the very same version, which is compiled locally."),(0,s.kt)("h4",{id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b6dd6899"},"Comparing archive SQLite & Postgres performance in ",(0,s.kt)("a",{parentName:"h4",href:"https://github.com/waku-org/nwaku/tree/b6dd6899030ee628813dfd60ad1ad024345e7b41"},"nwaku-b6dd6899")),(0,s.kt)("p",null,"The next results were obtained by running the docker-compose-manual-binaries.yml from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/c07807597faa781ae6c8c32eefdf48ecac03a7ba"},"test-waku-query-c078075")," in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.)"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 1")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 1 user generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, we can see that the SQLite performance is better regarding the store requests."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(73267).Z,width:"1820",height:"306"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(95078).Z,width:"1820",height:"306"})),(0,s.kt)("p",null,"The following graph shows how the ",(0,s.kt)("em",{parentName:"p"},"SQLite")," node has blocking periods whereas the ",(0,s.kt)("em",{parentName:"p"},"Postgres")," always gives a steady rate."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Num queries per minute",src:a(64427).Z,width:"1828",height:"240"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 2")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 10 users generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, is more evident that the ",(0,s.kt)("em",{parentName:"p"},"SQLite")," performs better."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(29025).Z,width:"1829",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(17139).Z,width:"1826",height:"533"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 3")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 25 users generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, the performance is similar regarding the timings. The store rate is bigger in ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," keeps the same level as in scenario 2."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(22320).Z,width:"1826",height:"305"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(90968).Z,width:"1826",height:"535"})),(0,s.kt)("h4",{id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b452ed8"},"Comparing archive SQLite & Postgres performance in ",(0,s.kt)("a",{parentName:"h4",href:"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e"},"nwaku-b452ed8")),(0,s.kt)("p",null,"This nwaku commit is after a few ",(0,s.kt)("strong",{parentName:"p"},"Postgres")," optimizations were applied."),(0,s.kt)("p",null,"The next results were obtained by running the docker-compose-manual-binaries.yml from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/c07807597faa781ae6c8c32eefdf48ecac03a7ba"},"test-waku-query-c078075")," in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.)"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 1")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate")," 1 user generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 1 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(94578).Z,width:"1831",height:"306"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(10835).Z,width:"1831",height:"533"})),(0,s.kt)("p",null,"It cannot be appreciated but the average ",(0,s.kt)("strong",{parentName:"p"},"*"),"Store",(0,s.kt)("strong",{parentName:"p"},"*")," time was 11ms."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 2")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 10 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 10 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(2638).Z,width:"1832",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(8732).Z,width:"1828",height:"537"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 3")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 25 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 25 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(71328).Z,width:"1834",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(92608).Z,width:"1828",height:"540"})),(0,s.kt)("h4",{id:"conclusions"},"Conclusions"),(0,s.kt)("p",null,"After comparing both systems, ",(0,s.kt)("em",{parentName:"p"},"SQLite")," performs much better than ",(0,s.kt)("em",{parentName:"p"},"Postgres")," However, a benefit of using ",(0,s.kt)("em",{parentName:"p"},"Postgres")," is that it performs asynchronous operations, and therefore doesn\u2019t consume CPU time that would be better invested in ",(0,s.kt)("em",{parentName:"p"},"Relay")," for example."),(0,s.kt)("p",null,"Remember that ",(0,s.kt)("em",{parentName:"p"},"nwaku")," is single-threaded and ",(0,s.kt)("em",{parentName:"p"},"chronos")," performs orchestration among a bunch of async tasks, and therefore it is not a good practice to block the whole ",(0,s.kt)("em",{parentName:"p"},"nwaku")," process in a query, as happens with ",(0,s.kt)("em",{parentName:"p"},"SQLite")),(0,s.kt)("p",null,"After applying a few ",(0,s.kt)("em",{parentName:"p"},"Postgres")," enhancements, it can be noticed that the use of concurrent ",(0,s.kt)("em",{parentName:"p"},"Store")," queries doesn\u2019t go below the 250ms barrier. The reason for that is that most of the time is being consumed in ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/blob/6da1aeec5370bb1c116509e770178cca2662b69c/waku/common/databases/db_postgres/dbconn.nim#L124"},"this point"),". The ",(0,s.kt)("inlineCode",{parentName:"p"},"libpqisBusy()")," function indicates that the connection is still busy even the queries finished."),(0,s.kt)("p",null,"Notice that we usually have a rate below 1100 req/minute in ",(0,s.kt)("em",{parentName:"p"},"status.prod")," fleet (checked November 7, 2023.)"),(0,s.kt)("hr",null),(0,s.kt)("h3",{id:"multiple-nodes--one-single-database"},"Multiple nodes & one single database"),(0,s.kt)("p",null,"This study aims to look for possible issues when having only one single database while several Waku nodes insert or retrieve data from it.\nThe following diagram shows the scenery used for such analysis."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"digram_multiple_nodes_one_database",src:a(76148).Z,width:"1581",height:"867"})),(0,s.kt)("p",null,"There are three nim-waku nodes that are connected to the same database and all of them are trying to write messages to the same ",(0,s.kt)("em",{parentName:"p"},"PostgreSQL")," instance. With that, it is very common to see errors like:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre"},'ERR 2023-11-27 13:18:07.575+00:00 failed to insert message topics="waku archive" tid=2921 file=archive.nim:111 err="error in runStmt: error in dbConnQueryPrepared calling waitQueryToFinish: error in query: ERROR: duplicate key value violates unique constraint \\"messageindex\\"\\nDETAIL: Key (storedat, id, pubsubtopic)=(1701091087417938405, 479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd, /waku/2/default-waku/proto) already exists.\\n\n')),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"db-postgres-hammer")," is aimed to stress the database from the ",(0,s.kt)("inlineCode",{parentName:"p"},"select")," point of view. It performs ",(0,s.kt)("inlineCode",{parentName:"p"},"N")," concurrent ",(0,s.kt)("inlineCode",{parentName:"p"},"select")," queries with a certain rate."),(0,s.kt)("h4",{id:"results"},"Results"),(0,s.kt)("p",null,"The following results were obtained by using the sandbox machine (metal-01.he-eu-hel1.misc.wakudev) and running nim-waku nodes from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e"},"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e")," and using the ",(0,s.kt)("inlineCode",{parentName:"p"},"test-waku-query")," project from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356"},"https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356")),(0,s.kt)("p",null,"The following shows the results"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},"Two ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 50 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.")),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(49832).Z,width:"924",height:"288"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(82960).Z,width:"913",height:"307"})),(0,s.kt)("ol",{start:2},(0,s.kt)("li",{parentName:"ol"},"Five ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 50 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.\n",(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(62771).Z,width:"913",height:"307"}),(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(70419).Z,width:"913",height:"307"}))),(0,s.kt)("p",null,"In this case, the insert time gets more spread because the insert operations are shared amongst five more nodes. The ",(0,s.kt)("em",{parentName:"p"},"Store")," query time remains the same on average."),(0,s.kt)("ol",{start:3},(0,s.kt)("li",{parentName:"ol"},"Five ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 100 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.\nThis case is similar to 2. but stressing more the database.\n",(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(29936).Z,width:"917",height:"308"}),(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(64840).Z,width:"909",height:"313"}))))}c.isMDXComponent=!0},76148:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/digram_multiple_nodes_one_database-f503210c733fbeb8a572f9f6ccd81adf.png"},29025:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-2-46dc8832866df6316c3c4198f72f7933.png"},22320:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-3-b0fea4a8261185b481d49f9ced83e3e5.png"},94578:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-4-f6d6bb7844c5da6d8b32b7a0ca04e9dd.png"},2638:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-5-8a5fc95666e514142280e7b31332860a.png"},71328:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-6-c296f68fc41d94a05facc5aa08bfef14.png"},62771:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-2-78f1bb4fc86aba4604ceda390a37dc96.png"},29936:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-3-8c6c424e8e30dd9201539a6eba942857.png"},49832:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-938248325bab6bd74a1945193f88a95c.png"},73267:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-24602d6973d24be6b019dad1777bb987.png"},71101:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/jmeter-results-b7c1925776dc6b56d42d959250eefe05.png"},64427:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/num-queries-per-minute-6a54abcc873ba4ec4a30058499435bbd.png"},17139:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-2-ca8dd4d4dd040e11639ec9902494d762.png"},90968:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-3-5ecfd6bfc2de09c5453c4a5f6ea2ef5c.png"},10835:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-4-03ae15c83b1b754a6716b8d25593e7be.png"},8732:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-5-eae87929d2d1e5a8399131d2492664f3.png"},92608:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-6-9328594b3f669f5d217a7e4e70a997d9.png"},70419:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-2-347ba236b22fccce5efa56b29dae2021.png"},64840:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-3-ff3612d13d631359595fbc395976a237.png"},82960:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-63483fc4a94701ff82c19fc292d00f5c.png"},95078:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-f40e2f9ea1b96e1288c924f5c600d948.png"},83008:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/topology-only-store-protocol-4c1704db48f330abda7f925618c485b4.png"},45390:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/using-jmeter-fb15a8f1842c5307ac9c375518cf14d0.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5306],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>d});var r=a(67294);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}var p=r.createContext({}),l=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,s=e.mdxType,n=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=l(a),h=s,d=u["".concat(p,".").concat(h)]||u[h]||c[h]||n;return a?r.createElement(d,i(i({ref:t},m),{},{components:a})):r.createElement(d,i({ref:t},m))}));function d(e,t){var a=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=a.length,i=new Array(n);i[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:s,i[1]=o;for(var l=2;l{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>l});var r=a(87462),s=(a(67294),a(3905));const n={title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},i=void 0,o={unversionedId:"research/benchmarks/postgres-adoption",id:"research/benchmarks/postgres-adoption",title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results.",source:"@site/docs/research/benchmarks/postgres-adoption.md",sourceDirName:"research/benchmarks",slug:"/research/benchmarks/postgres-adoption",permalink:"/research/benchmarks/postgres-adoption",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/benchmarks/postgres-adoption.md",tags:[],version:"current",lastUpdatedAt:1750430985,formattedLastUpdatedAt:"20 Jun 2025",frontMatter:{title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},sidebar:"research",previous:{title:"Research",permalink:"/research/"},next:{title:"Performance Benchmarks and Test Reports",permalink:"/research/benchmarks/test-results-summary"}},p={},l=[{value:"Introduction",id:"introduction",level:2},{value:"How to connect the nwaku to Postgres",id:"how-to-connect-the-nwaku-to-postgres",level:2},{value:"Examples of nwaku using Postgres",id:"examples-of-nwaku-using-postgres",level:2},{value:"Stress tests",id:"stress-tests",level:2},{value:"Insert test results",id:"insert-test-results",level:3},{value:"Maximum insert throughput",id:"maximum-insert-throughput",level:4},{value:"Query test results (jmeter)",id:"query-test-results-jmeter",level:3},{value:"Query test results (only Store protocol)",id:"query-test-results-only-store-protocol",level:3},{value:"Comparing archive SQLite & Postgres performance in nwaku-b6dd6899",id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b6dd6899",level:4},{value:"Comparing archive SQLite & Postgres performance in nwaku-b452ed8",id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b452ed8",level:4},{value:"Conclusions",id:"conclusions",level:4},{value:"Multiple nodes & one single database",id:"multiple-nodes--one-single-database",level:3},{value:"Results",id:"results",level:4}],m={toc:l},u="wrapper";function c(e){let{components:t,...n}=e;return(0,s.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"introduction"},"Introduction"),(0,s.kt)("p",null,"The ",(0,s.kt)("em",{parentName:"p"},"Nim Waku Node"),", ",(0,s.kt)("em",{parentName:"p"},"nwaku"),", has the capability of archiving messages until a certain limit (e.g. 30 days) so that other nodes can synchronize their message history throughout the ",(0,s.kt)("em",{parentName:"p"},"Store")," protocol."),(0,s.kt)("p",null,"The ",(0,s.kt)("em",{parentName:"p"},"nwaku")," originally used ",(0,s.kt)("em",{parentName:"p"},"SQLite")," to archive messages but this has an impact on the node. ",(0,s.kt)("em",{parentName:"p"},"Nwaku")," is single-threaded and therefore, any ",(0,s.kt)("em",{parentName:"p"},"SQLite")," operation impacts the performance of other protocols, like ",(0,s.kt)("em",{parentName:"p"},"Relay.")),(0,s.kt)("p",null,"Therefore, the ",(0,s.kt)("em",{parentName:"p"},"Postgres")," adoption is needed to enhance that."),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/issues/1888"},"https://github.com/waku-org/nwaku/issues/1888")),(0,s.kt)("h2",{id:"how-to-connect-the-nwaku-to-postgres"},"How to connect the ",(0,s.kt)("em",{parentName:"h2"},"nwaku")," to ",(0,s.kt)("em",{parentName:"h2"},"Postgres")),(0,s.kt)("p",null,"Simply pass the next parameter to ",(0,s.kt)("em",{parentName:"p"},"nwaku")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'--store-message-db-url="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/postgres\n')),(0,s.kt)("p",null,"Notice that this only makes sense if the ",(0,s.kt)("em",{parentName:"p"},"nwaku")," has the ",(0,s.kt)("em",{parentName:"p"},"Store")," protocol mounted"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"--store=true\n")),(0,s.kt)("p",null,"(start the ",(0,s.kt)("em",{parentName:"p"},"nwaku")," node with ",(0,s.kt)("inlineCode",{parentName:"p"},"--help")," parameter for more ",(0,s.kt)("em",{parentName:"p"},"Store")," options)"),(0,s.kt)("h2",{id:"examples-of-nwaku-using-postgres"},"Examples of ",(0,s.kt)("em",{parentName:"h2"},"nwaku")," using ",(0,s.kt)("em",{parentName:"h2"},"Postgres")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku-compose"},"https://github.com/waku-org/nwaku-compose")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query"},"https://github.com/waku-org/test-waku-query")),(0,s.kt)("h2",{id:"stress-tests"},"Stress tests"),(0,s.kt)("p",null,"The following repository was created as a tool to stress and compare performance between ",(0,s.kt)("em",{parentName:"p"},"nwaku"),"+",(0,s.kt)("em",{parentName:"p"},"Postgres")," and ",(0,s.kt)("em",{parentName:"p"},"nwaku"),"+",(0,s.kt)("em",{parentName:"p"},"SQLite"),":"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query"},"https://github.com/waku-org/test-waku-query")),(0,s.kt)("h3",{id:"insert-test-results"},"Insert test results"),(0,s.kt)("h4",{id:"maximum-insert-throughput"},"Maximum insert throughput"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"1 node subscribed to pubsubtopic \u2018x\u2019 and the ",(0,s.kt)("em",{parentName:"li"},"Store")," protocol mounted."),(0,s.kt)("li",{parentName:"ul"},"\u2018n\u2019 nodes connected to the \u201cstore\u201d node, and publishing messages simultaneously to pubsubtopic \u2018x\u2019."),(0,s.kt)("li",{parentName:"ul"},"All nodes running locally in a ",(0,s.kt)("em",{parentName:"li"},"Dell Latitude 7640"),"."),(0,s.kt)("li",{parentName:"ul"},"Each published message is fixed, 1.4 KB: ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/waku-org/test-waku-query/blob/master/sh/publish_one_client.sh"},"publish_one_client.sh")),(0,s.kt)("li",{parentName:"ul"},"The next script is used to simulate multiple nodes publishing messages: ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/waku-org/test-waku-query/blob/fe7061a21eb14395e723402face755c826077aec/sh/publish_multiple_clients.sh"},"publish_multiple_clients.sh"))),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Sought goal")),(0,s.kt)("p",null,"Find out the maximum number of concurrent inserts that both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," could support, and check whether ",(0,s.kt)("em",{parentName:"p"},"Postgres")," behaves better than ",(0,s.kt)("em",{parentName:"p"},"SQLite")," or not."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Conclusion")),(0,s.kt)("p",null,"Messages are lost after a certain threshold, and this message loss is due to limitations in the ",(0,s.kt)("em",{parentName:"p"},"Relay")," protocol (GossipSub - libp2p.)"),(0,s.kt)("p",null,"For example, if we set 30 nodes publishing 300 messages simultaneously, then 8997 rows were stored and not the expected 9000, in both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," databases."),(0,s.kt)("p",null,"The reason why few messages were lost is because the message rate was higher than the ",(0,s.kt)("em",{parentName:"p"},"relay")," protocol can support, and therefore a few messages were not stored. In this example, the test took 38.8\u2019\u2019, and therefore, the node was receiving 232 msgs/sec, which is much more than the normal rate a node will work with, which is ~10 msgs/sec (rate extracted from Grafana\u2019s stats for the ",(0,s.kt)("em",{parentName:"p"},"status.prod")," fleet.)"),(0,s.kt)("p",null,"As a conclusion, the bottleneck is within the ",(0,s.kt)("em",{parentName:"p"},"Relay")," protocol itself and not the underlying databases. Or, in other words, both ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," can support the maximum insert rate a Waku node will operate within normal conditions."),(0,s.kt)("h3",{id:"query-test-results-jmeter"},"Query test results (jmeter)"),(0,s.kt)("p",null,"In this case, we are comparing ",(0,s.kt)("em",{parentName:"p"},"Store")," performance by means of Rest service."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"a: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"Store")," and connected to ",(0,s.kt)("em",{parentName:"li"},"Postgres.")),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"b: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"Store")," and using ",(0,s.kt)("em",{parentName:"li"},"SQLite"),"."),(0,s.kt)("li",{parentName:"ul"},"Both ",(0,s.kt)("em",{parentName:"li"},"Postgres")," and ",(0,s.kt)("em",{parentName:"li"},"SQLite")," contain +1 million rows."),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"c: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"REST")," enabled and acting as a ",(0,s.kt)("em",{parentName:"li"},"Store client")," for node_a."),(0,s.kt)("li",{parentName:"ul"},"node",(0,s.kt)("em",{parentName:"li"},"d: one _nwaku")," node with ",(0,s.kt)("em",{parentName:"li"},"REST")," enabled and acting as a ",(0,s.kt)("em",{parentName:"li"},"Store client")," for node_b."),(0,s.kt)("li",{parentName:"ul"},"With ",(0,s.kt)("em",{parentName:"li"},"jmeter"),", 10 users make ",(0,s.kt)("em",{parentName:"li"},"REST")," ",(0,s.kt)("em",{parentName:"li"},"Store")," requests concurrently to each of the \u201crest\u201d nodes (node_c and node_d.)"),(0,s.kt)("li",{parentName:"ul"},"All ",(0,s.kt)("em",{parentName:"li"},"nwaku")," nodes running statusteam/nim-waku:v0.19.0")),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/blob/master/docker/jmeter/http_store_requests.jmx"},"This")," is the ",(0,s.kt)("em",{parentName:"p"},"jmeter")," project used."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Using jmeter",src:a(45390).Z,width:"1178",height:"458"})),(0,s.kt)("p",null,(0,s.kt)("em",{parentName:"p"},"Results")),(0,s.kt)("p",null,"With this, the ",(0,s.kt)("em",{parentName:"p"},"node_b")," brings a higher throughput than the ",(0,s.kt)("em",{parentName:"p"},"node_a")," and that indicates that the node that uses SQLite performs better. The following shows the measures taken by ",(0,s.kt)("em",{parentName:"p"},"jmeter")," with regard to the REST requests."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"jmeter results",src:a(71101).Z,width:"1475",height:"73"})),(0,s.kt)("h3",{id:"query-test-results-only-store-protocol"},"Query test results (only Store protocol)"),(0,s.kt)("p",null,"In this test suite, only the Store protocol is being analyzed, i.e. without REST. For that, a go-waku node is used, which acts as ",(0,s.kt)("em",{parentName:"p"},"Store")," client. On the other hand, we have another go-waku app that publishes random ",(0,s.kt)("em",{parentName:"p"},"Relay")," messages periodically. Therefore, this can be considered a more realistic approach."),(0,s.kt)("p",null,"The following diagram shows the topology used:"),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Topology",src:a(83008).Z,width:"1270",height:"740"})),(0,s.kt)("p",null,"For that, the next apps were used:"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},(0,s.kt)("a",{parentName:"li",href:"https://github.com/alrevuelta/waku-publisher/tree/9fb206c14a17dd37d20a9120022e86475ce0503f"},"Waku-publisher.")," This app can publish Relay messages with different numbers of clients"),(0,s.kt)("li",{parentName:"ol"},(0,s.kt)("a",{parentName:"li",href:"https://github.com/Ivansete-status/waku-store-query-generator/tree/19e6455537b6d44199cf0c8558480af5c6788b0d"},"Waku-store-query-generator"),". This app is based on the Waku-publisher but in this case, it can spawn concurrent go-waku Store clients.")),(0,s.kt)("p",null,"That topology is defined in ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/blob/7090cd125e739306357575730d0e54665c279670/docker/docker-compose-manual-binaries.yml"},"this")," docker-compose file."),(0,s.kt)("p",null,"Notice that the two ",(0,s.kt)("inlineCode",{parentName:"p"},"nwaku")," nodes run the very same version, which is compiled locally."),(0,s.kt)("h4",{id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b6dd6899"},"Comparing archive SQLite & Postgres performance in ",(0,s.kt)("a",{parentName:"h4",href:"https://github.com/waku-org/nwaku/tree/b6dd6899030ee628813dfd60ad1ad024345e7b41"},"nwaku-b6dd6899")),(0,s.kt)("p",null,"The next results were obtained by running the docker-compose-manual-binaries.yml from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/c07807597faa781ae6c8c32eefdf48ecac03a7ba"},"test-waku-query-c078075")," in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.)"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 1")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 1 user generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, we can see that the SQLite performance is better regarding the store requests."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(73267).Z,width:"1820",height:"306"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(95078).Z,width:"1820",height:"306"})),(0,s.kt)("p",null,"The following graph shows how the ",(0,s.kt)("em",{parentName:"p"},"SQLite")," node has blocking periods whereas the ",(0,s.kt)("em",{parentName:"p"},"Postgres")," always gives a steady rate."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Num queries per minute",src:a(64427).Z,width:"1828",height:"240"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 2")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 10 users generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, is more evident that the ",(0,s.kt)("em",{parentName:"p"},"SQLite")," performs better."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(29025).Z,width:"1829",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(17139).Z,width:"1826",height:"533"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 3")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 25 users generating 1 store-req/sec."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,"In this case, the performance is similar regarding the timings. The store rate is bigger in ",(0,s.kt)("em",{parentName:"p"},"SQLite")," and ",(0,s.kt)("em",{parentName:"p"},"Postgres")," keeps the same level as in scenario 2."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(22320).Z,width:"1826",height:"305"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(90968).Z,width:"1826",height:"535"})),(0,s.kt)("h4",{id:"comparing-archive-sqlite--postgres-performance-in-nwaku-b452ed8"},"Comparing archive SQLite & Postgres performance in ",(0,s.kt)("a",{parentName:"h4",href:"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e"},"nwaku-b452ed8")),(0,s.kt)("p",null,"This nwaku commit is after a few ",(0,s.kt)("strong",{parentName:"p"},"Postgres")," optimizations were applied."),(0,s.kt)("p",null,"The next results were obtained by running the docker-compose-manual-binaries.yml from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/c07807597faa781ae6c8c32eefdf48ecac03a7ba"},"test-waku-query-c078075")," in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.)"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 1")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate")," 1 user generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 1 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(94578).Z,width:"1831",height:"306"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(10835).Z,width:"1831",height:"533"})),(0,s.kt)("p",null,"It cannot be appreciated but the average ",(0,s.kt)("strong",{parentName:"p"},"*"),"Store",(0,s.kt)("strong",{parentName:"p"},"*")," time was 11ms."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 2")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 10 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 10 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(2638).Z,width:"1832",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(8732).Z,width:"1828",height:"537"})),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Scenario 3")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Store rate:")," 25 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 25 req/sec that would be expected without pagination."),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"Relay rate:")," 1 user generating 10msg/sec, 10KB each."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution",src:a(71328).Z,width:"1834",height:"311"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution",src:a(92608).Z,width:"1828",height:"540"})),(0,s.kt)("h4",{id:"conclusions"},"Conclusions"),(0,s.kt)("p",null,"After comparing both systems, ",(0,s.kt)("em",{parentName:"p"},"SQLite")," performs much better than ",(0,s.kt)("em",{parentName:"p"},"Postgres")," However, a benefit of using ",(0,s.kt)("em",{parentName:"p"},"Postgres")," is that it performs asynchronous operations, and therefore doesn\u2019t consume CPU time that would be better invested in ",(0,s.kt)("em",{parentName:"p"},"Relay")," for example."),(0,s.kt)("p",null,"Remember that ",(0,s.kt)("em",{parentName:"p"},"nwaku")," is single-threaded and ",(0,s.kt)("em",{parentName:"p"},"chronos")," performs orchestration among a bunch of async tasks, and therefore it is not a good practice to block the whole ",(0,s.kt)("em",{parentName:"p"},"nwaku")," process in a query, as happens with ",(0,s.kt)("em",{parentName:"p"},"SQLite")),(0,s.kt)("p",null,"After applying a few ",(0,s.kt)("em",{parentName:"p"},"Postgres")," enhancements, it can be noticed that the use of concurrent ",(0,s.kt)("em",{parentName:"p"},"Store")," queries doesn\u2019t go below the 250ms barrier. The reason for that is that most of the time is being consumed in ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/blob/6da1aeec5370bb1c116509e770178cca2662b69c/waku/common/databases/db_postgres/dbconn.nim#L124"},"this point"),". The ",(0,s.kt)("inlineCode",{parentName:"p"},"libpqisBusy()")," function indicates that the connection is still busy even the queries finished."),(0,s.kt)("p",null,"Notice that we usually have a rate below 1100 req/minute in ",(0,s.kt)("em",{parentName:"p"},"status.prod")," fleet (checked November 7, 2023.)"),(0,s.kt)("hr",null),(0,s.kt)("h3",{id:"multiple-nodes--one-single-database"},"Multiple nodes & one single database"),(0,s.kt)("p",null,"This study aims to look for possible issues when having only one single database while several Waku nodes insert or retrieve data from it.\nThe following diagram shows the scenery used for such analysis."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"digram_multiple_nodes_one_database",src:a(76148).Z,width:"1581",height:"867"})),(0,s.kt)("p",null,"There are three nim-waku nodes that are connected to the same database and all of them are trying to write messages to the same ",(0,s.kt)("em",{parentName:"p"},"PostgreSQL")," instance. With that, it is very common to see errors like:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre"},'ERR 2023-11-27 13:18:07.575+00:00 failed to insert message topics="waku archive" tid=2921 file=archive.nim:111 err="error in runStmt: error in dbConnQueryPrepared calling waitQueryToFinish: error in query: ERROR: duplicate key value violates unique constraint \\"messageindex\\"\\nDETAIL: Key (storedat, id, pubsubtopic)=(1701091087417938405, 479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd, /waku/2/default-waku/proto) already exists.\\n\n')),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"db-postgres-hammer")," is aimed to stress the database from the ",(0,s.kt)("inlineCode",{parentName:"p"},"select")," point of view. It performs ",(0,s.kt)("inlineCode",{parentName:"p"},"N")," concurrent ",(0,s.kt)("inlineCode",{parentName:"p"},"select")," queries with a certain rate."),(0,s.kt)("h4",{id:"results"},"Results"),(0,s.kt)("p",null,"The following results were obtained by using the sandbox machine (metal-01.he-eu-hel1.misc.wakudev) and running nim-waku nodes from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e"},"https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e")," and using the ",(0,s.kt)("inlineCode",{parentName:"p"},"test-waku-query")," project from ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356"},"https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356")),(0,s.kt)("p",null,"The following shows the results"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},"Two ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 50 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.")),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(49832).Z,width:"924",height:"288"})),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(82960).Z,width:"913",height:"307"})),(0,s.kt)("ol",{start:2},(0,s.kt)("li",{parentName:"ol"},"Five ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 50 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.\n",(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(62771).Z,width:"913",height:"307"}),(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(70419).Z,width:"913",height:"307"}))),(0,s.kt)("p",null,"In this case, the insert time gets more spread because the insert operations are shared amongst five more nodes. The ",(0,s.kt)("em",{parentName:"p"},"Store")," query time remains the same on average."),(0,s.kt)("ol",{start:3},(0,s.kt)("li",{parentName:"ol"},"Five ",(0,s.kt)("inlineCode",{parentName:"li"},"nwaku-postgres-additional")," inserting messages plus 100 ",(0,s.kt)("inlineCode",{parentName:"li"},"db-postgres-hammer")," making 10 ",(0,s.kt)("inlineCode",{parentName:"li"},"selects")," per second.\nThis case is similar to 2. but stressing more the database.\n",(0,s.kt)("img",{alt:"Insert time distribution Postgres",src:a(29936).Z,width:"917",height:"308"}),(0,s.kt)("img",{alt:"Query time distribution Postgres",src:a(64840).Z,width:"909",height:"313"}))))}c.isMDXComponent=!0},76148:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/digram_multiple_nodes_one_database-f503210c733fbeb8a572f9f6ccd81adf.png"},29025:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-2-46dc8832866df6316c3c4198f72f7933.png"},22320:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-3-b0fea4a8261185b481d49f9ced83e3e5.png"},94578:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-4-f6d6bb7844c5da6d8b32b7a0ca04e9dd.png"},2638:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-5-8a5fc95666e514142280e7b31332860a.png"},71328:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-6-c296f68fc41d94a05facc5aa08bfef14.png"},62771:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-2-78f1bb4fc86aba4604ceda390a37dc96.png"},29936:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-3-8c6c424e8e30dd9201539a6eba942857.png"},49832:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-postgres-938248325bab6bd74a1945193f88a95c.png"},73267:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/insert-time-dist-24602d6973d24be6b019dad1777bb987.png"},71101:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/jmeter-results-b7c1925776dc6b56d42d959250eefe05.png"},64427:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/num-queries-per-minute-6a54abcc873ba4ec4a30058499435bbd.png"},17139:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-2-ca8dd4d4dd040e11639ec9902494d762.png"},90968:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-3-5ecfd6bfc2de09c5453c4a5f6ea2ef5c.png"},10835:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-4-03ae15c83b1b754a6716b8d25593e7be.png"},8732:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-5-eae87929d2d1e5a8399131d2492664f3.png"},92608:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-6-9328594b3f669f5d217a7e4e70a997d9.png"},70419:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-2-347ba236b22fccce5efa56b29dae2021.png"},64840:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-3-ff3612d13d631359595fbc395976a237.png"},82960:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-postgres-63483fc4a94701ff82c19fc292d00f5c.png"},95078:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/query-time-dist-f40e2f9ea1b96e1288c924f5c600d948.png"},83008:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/topology-only-store-protocol-4c1704db48f330abda7f925618c485b4.png"},45390:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/using-jmeter-fb15a8f1842c5307ac9c375518cf14d0.png"}}]); \ No newline at end of file diff --git a/assets/js/main.7ebdad13.js b/assets/js/main.7ebdad13.js new file mode 100644 index 0000000..22b172f --- /dev/null +++ b/assets/js/main.7ebdad13.js @@ -0,0 +1,14 @@ +/*! For license information please see main.7ebdad13.js.LICENSE.txt */ +(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[179],{31665:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(67294),a=n(73935),o=n(70917);function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const l=i(r);var s=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t2||B(N)>3?"":" "}function V(e,t){for(;--t&&R()&&!(N<48||N>102||N>57&&N<65||N>70&&N<97););return F(e,M()+(t<6&&32==j()&&32==R()))}function q(e){for(;R();)switch(N){case e:return P;case 34:case 39:34!==e&&39!==e&&q(N);break;case 40:41===e&&q(e);break;case 92:R()}return P}function W(e,t){for(;R()&&e+N!==57&&(e+N!==84||47!==j()););return"/*"+F(t,P-1)+"*"+v(47===e?e:R())}function G(e){for(;!B(j());)R();return F(e,P)}function Z(e){return $(Q("",null,null,null,[""],e=z(e),0,[0],e))}function Q(e,t,n,r,a,o,i,l,s){for(var u=0,c=0,d=i,f=0,p=0,h=0,m=1,g=1,b=1,y=0,_="",S=a,D=o,A=r,L=_;g;)switch(h=y,y=R()){case 40:if(108!=h&&58==k(L,d-1)){-1!=x(L+=w(U(y),"&","&\f"),"&\f")&&(b=-1);break}case 34:case 39:case 91:L+=U(y);break;case 9:case 10:case 13:case 32:L+=H(h);break;case 92:L+=V(M()-1,7);continue;case 47:switch(j()){case 42:case 47:C(X(W(R(),M()),t,n),s);break;default:L+="/"}break;case 123*m:l[u++]=E(L)*b;case 125*m:case 59:case 0:switch(y){case 0:case 125:g=0;case 59+c:p>0&&E(L)-d&&C(p>32?K(L+";",r,n,d-1):K(w(L," ","")+";",r,n,d-2),s);break;case 59:L+=";";default:if(C(A=Y(L,t,n,u,c,a,l,_,S=[],D=[],d),o),123===y)if(0===c)Q(L,t,A,A,S,o,d,l,D);else switch(99===f&&110===k(L,3)?100:f){case 100:case 109:case 115:Q(e,A,A,r&&C(Y(e,A,A,0,0,a,l,_,a,S=[],d),D),a,D,d,l,r?S:D);break;default:Q(L,A,A,A,[""],D,0,l,D)}}u=c=p=0,m=b=1,_=L="",d=i;break;case 58:d=1+E(L),p=h;default:if(m<1)if(123==y)--m;else if(125==y&&0==m++&&125==(N=P>0?k(I,--P):0,O--,10===N&&(O=1,T--),N))continue;switch(L+=v(y),y*m){case 38:b=c>0?1:(L+="\f",-1);break;case 44:l[u++]=(E(L)-1)*b,b=1;break;case 64:45===j()&&(L+=U(R())),f=j(),c=d=E(_=L+=G(M())),y++;break;case 45:45===h&&2==E(L)&&(m=0)}}return o}function Y(e,t,n,r,a,o,i,l,s,u,c){for(var d=a-1,f=0===a?o:[""],h=S(f),m=0,v=0,b=0;m0?f[x]+" "+k:w(k,/&\f/g,f[x])))&&(s[b++]=E);return A(e,t,n,0===a?p:l,s,u,c)}function X(e,t,n){return A(e,t,n,f,v(N),_(e,2,-2),0)}function K(e,t,n,r){return A(e,t,n,h,_(e,0,r),_(e,r+1,-1),r)}function J(e,t){for(var n="",r=S(e),a=0;a6)switch(k(e,t+1)){case 109:if(45!==k(e,t+4))break;case 102:return w(e,/(.+:)(.+)-([^]+)/,"$1"+d+"$2-$3$1"+c+(108==k(e,t+3)?"$3":"$2-$3"))+e;case 115:return~x(e,"stretch")?le(w(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==k(e,t+1))break;case 6444:switch(k(e,E(e)-3-(~x(e,"!important")&&10))){case 107:return w(e,":",":"+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+d+(45===k(e,14)?"inline-":"")+"box$3$1"+d+"$2$3$1"+u+"$2box$3")+e}break;case 5936:switch(k(e,t+11)){case 114:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return d+e+u+e+e}return e}var se,ue=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:e.return=le(e.value,e.length);break;case m:return J([L(e,{value:w(e.value,"@","@"+d)})],r);case p:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([L(e,{props:[w(t,/:(read-\w+)/,":"+c+"$1")]})],r);case"::placeholder":return J([L(e,{props:[w(t,/:(plac\w+)/,":"+d+"input-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,":"+c+"$1")]}),L(e,{props:[w(t,/:(plac\w+)/,u+"input-$1")]})],r)}return""}))}}],ce=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||ue;var a,o,i={},l=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+s,styles:a,next:Se}}(i,void 0,r.useContext(Ne));l+=t.key+"-"+s.name;var u={};for(var c in e)Oe.call(e,c)&&"css"!==c&&c!==Ie&&(u[c]=e[c]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(Le,{cache:t,serialized:s,isStringTag:"string"==typeof o}),r.createElement(o,u))}));var je,Me,Fe,Be={},ze={};function $e(){if(Me)return je;Me=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;return je=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(r,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(r),s=1;s{const[t,n]=r.useState(e.value??e.defaultValue),a=void 0===e.value,o=void 0!==t&&("string"==typeof t?t.length>0:t.toString().length>0);return r.useEffect((()=>{!a&&n(e.value)}),[a,e.value]),{value:t,filled:o,onChange:t=>{if(a){const e=t.target.type,r=t.target["checkbox"===e||"radio"===e?"checked":"value"];n(r)}e.onChange&&e.onChange(t)},setValue:t=>{var n,r,a,o;const i=(null==(n=null==e?void 0:e.ref)?void 0:n.current)??("function"==typeof e.getInput&&e.getInput());if(!i)return;const l=new Event("input",{bubbles:!0});null==(o=null==(a=null==(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))?void 0:r.set)?void 0:a.call)||o.call(a,i,t),i.dispatchEvent(l)}}};var Xe=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n-1},dt=function(e,t){var n=this.__data__,r=it(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ft(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991},_r=Lt,Er=kr,Sr=sr,Cr={};Cr["[object Float32Array]"]=Cr["[object Float64Array]"]=Cr["[object Int8Array]"]=Cr["[object Int16Array]"]=Cr["[object Int32Array]"]=Cr["[object Uint8Array]"]=Cr["[object Uint8ClampedArray]"]=Cr["[object Uint16Array]"]=Cr["[object Uint32Array]"]=!0,Cr["[object Arguments]"]=Cr["[object Array]"]=Cr["[object ArrayBuffer]"]=Cr["[object Boolean]"]=Cr["[object DataView]"]=Cr["[object Date]"]=Cr["[object Error]"]=Cr["[object Function]"]=Cr["[object Map]"]=Cr["[object Number]"]=Cr["[object Object]"]=Cr["[object RegExp]"]=Cr["[object Set]"]=Cr["[object String]"]=Cr["[object WeakMap]"]=!1;var Tr=function(e){return Sr(e)&&Er(e.length)&&!!Cr[_r(e)]};var Or=function(e){return function(t){return e(t)}},Dr={};!function(e,t){var n=yt,r=t&&!t.nodeType&&t,a=r&&e&&!e.nodeType&&e,o=a&&a.exports===r&&n.process,i=function(){try{var e=a&&a.require&&a.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(t){}}();e.exports=i}({get exports(){return Dr},set exports(e){Dr=e}},Dr);var Pr=Tr,Nr=Or,Ir=Dr&&Dr.isTypedArray,Ar=Ir?Nr(Ir):Pr,Lr=lr,Rr=gr,jr=vr,Mr=br,Fr=xr,Br=Ar,zr=Object.prototype.hasOwnProperty;var $r=function(e,t){var n=jr(e),r=!n&&Rr(e),a=!n&&!r&&Mr(e),o=!n&&!r&&!a&&Br(e),i=n||r||a||o,l=i?Lr(e.length,String):[],s=l.length;for(var u in e)!t&&!zr.call(e,u)||i&&("length"==u||a&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Fr(u,s))||l.push(u);return l},Ur=Object.prototype;var Hr=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ur)};var Vr=function(e,t){return function(n){return e(t(n))}},qr=Vr(Object.keys,Object),Wr=Hr,Gr=qr,Zr=Object.prototype.hasOwnProperty;var Qr=Bt,Yr=kr;var Xr=function(e){return null!=e&&Yr(e.length)&&!Qr(e)},Kr=$r,Jr=function(e){if(!Wr(e))return Gr(e);var t=[];for(var n in Object(e))Zr.call(e,n)&&"constructor"!=n&&t.push(n);return t},ea=Xr;var ta=function(e){return ea(e)?Kr(e):Jr(e)},na=ir,ra=ta;var aa=function(e,t){return e&&na(t,ra(t),e)};var oa=Rt,ia=Hr,la=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},sa=Object.prototype.hasOwnProperty;var ua=$r,ca=function(e){if(!oa(e))return la(e);var t=ia(e),n=[];for(var r in e)("constructor"!=r||!t&&sa.call(e,r))&&n.push(r);return n},da=Xr;var fa=function(e){return da(e)?ua(e,!0):ca(e)},pa=ir,ha=fa;var ma=function(e,t){return e&&pa(t,ha(t),e)},ga={};!function(e,t){var n=kt,r=t&&!t.nodeType&&t,a=r&&e&&!e.nodeType&&e,o=a&&a.exports===r?n.Buffer:void 0,i=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=i?i(n):new e.constructor(n);return e.copy(r),r}}({get exports(){return ga},set exports(e){ga=e}},ga);var va=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++na?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r0&&r(s)?n>1?e(s,n-1,r,a,o):wl(o,s):a||(o[o.length]=s)}return o},_l=kl;var El=function(e){return(null==e?0:e.length)?_l(e,1):[]};var Sl=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},Cl=Math.max;var Tl=function(e,t,n){return t=Cl(void 0===t?e.length-1:t,0),function(){for(var r=arguments,a=-1,o=Cl(r.length-t,0),i=Array(o);++a0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Pl),Al=El,Ll=Tl,Rl=Il;var jl=function(e){return Rl(Ll(e,void 0,Al),e+"")},Ml=Xe,Fl=xi,Bl=il,zl=Zi,$l=ir,Ul=gl,Hl=Ga,Vl=jl((function(e,t){var n={};if(null==e)return n;var r=!1;t=Ml(t,(function(t){return t=zl(t,e),r||(r=t.length>1),t})),$l(e,Hl(e),n),r&&(n=Fl(n,7,Ul));for(var a=t.length;a--;)Bl(n,t[a]);return n})),ql=rr,Wl=Zi,Gl=xr,Zl=Rt,Ql=Yi;var Yl=Ji,Xl=function(e,t,n,r){if(!Zl(e))return e;for(var a=-1,o=(t=Wl(t,e)).length,i=o-1,l=e;null!=l&&++aObject.fromEntries((Array.isArray(e)?e:Object.keys(e)).map(((e,n)=>[e,t(e,n)]))),fs=["xs","sm","md","lg","xl"],ps=["display1","display2","display3","display4","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","subtitle3","subtitle4","body1","body2","body3","label1","label2"],hs={h1:["h1"],h2:["h2"],h3:["h3"],h4:["h4"],h5:["h5"],h6:["h6"],body1:["body"],label1:["label"]},ms=["fontSize","fontWeight","lineHeight"],gs={...ds(ps,(e=>`lsd-typography--${e}`)),root:"lsd-typography",primary:"lsd-typography--primary",secondary:"lsd-typography--secondary",serif:"lsd-typography--serif",sansSerif:"lsd-typography--sans-serif",monospace:"lsd-typography--monospace"},vs=["genericFontFamily"],bs=({genericFontFamily:e})=>({className:Qe("serif"===e&&gs.serif,"monospace"===e&&gs.monospace,"sans-serif"===e&&gs.sansSerif)}),ys=e=>cs(e,vs),ws=e=>Vl(e,vs),xs={root:"lsd-icon",small:"lsd-icon--small",filled:"lsd-icon--filled",stroked:"lsd-icon--stroked",primary:"lsd-icon--primary",secondary:"lsd-icon--secondary"},ks=(e,t)=>{const n=({color:n,size:r="small",className:a,...o})=>{const i=bs(o);return We(e,{className:Qe(i.className,a,xs.root,xs[r],n&&xs[n],(null==t?void 0:t.filled)&&xs.filled,(null==t?void 0:t.stroked)&&xs.stroked),...ws(o)})};return n.displayName=e.displayName,n.classes=xs,n},_s=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.6666 7.58334H7.58325V11.6667H6.41659V7.58334H2.33325V6.41668H6.41659V2.33334H7.58325V6.41668H11.6666V7.58334Z",fill:"black"})})),{filled:!0}),Es=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M10.5 5.66125L9.6775 4.83875L7 7.51041L4.3225 4.83874L3.5 5.66125L7 9.16125L10.5 5.66125Z",fill:"black"})})),{filled:!0}),Ss=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M6.99992 2.33334L6.17742 3.15584L9.43242 6.41668H2.33325V7.58334H9.43242L6.17742 10.8442L6.99992 11.6667L11.6666 7.00001L6.99992 2.33334Z",fill:"black"})})),{filled:!0}),Cs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M3.5 8.33875L4.3225 9.16125L7 6.48959L9.6775 9.16125L10.5 8.33875L7 4.83875L3.5 8.33875Z",fill:"black"})})),{filled:!0}),Ts=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75H11.0833C11.725 1.75 12.25 2.275 12.25 2.91667V11.0833C12.25 11.725 11.725 12.25 11.0833 12.25H2.91667C2.275 12.25 1.75 11.725 1.75 11.0833V2.91667C1.75 2.275 2.275 1.75 2.91667 1.75ZM9.68333 4.43333L10.5 5.25L5.83333 9.91667L3.5 7.58333L4.31667 6.76667L5.83333 8.28333L9.68333 4.43333Z",fill:"black"})})),{filled:!0}),Os=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 2.91667V11.0833H2.91667V2.91667H11.0833ZM11.0833 1.75H2.91667C2.275 1.75 1.75 2.275 1.75 2.91667V11.0833C1.75 11.725 2.275 12.25 2.91667 12.25H11.0833C11.725 12.25 12.25 11.725 12.25 11.0833V2.91667C12.25 2.275 11.725 1.75 11.0833 1.75Z",fill:"black"})})),{filled:!0}),Ds=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.25009 9.43247L2.81759 6.99997L1.98926 7.82247L5.25009 11.0833L12.2501 4.0833L11.4276 3.2608L5.25009 9.43247Z",fill:"black"})})),{filled:!0}),Ps=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0834 3.73916L10.2609 2.91666L7.00008 6.17749L3.73925 2.91666L2.91675 3.73916L6.17758 6.99999L2.91675 10.2608L3.73925 11.0833L7.00008 7.82249L10.2609 11.0833L11.0834 10.2608L7.82258 6.99999L11.0834 3.73916Z",fill:"black"})})),{filled:!0}),Ns=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.00008 1.16666C3.78008 1.16666 1.16675 3.77999 1.16675 6.99999C1.16675 10.22 3.78008 12.8333 7.00008 12.8333C10.2201 12.8333 12.8334 10.22 12.8334 6.99999C12.8334 3.77999 10.2201 1.16666 7.00008 1.16666ZM6.41675 9.91666V8.74999H7.58342V9.91666H6.41675ZM6.41675 4.08332V7.58332H7.58342V4.08332H6.41675Z",fill:"black"})})),{filled:!0}),Is=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.34925 3.50001L6.51591 4.66668H11.6667V10.5H2.33341V3.50001H5.34925ZM5.83341 2.33334H2.33341C1.69175 2.33334 1.17258 2.85834 1.17258 3.50001L1.16675 10.5C1.16675 11.1417 1.69175 11.6667 2.33341 11.6667H11.6667C12.3084 11.6667 12.8334 11.1417 12.8334 10.5V4.66668C12.8334 4.02501 12.3084 3.50001 11.6667 3.50001H7.00008L5.83341 2.33334Z",fill:"black"})})),{filled:!0}),As=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 4.08333V6.41667H3.98417L6.0725 4.3225L5.25 3.5L1.75 7L5.25 10.5L6.0725 9.6775L3.98417 7.58333H12.25V4.08333H11.0833Z",fill:"black"})})),{filled:!0}),Ls=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.75 4.66667V3.5H12.25V4.66667H1.75ZM1.75 7.58333H12.25V6.41667H1.75V7.58333ZM1.75 10.5H12.25V9.33333H1.75V10.5Z",fill:"black"})})),{filled:!0}),Rs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.49992 5.83334C2.85825 5.83334 2.33325 6.35834 2.33325 7.00001C2.33325 7.64168 2.85825 8.16668 3.49992 8.16668C4.14159 8.16668 4.66659 7.64168 4.66659 7.00001C4.66659 6.35834 4.14159 5.83334 3.49992 5.83334ZM10.4999 5.83334C9.85825 5.83334 9.33325 6.35834 9.33325 7.00001C9.33325 7.64168 9.85825 8.16668 10.4999 8.16668C11.1416 8.16668 11.6666 7.64168 11.6666 7.00001C11.6666 6.35834 11.1416 5.83334 10.4999 5.83334ZM5.83325 7.00001C5.83325 6.35834 6.35825 5.83334 6.99992 5.83334C7.64159 5.83334 8.16659 6.35834 8.16659 7.00001C8.16659 7.64168 7.64159 8.16668 6.99992 8.16668C6.35825 8.16668 5.83325 7.64168 5.83325 7.00001Z",fill:"black"})})),{filled:!0}),js=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M9.16137 4.3225L8.33887 3.5L4.83887 7L8.33887 10.5L9.16137 9.6775L6.4897 7L9.16137 4.3225Z",fill:"black"})})),{filled:!0}),Ms=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.66137 3.5L4.83887 4.3225L7.51053 7L4.83887 9.6775L5.66137 10.5L9.16137 7L5.66137 3.5Z",fill:"black"})})),{filled:!0}),Fs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.61 7.74083L11.9525 11.0833L11.0833 11.9525L7.74083 8.61C7.11667 9.05917 6.36417 9.33333 5.54167 9.33333C3.4475 9.33333 1.75 7.63583 1.75 5.54167C1.75 3.4475 3.4475 1.75 5.54167 1.75C7.63583 1.75 9.33333 3.4475 9.33333 5.54167C9.33333 6.36417 9.05917 7.11667 8.61 7.74083ZM5.54167 2.91667C4.08917 2.91667 2.91667 4.08917 2.91667 5.54167C2.91667 6.99417 4.08917 8.16667 5.54167 8.16667C6.99417 8.16667 8.16667 6.99417 8.16667 5.54167C8.16667 4.08917 6.99417 2.91667 5.54167 2.91667Z",fill:"black"})})),{filled:!0}),Bs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.79287 3.5H2.99998V2.5H11.5V11H10.5V4.20711L3.35353 11.3536L2.64642 10.6464L9.79287 3.5Z",fill:"black"})})),{filled:!0}),zs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"})})),{filled:!0}),$s=ks((e=>Ge("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"}),We("path",{d:"M7.0013 9.91669C8.61213 9.91669 9.91797 8.61085 9.91797 7.00002C9.91797 5.38919 8.61213 4.08335 7.0013 4.08335C5.39047 4.08335 4.08464 5.38919 4.08464 7.00002C4.08464 8.61085 5.39047 9.91669 7.0013 9.91669Z",fill:"black"})]})),{filled:!0}),Us=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 2.33332H10.5V1.16666H9.33333V2.33332H4.66667V1.16666H3.5V2.33332H2.91667C2.26917 2.33332 1.75 2.85832 1.75 3.49999V11.6667C1.75 12.3083 2.26917 12.8333 2.91667 12.8333H11.0833C11.725 12.8333 12.25 12.3083 12.25 11.6667V3.49999C12.25 2.85832 11.725 2.33332 11.0833 2.33332ZM11.0833 11.6667H2.91667V5.24999H11.0833V11.6667ZM3.79167 7.58332C3.79167 6.77832 4.445 6.12499 5.25 6.12499C6.055 6.12499 6.70833 6.77832 6.70833 7.58332C6.70833 8.38832 6.055 9.04166 5.25 9.04166C4.445 9.04166 3.79167 8.38832 3.79167 7.58332Z",fill:"black"})})),{filled:!0}),Hs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M2.32812 7.58329V6.41663H11.6581V7.58329H2.32812Z",fill:"black"})})),{filled:!0}),Vs=({color:e,variant:t="body1",component:n,className:r,children:a,...o})=>{const i=bs(o);return We(n??{h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",label1:"label",label2:"label"}[t]??"span",{className:Qe(i.className,gs.root,gs[t],e&&gs[e],r),...ws(o),children:a})};Vs.classes=gs;const qs={root:"lsd-dropdown-item",icon:"lsd-dropdown-item__icon",label:"lsd-dropdown-item__label",error:"lsd-dropdown-item--error",disabled:"lsd-dropdown-item--disabled",selected:"lsd-dropdown-item--selected",withIcon:"lsd-dropdown-item--with-icon",small:"lsd-dropdown-item--small",medium:"lsd-dropdown-item--medium",large:"lsd-dropdown-item--large"},Ws=({label:e,size:t="large",withIcon:n,selected:r,disabled:a,className:o,...i})=>{const l=bs(i),s={color:"primary",className:qs.icon};return Ge("div",{role:"option","aria-selected":r?"true":"false",...ws(i),className:Qe(l.className,o,qs.root,qs[t],n&&qs.withIcon,a&&qs.disabled),children:[n&&We(r?Ts:Os,{...s}),We(Vs,{variant:"large"===t?"label1":"label2",component:"span",className:qs.label,children:e})]})};function Gs(e){for(var t=[],n=1;n{const[n,a]=r.useState({});return r.useEffect((()=>{const{width:t,height:n,top:r,left:o}=e.current.getBoundingClientRect();a({left:o+window.scrollX,width:t,top:r+n+window.scrollY})}),[t]),n},ru=({size:e="large",open:t,label:n,handleRef:a,onClose:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null);Ys(u,(e=>{t&&!e.composedPath().includes(a.current)&&o&&o()}));const c=nu(a,t);return We("ul",{...ws(l),ref:u,role:"listbox","aria-label":n,style:{...c,...l.style??{}},className:Qe(s.className,l.className,tu.root,tu[e],t&&tu.open),children:i})};ru.classes=tu;const au=r.createContext({initialized:!1}),ou=()=>{var e;return(null==(e=r.useContext(au))?void 0:e.initialized)??!1},iu=({parentId:e})=>{const t=r.useRef();return"undefined"==typeof window||t.current||(t.current=document.createElement("div")),r.useEffect((()=>{var n;if("undefined"==typeof window||!t.current)return;const r=document.querySelectorAll(`#${e}`);return null==(n=r[r.length-1])||n.appendChild(t.current),()=>{var n;try{null==(n=document.getElementById(e))||n.removeChild(t.current)}catch(r){}}}),[e,t.current]),t.current},lu=({id:e,children:t})=>ou()?We(su,{id:e,children:t}):We(qe,{}),su=({id:e,children:t})=>{const n=iu({parentId:"lsd-presentation"});return n?a.createPortal(t,n,e):We(qe,{})},uu={root:"lsd-autocomplete",label:"lsd-autocomplete__label",inputContainer:"lsd-autocomplete__input-container",input:"lsd-autocomplete__input",icon:"lsd-autocomplete__icon",dropdownItemPlaceholder:"lsd-autocomplete__dropdown-item-placeholder",disabled:"lsd-autocomplete--disabled",error:"lsd-autocomplete--error",large:"lsd-autocomplete--large",medium:"lsd-autocomplete--medium",small:"lsd-autocomplete--small",withIcon:"lsd-autocomplete--with-icon",outlined:"lsd-autocomplete--outlined",underlined:"lsd-autocomplete--underlined"},cu=({label:e,size:t="large",withIcon:n=!1,error:a=!1,disabled:o=!1,children:i,value:l,defaultValue:s,placeholder:u,onChange:c,options:d=[],inputProps:f={},variant:p="outlined",...h})=>{const m=bs(h),g=r.useRef(null),v=r.useRef(null),b=Ye({defaultValue:s,value:l,onChange:c,ref:g}),y=b.value,[w,x]=r.useState(!1),[k,_]=r.useState(),E=e=>{x(!1),_(e),b.setValue(e)},S=r.useMemo((()=>b.filled?d.filter((e=>new RegExp(`^${b.value}.+`,"i").test(e))).map((e=>[e,e.slice(0,y.length),e.slice(y.length)])):d),[b.value,d]);r.useEffect((()=>{!k&&b.filled&&!w&&x(!0)}),[b.value,k,w]);const C=!o&&w&&S.length>0&&b.filled,T=(null==f?void 0:f.id)??(h.id||"autocomplete")+"-input";return Ge("div",{ref:v,...ws(h),className:Qe(h.className,m.className,uu.root,uu[t],o&&uu.disabled,n&&uu.withIcon,"outlined"===p?uu.outlined:uu.underlined),children:[e&&We(Vs,{htmlFor:T,className:uu.label,variant:"label2",component:"label",children:e}),Ge("div",{className:uu.inputContainer,children:[We("input",{id:T,ref:g,value:b.value,placeholder:u,onChange:b.onChange,disabled:o,onFocus:()=>x(!0),...f,className:Qe(f.className,uu.input,a&&uu.error)}),n&&b.value?We("span",{className:uu.icon,onClick:()=>b.setValue(""),children:We(Ps,{color:"primary"})}):n&&!b.value?We("span",{className:uu.icon,children:We(Fs,{color:"primary"})}):null]}),We(lu,{id:"autocomplete",children:We(ru,{handleRef:v,open:C,onClose:()=>x(!1),size:t,...ys(h),children:S.map(((e,n)=>We(Ws,{size:t,tabIndex:0,label:Ge(qe,{children:[e[1],We("span",{className:uu.dropdownItemPlaceholder,children:e[2]})]}),onClick:()=>E(e[0]),onKeyDown:t=>"Enter"===t.key&&E(e[0])},n)))})})]})};cu.classes=uu;const du={root:"lsd-badge",label:"lsd-badge__label",outlined:"lsd-badge--outlined",filled:"lsd-badge--filled",disabled:"lsd-badge--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},fu=({variant:e="outlined",disabled:t,size:n="large",icon:r,iconDirection:a="left",children:o,...i})=>{const l=bs(i);return Ge("div",{"aria-label":o,...ws(i),className:Qe(i.className,l.className,du.root,du[e],t&&du.disabled,du[n]),children:["left"===a&&r,We(Vs,{component:"span",variant:"small"===n?"label2":"label1",className:du.label,children:o}),"right"===a&&r]})};fu.classes=du;const pu={root:"lsd-breadcrumb-item",outlined:"lsd-breadcrumb-item--outlined",itemLink:"lsd-breadcrumb-item__link",large:"lsd-breadcrumb-item--large",small:"lsd-breadcrumb-item--small"},hu=({size:e="large",label:t,link:n,linkComponent:r=(e=>We("a",{...e,children:e.children})),outlined:a,selected:o,ellipsisRef:i,onClick:l,className:s,...u})=>{const c=bs(u);return We("li",{...ws(u),className:Qe(c.className,pu.root,pu[e],s),"aria-selected":o?"true":"false",onClick:l,ref:i,children:We(r,{href:n,className:Qe(pu.itemLink,a&&pu.outlined),children:We(Vs,{color:"primary",component:"span",variant:"large"===e?"label1":"label2",children:t})})})};hu.classes=pu;const mu={root:"lsd-breadcrumb",list:"lsd-breadcrumb__list",listBox:"lsd-breadcrumb__dropdown-menu",open:"lsd-breadcrumb--open",disabled:"lsd-breadcrumb--disabled"},gu=({size:e="large",disabled:t=!1,ellipsis:n=!1,maxItems:a,value:o=[],onChange:i,options:l=[],...s})=>{const u=bs(s),c=r.useRef(null),[d,f]=r.useState(!1);a=Math.max(2,Math.min(a||2,l.length));const[p,...h]=l,[m,g]=n?[h.slice(0,h.length-a+1),h.slice(h.length-a+1)]:[[],h],v=t=>t.map(((t,n)=>We(hu,{outlined:n===g.length-1&&t!==p,label:t.value,link:t.link,linkComponent:null==t?void 0:t.linkComponent,size:e},n)));return r.useEffect((()=>{t&&d&&f(!1)}),[d,t]),Ge("div",{...ws(s),className:Qe(s.className,u.className,mu.root,t&&mu.disabled,d&&mu.open),children:[Ge("ul",{className:mu.list,children:[p&&v([p]),m.length>0&&We(hu,{ellipsisRef:c,label:"...",onClick:()=>{!t&&f((e=>!e))},size:e,...ys(s)}),v(g)]}),null!=(null==c?void 0:c.current)&&n&&a&&We(lu,{id:"breadcrumb",children:We(ru,{handleRef:c,open:d,onClose:()=>f(!1),className:Qe(mu.listBox),size:e,genericFontFamily:s.genericFontFamily,...ys(s),children:m.map(((e,t)=>We(hu,{label:e.value,link:e.link,className:pu.itemLink,linkComponent:null==e?void 0:e.linkComponent},t)))})})]})};gu.classes=mu;const vu=r.createContext(null),bu={root:"lsd-button",disabled:"lsd-button--disabled",large:"lsd-button--large",medium:"lsd-button--medium",small:"lsd-button--small",withIcon:"lsd-button--with-icon",outlined:"lsd-button--outlined",filled:"lsd-button--filled",text:"lsd-button__text",icon:"lsd-button__icon"},yu=({size:e,variant:t,disabled:n,icon:a,children:o,...i})=>{const l=r.useContext(vu),s=bs(i),u=bs(l||{}),c=s.className||u.className,d=e??(null==l?void 0:l.size)??"medium",f=t??(null==l?void 0:l.variant)??"outlined",p=n??(null==l?void 0:l.disabled)??!1;return We(qe,{children:Ge("button",{...ws(i),className:Qe(c,i.className,bu.root,bu[d],bu[f],p&&bu.disabled,a&&bu.withIcon),children:[We(Vs,{component:"span",className:bu.text,variant:"small"===d?"label2":"label1",children:o}),a&&We("span",{className:bu.icon,children:a})]})})};yu.classes=bu;const wu={root:"lsd-button-group",outlined:"lsd-button-group--outlined",filled:"lsd-button-group--filled",disabled:"lsd-button-group--disabled",small:"lsd-button-group--small",medium:"lsd-button-group--medium",large:"lsd-button-group--large"},xu=({size:e="large",disabled:t,variant:n="outlined",children:r,...a})=>{const o=bs(a);return We("div",{...ws(a),className:Qe(o.className,a.className,wu.root,wu[e],wu[n],t&&wu.disabled),children:We(vu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};xu.classes=wu;var ku={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function _u(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var Eu={date:_u({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:_u({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:_u({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Su={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Cu(e){return function(t,n){var r,a=n||{};if("formatting"===(a.context?String(a.context):"standalone")&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,i=a.width?String(a.width):o;r=e.formattingValues[i]||e.formattingValues[o]}else{var l=e.defaultWidth,s=a.width?String(a.width):e.defaultWidth;r=e.values[s]||e.values[l]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function Tu(e){return function(t,n){var r=String(t),a=n||{},o=a.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],l=r.match(i);if(!l)return null;var s,u=l[0],c=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth];return s="[object Array]"===Object.prototype.toString.call(c)?function(e,t){for(var n=0;n0?"in "+r:r+" ago":r},formatLong:Eu,formatRelative:function(e,t,n,r){return Su[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Cu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Cu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:Cu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Cu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Cu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ou={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},a=n.match(Ou.matchPattern);if(!a)return null;var o=a[0],i=n.match(Ou.parsePattern);if(!i)return null;var l=Ou.valueCallback?Ou.valueCallback(i[0]):i[0];return{value:l=r.valueCallback?r.valueCallback(l):l,rest:n.slice(o.length)}}),era:Tu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Tu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Tu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Tu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Tu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Pu(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Nu(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function Iu(e){Nu(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function Au(e,t){return Nu(2,arguments),function(e,t){Nu(2,arguments);var n=Iu(e).getTime(),r=Pu(t);return new Date(n+r)}(e,-Pu(t))}function Lu(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}}function Ru(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}}var ju={p:Ru,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),a=r[1],o=r[2];if(!o)return Lu(e,t);switch(a){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Lu(a,t)).replace("{{time}}",Ru(o,t))}};function Mu(e){return e.getTime()%6e4}var Fu=["D","DD"],Bu=["YY","YYYY"];function zu(e){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===e)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===e)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===e)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}function $u(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:Pu(a),i=null==n.weekStartsOn?o:Pu(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getUTCDay(),u=(s=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=new Date(0);u.setUTCFullYear(r+1,0,s),u.setUTCHours(0,0,0,0);var c=$u(u,t),d=new Date(0);d.setUTCFullYear(r,0,s),d.setUTCHours(0,0,0,0);var f=$u(d,t);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}function Hu(e){Nu(1,arguments);var t=Iu(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function Vu(e){Nu(1,arguments);var t=Iu(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=Hu(r),o=new Date(0);o.setUTCFullYear(n,0,4),o.setUTCHours(0,0,0,0);var i=Hu(o);return t.getTime()>=a.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function qu(e){Nu(1,arguments);var t=Iu(e),n=Hu(t).getTime()-function(e){Nu(1,arguments);var t=Vu(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),Hu(n)}(t).getTime();return Math.round(n/6048e5)+1}function Wu(e,t){Nu(1,arguments);var n=Iu(e),r=$u(n,t).getTime()-function(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.firstWeekContainsDate,o=null==a?1:Pu(a),i=null==n.firstWeekContainsDate?o:Pu(n.firstWeekContainsDate),l=Uu(e,t),s=new Date(0);return s.setUTCFullYear(l,0,i),s.setUTCHours(0,0,0,0),$u(s,t)}(n,t).getTime();return Math.round(r/6048e5)+1}function Gu(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return Gu("yy"===t?r%100:r,t.length)}(e,t)},Y:function(e,t,n,r){var a=Uu(e,r),o=a>0?a:1-a;return"YY"===t?Gu(o%100,2):"Yo"===t?n.ordinalNumber(o,{unit:"year"}):Gu(o,t.length)},R:function(e,t){return Gu(Vu(e),t.length)},u:function(e,t){return Gu(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Gu(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Gu(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):Gu(n+1,2)}(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return Gu(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var a=Wu(e,r);return"wo"===t?n.ordinalNumber(a,{unit:"week"}):Gu(a,t.length)},I:function(e,t,n){var r=qu(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):Gu(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):function(e,t){return Gu(e.getUTCDate(),t.length)}(e,t)},D:function(e,t,n){var r=function(e){Nu(1,arguments);var t=Iu(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=n-t.getTime();return Math.floor(r/864e5)+1}(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):Gu(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var a=e.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Gu(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var a=e.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Gu(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return Gu(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,a=e.getUTCHours();switch(r=12===a?"noon":0===a?"midnight":a/12>=1?"pm":"am",t){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,a=e.getUTCHours();switch(r=a>=17?"evening":a>=12?"afternoon":a>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return function(e,t){return Gu(e.getUTCHours()%12||12,t.length)}(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):function(e,t){return Gu(e.getUTCHours(),t.length)}(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):Gu(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):Gu(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):function(e,t){return Gu(e.getUTCMinutes(),t.length)}(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):function(e,t){return Gu(e.getUTCSeconds(),t.length)}(e,t)},S:function(e,t){return function(e,t){var n=t.length,r=e.getUTCMilliseconds();return Gu(Math.floor(r*Math.pow(10,n-3)),t.length)}(e,t)},X:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return Yu(a);case"XXXX":case"XX":return Xu(a);default:return Xu(a,":")}},x:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Yu(a);case"xxxx":case"xx":return Xu(a);default:return Xu(a,":")}},O:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Qu(a,":");default:return"GMT"+Xu(a,":")}},z:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Qu(a,":");default:return"GMT"+Xu(a,":")}},t:function(e,t,n,r){var a=r._originalDate||e;return Gu(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,n,r){return Gu((r._originalDate||e).getTime(),t.length)}};function Qu(e,t){var n=e>0?"-":"+",r=Math.abs(e),a=Math.floor(r/60),o=r%60;if(0===o)return n+String(a);var i=t||"";return n+String(a)+i+Gu(o,2)}function Yu(e,t){return e%60==0?(e>0?"-":"+")+Gu(Math.abs(e)/60,2):Xu(e,t)}function Xu(e,t){var n=t||"",r=e>0?"-":"+",a=Math.abs(e);return r+Gu(Math.floor(a/60),2)+n+Gu(a%60,2)}var Ku=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ju=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ec=/^'([^]*?)'?$/,tc=/''/g,nc=/[a-zA-Z]/;function rc(e,t,n){Nu(2,arguments);var r=String(t),a=n||{},o=a.locale||Du,i=o.options&&o.options.firstWeekContainsDate,l=null==i?1:Pu(i),s=null==a.firstWeekContainsDate?l:Pu(a.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=o.options&&o.options.weekStartsOn,c=null==u?0:Pu(u),d=null==a.weekStartsOn?c:Pu(a.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!o.localize)throw new RangeError("locale must contain localize property");if(!o.formatLong)throw new RangeError("locale must contain formatLong property");var f=Iu(e);if(!function(e){Nu(1,arguments);var t=Iu(e);return!isNaN(t)}(f))throw new RangeError("Invalid time value");var p=function(e){var t=new Date(e.getTime()),n=Math.ceil(t.getTimezoneOffset());return t.setSeconds(0,0),6e4*n+(n>0?(6e4+Mu(t))%6e4:Mu(t))}(f),h=Au(f,p),m={firstWeekContainsDate:s,weekStartsOn:d,locale:o,_originalDate:f},g=r.match(Ju).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,ju[t])(e,o.formatLong,m):e})).join("").match(Ku).map((function(e){if("''"===e)return"'";var t=e[0];if("'"===t)return function(e){return e.match(ec)[1].replace(tc,"'")}(e);var n=Zu[t];if(n)return!a.useAdditionalWeekYearTokens&&function(e){return-1!==Bu.indexOf(e)}(e)&&zu(e),!a.useAdditionalDayOfYearTokens&&function(e){return-1!==Fu.indexOf(e)}(e)&&zu(e),n(h,e,o.localize,m);if(t.match(nc))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return e})).join("");return g}function ac(e,t){Nu(2,arguments);var n=Iu(e),r=Pu(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n}function oc(e,t){Nu(1,arguments);var n=e||{},r=Iu(n.start),a=Iu(n.end).getTime();if(!(r.getTime()<=a))throw new RangeError("Invalid interval");var o=[],i=r;i.setHours(0,0,0,0);var l=t&&"step"in t?Number(t.step):1;if(l<1||isNaN(l))throw new RangeError("`options.step` must be a number greater than 1");for(;i.getTime()<=a;)o.push(Iu(i)),i.setDate(i.getDate()+l),i.setHours(0,0,0,0);return o}function ic(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:Pu(a),i=null==n.weekStartsOn?o:Pu(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getDay(),u=6+(s=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getDay(),u=(s=a?u-a:6-a+u+1).keys()).fill(0),oc({start:s,end:c}).map((function(e){return{date:e,dayLabel:i(e)}})))}({year:t,month:n,firstDayOfWeek:o,dayLabelFormat:l})}),[t,n,o,l]),weekdayLabels:r.useMemo((function(){return function(e){var t=void 0===e?{}:e,n=t.firstDayOfWeek,r=void 0===n?1:n,a=t.weekdayLabelFormat,o=void 0===a?function(e){return rc(e,"iiiiii")}:a,i=new Date;return oc({start:ac(sc(i),r),end:ac(ic(i),r)}).reduce((function(e,t){return e.push(o(t)),e}),[])}({firstDayOfWeek:o,weekdayLabelFormat:u})}),[o,u]),monthLabel:d(new Date(t,n))}}function pc(e,t){Nu(2,arguments);var n=Iu(e),r=Iu(t);return n.getTime()r.getTime()}function mc(e,t){Nu(2,arguments);var n=t||{},r=Iu(e).getTime(),a=Iu(n.start).getTime(),o=Iu(n.end).getTime();if(!(a<=o))throw new RangeError("Invalid interval");return r>=a&&r<=o}function gc(e){Nu(1,arguments);var t=Iu(e);return t.setHours(0,0,0,0),t}function vc(e,t){Nu(2,arguments);var n=gc(e),r=gc(t);return n.getTime()===r.getTime()}function bc(e,t){Nu(2,arguments);var n=Iu(e),r=Pu(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var a=n.getDate(),o=new Date(n.getTime());return o.setMonth(n.getMonth()+r+1,0),a>=o.getDate()?o:(n.setFullYear(o.getFullYear(),o.getMonth(),a),n)}var yc=function(e,t){return void 0===e&&(e=[]),e.some((function(e){return vc(t,e)}))};function wc(e){var t=lc(e);return{year:function(e){return Nu(1,arguments),Iu(e).getFullYear()}(t),month:function(e){return Nu(1,arguments),Iu(e).getMonth()}(t),date:t}}function xc(e,t){var n=wc(t||gc(Date.now())),r=n.date,a=[n];return e>1&&(a=Array.from(Array(e-1).keys()).reduce((function(e){return r=bc(e[e.length-1].date,1),e.concat([wc(r)])}),a)),a}function kc(e,t,n,r){var a=e[r?n>0?0:e.length-r:n>0?e.length-1:0].date;return Array.from(Array(t).keys()).reduce((function(e){return a=0===e.length?bc(a,n):bc(a,n>=0?1:-1),n>0?e.concat([wc(a)]):[wc(a)].concat(e)}),[])}function _c(e){var t=e.startDate,n=e.endDate,r=e.isDateBlocked,a=e.minBookingDays,o=e.exactMinBookingDays,i=e.minBookingDate,l=e.maxBookingDate,s=!i||!pc(t,ac(i,-1)),u=!l||!hc(ac(t,a-1),l);return!((!t||1!==a||n||r(t))&&(t&&a>1&&!n&&!o||t&&a>0&&o&&s&&u||t&&a>0&&o&&!i&&!l?oc({start:t,end:ac(t,a-1)}).some((function(e){return r(e)})):!t||!n||o||pc(n,ac(t,a-1))||oc({start:t,end:n}).some((function(e){return r(e)}))))}function Ec(e){var t=e.startDate,n=e.endDate,a=e.focusedInput,o=e.minBookingDate,i=e.maxBookingDate,l=e.onDatesChange,s=e.initialVisibleMonth,u=e.exactMinBookingDays,c=void 0!==u&&u,d=e.minBookingDays,f=void 0===d?1:d,p=e.numberOfMonths,h=void 0===p?2:p,m=e.firstDayOfWeek,g=void 0===m?1:m,v=e.isDateBlocked,b=void 0===v?function(){return!1}:v,y=e.unavailableDates,w=void 0===y?[]:y,x=e.changeActiveMonthOnSelect,k=void 0===x||x,_=r.useState((function(){return xc(h,t||s||null)})),E=_[0],S=_[1],C=r.useState(null),T=C[0],O=C[1],D=r.useState(t),P=D[0],N=D[1];r.useEffect((function(){return"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("keydown",R),function(){window.removeEventListener&&window.removeEventListener("keydown",R)}}));var I=function(e){return yc(w,e)||b(e)},A=function(e){N(e),(!P||P&&!vc(e,P))&&S(xc(h,e))},L=function(e){return function(e){var t=e.date,n=e.minBookingDate,r=e.maxBookingDate,a=e.isDateBlockedFn,o=e.startDate,i=e.endDate,l=e.minBookingDays,s=void 0===l?1:l,u=e.unavailableDates,c=void 0===u?[]:u,d=n?new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0):n,f=r?new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0):r;return!!(yc(c,t)||d&&pc(t,d)||f&&hc(t,f)||o&&!i&&s>1&&mc(t,{start:o,end:ac(o,s-2)})||a&&a(t))}({date:e,minBookingDate:o,maxBookingDate:i,startDate:t,endDate:n,minBookingDays:f,isDateBlockedFn:I})};function R(e){if(("ArrowRight"===e.key||"ArrowLeft"===e.key||"ArrowDown"===e.key||"ArrowUp"===e.key)&&!P){var t=E[0];A(t.date),S(xc(h,t.date))}}var j=r.useCallback((function(){S(kc(E,h,-1)),N(null)}),[E,h]),M=r.useCallback((function(){S(kc(E,h,-1,1)),N(null)}),[E,h]),F=r.useCallback((function(){S(kc(E,h,1)),N(null)}),[E,h]),B=r.useCallback((function(){S(kc(E,h,1,1)),N(null)}),[E,h]),z=r.useCallback((function(e){S(xc(h,e)),N(null)}),[h]),$=r.useCallback((function(e){void 0===e&&(e=1),S(kc(E,h,-(12*e-h+1))),N(null)}),[E,h]),U=r.useCallback((function(e){void 0===e&&(e=1),S(kc(E,h,12*e-h+1)),N(null)}),[E,h]);return{firstDayOfWeek:g,activeMonths:E,isDateSelected:function(e){return function(e,t,n){return!(!t||!n)&&mc(e,{start:t,end:n})}(e,t,n)},isDateHovered:function(e){return a=(r={date:e,hoveredDate:T,startDate:t,endDate:n,minBookingDays:f,exactMinBookingDays:c,isDateBlocked:I}).date,o=r.startDate,i=r.endDate,l=r.isDateBlocked,u=r.minBookingDays,(s=r.hoveredDate)&&u>1&&r.exactMinBookingDays&&mc(a,{start:s,end:ac(s,u-1)})?!oc({start:s,end:ac(s,u-1)}).some((function(e){return l(e)})):o&&!i&&s&&mc(a,{start:o,end:ac(o,u-1)})&&vc(o,s)&&u>1?!oc({start:o,end:ac(o,u-1)}).some((function(e){return l(e)})):!(!o||i||!s||pc(s,o)||!mc(a,{start:o,end:s})||oc({start:o,end:s}).some((function(e){return l(e)})));var r,a,o,i,l,s,u},isFirstOrLastSelectedDate:function(e){return function(e,t,n){return!!(t&&vc(e,t)||n&&vc(e,n))}(e,t,n)},isStartDate:function(e){return function(e,t){return!(!t||!vc(e,t))}(e,t)},isEndDate:function(e){return function(e,t){return!(!t||!vc(e,t))}(e,n)},isDateBlocked:L,numberOfMonths:h,isDateFocused:function(e){return!!P&&vc(e,P)},focusedDate:P,hoveredDate:T,onResetDates:function(){l({startDate:null,endDate:null,focusedInput:"startDate"})},onDateHover:function(e){if(e){if(e){var r=!L(e)||t&&vc(e,t),a=!o||!pc(e,ac(o,-1)),l=!i||!hc(e,i),s=ac(e,f-1),u=!o||!pc(s,o),d=!i||!hc(s,i),p=c&&f>1&&a&&l&&u&&d,h=t&&!n&&!c&&a&&l,m=!(f>1&&t)||mc(e,{start:t,end:ac(t,f-2)}),g=t&&vc(e,t)&&m;r&&(p||h||g)?O(e):null!==T&&O(null)}}else O(null)},onDateSelect:function(e){("endDate"===a||"startDate"===a)&&f>0&&c&&_c({minBookingDays:f,exactMinBookingDays:c,minBookingDate:o,maxBookingDate:i,isDateBlocked:I,startDate:e,endDate:null})?l({startDate:e,endDate:ac(e,f-1),focusedInput:null}):("endDate"===a&&t&&pc(e,t)||"startDate"===a&&n&&hc(e,n))&&!c&&_c({minBookingDays:f,isDateBlocked:I,startDate:e,endDate:null})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"startDate"===a&&!c&&_c({minBookingDays:f,isDateBlocked:I,endDate:n,startDate:e})?l({endDate:n,startDate:e,focusedInput:"endDate"}):"startDate"===a&&!c&&_c({minBookingDays:f,isDateBlocked:I,endDate:null,startDate:e})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"endDate"===a&&t&&!pc(e,t)&&!c&&_c({minBookingDays:f,isDateBlocked:I,startDate:t,endDate:e})&&l({startDate:t,endDate:e,focusedInput:null}),"endDate"!==a&&(!P||P&&!vc(e,P))&&k&&S(xc(h,e))},onDateFocus:A,goToPreviousMonths:j,goToPreviousMonthsByOneMonth:M,goToNextMonths:F,goToNextMonthsByOneMonth:B,goToDate:z,goToPreviousYear:$,goToNextYear:U}}const Sc={root:"lsd-calendar",container:"lsd-calendar-container",small:"lsd-calendar--small",medium:"lsd-calendar--medium",large:"lsd-calendar--large",open:"lsd-calendar--open",disabled:"lsd-calendar--disabled",header:"lsd-calendar-header",weekDay:"lsd-calendar__week_day",button:"lsd-calendar__button",changeYear:"lsd-calendar__change-year",changeYearActive:"lsd-calendar__change-year--active",changeYearIconContainer:"lsd-calendar__change-year-icon-container",year:"lsd-calendar-year",month:"lsd-calendar-month",day:"lsd-calendar-day",yearAndIcon:"lsd-calendar__year-and-icon",monthAndYear:"lsd-calendar__month-and-year",dayContainer:"lsd-calendar-day__container",dayRange:"lsd-calendar-day--range",daySelected:"lsd-calendar-day--selected",dayDisabled:"lsd-calendar-day--disabled",dayIsToday:"lsd-calendar-day--today",dayBorderLeft:"lsd-calendar-day--border-left",dayBorderRight:"lsd-calendar-day--border-right",dayBorderLeftAndRight:"lsd-calendar-day--border-left-and-right",dayBorderTopAndBottom:"lsd-calendar-day--border-top-and-bottom",todayIndicator:"lsd-calendar-day__today_indicator",monthTable:"lsd-calendar__month-table",nextMonthButton:"lsd-calendar__next-month-button",previousMonthButton:"lsd-calendar__previous-month-button",yearDropdown:"lsd-calendar__year-dropdown",yearDropdownHidden:"lsd-calendar__year-dropdown--hidden"},Cc=r.createContext(null),Tc=()=>r.useContext(Cc),Oc=(e,t,n)=>{if(!e)return{isValid:!1,date:null};const r=new Date(e+"T00:00:00");return{isValid:!Number.isNaN(+r)&&r>=t&&r<=n,date:r}},Dc=e=>new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().split("T")[0],Pc=e=>e.setHours(0,0,0,0),Nc=(e,t,n)=>!!(e&&t&&n)&&(Pc(t)<=Pc(e)&&Pc(n)>=Pc(e)),Ic=(e,t)=>{if(!e||!t)return!1;return Dc(e)===Dc(t)},Ac=e=>{const t=(e=>{const t=e.find((e=>"number"!=typeof e));return t?new Date(t.date):new Date})(e),n=new Date(t);n.setDate(n.getDate()-t.getDay());const r=[];for(let a=0;a<42;a++){const e=new Date(n);e.setDate(e.getDate()+a),r.push(e)}return r},Lc=(e,t)=>e&&e===t?null:t;function Rc(e,t){if(!e||!t)return!0;let n=new Date(Dc(new Date(e)));return new Date(Dc(new Date(t)))>n}const jc=(e,t)=>"large"===t?"startDate"===e?130:291:"medium"===t?"startDate"===e?120:267:"small"===t?"startDate"===e?107:239:0,Mc=({day:e,index:t,fullMonthDays:n,disabled:a=!1})=>{const o=n[t],{mode:i,startDate:l,endDate:s,onDateSelect:u}=Tc(),c=r.useRef(null),d=Pc(o)===Pc(new Date),f="range"===i&&Nc(o,l,s),p=r.useCallback((()=>u(o)),[o,u]),h=Ic(o,l),m="range"===i&&Ic(o,s),g=h||m||f;if(!e)return null;const v=((e,t,n,r,a)=>{if(!n)return"";if(!r||!a)return Sc.dayBorderLeftAndRight;const{prevIndex:o,nextIndex:i}=((e,t)=>{const n=e-1,r=e+1;return{prevIndex:n>=0?n:null,nextIndex:r{const o=r.useRef(null),i=r.useRef(null),{goToDate:l,changeYearMode:s,setChangeYearMode:u}=Tc(),c=r.useRef(null),{y:d}=eu(c),[f,p]=r.useState((()=>parseInt(e)-a)),[h,m]=r.useState((()=>parseInt(e)+a)),g=Array.from({length:h-f+1},((e,t)=>f+t));Ys(o,(()=>{u(!1)}));return r.useEffect((()=>{if(s&&i.current&&c.current){const e=i.current.offsetTop,t=i.current.offsetHeight,n=e-c.current.clientHeight/2+t/2;c.current.scrollTop=n}}),[s]),r.useEffect((()=>{var e,t;const n=null==(e=null==c?void 0:c.current)?void 0:e.scrollHeight,r=null==(t=null==c?void 0:c.current)?void 0:t.clientHeight;if(!n||!r)return;const o=d/(n-r)*100;o>90&&m((e=>Math.min(e+a,Gc))),o<10&&p((e=>Math.max(e-a,Wc)))}),[d,a]),Ge("div",{ref:o,className:Qe(Sc.changeYear,s&&Sc.changeYearActive),onClick:()=>{u(!s)},children:[Ge("div",{className:Qe(Sc.year,Sc.yearAndIcon),children:[We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:e}),We("div",{className:Sc.changeYearIconContainer,children:We(s?Cs:Es,{color:"primary"})})]}),We("div",{className:Qe(Sc.yearDropdown,!s&&Sc.yearDropdownHidden),ref:c,children:g.map((r=>We("div",{className:Sc.year,onClick:()=>(e=>{const n=new Date(e,t,1);l(n),u(!1)})(r),ref:r===parseInt(e)?i:null,children:We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:r})},r)))})]})},Bc=({direction:e,onClick:t,className:n})=>{const r="previous"===e?js:Ms;return We("button",{className:Qe(Sc.button,n),type:"button",onClick:t,children:We(r,{color:"primary"})})},zc=({monthLabel:e,monthNumber:t,size:n})=>{const{goToPreviousMonths:r,goToNextMonths:a}=Tc(),[o,i]=e.split(" ");return Ge("div",{className:Sc.header,children:[We(Bc,{direction:"previous",onClick:r,className:Sc.previousMonthButton}),Ge("div",{className:Sc.monthAndYear,children:[We(Vs,{className:Sc.month,component:"span",variant:"large"===n?"label1":"label2",children:o}),We(Fc,{year:i,monthNumber:t,size:n})]}),We(Bc,{direction:"next",onClick:a,className:Sc.nextMonthButton})]})},$c=({weekdayLabels:e})=>We("tr",{children:e.map(((e,t)=>We("th",{children:We("div",{className:Sc.weekDay,children:We(Vs,{variant:"label2",children:e[0]})})},t)))}),Uc=({days:e})=>{const t=Ac(e),n=new Date(t[15]).getMonth();return We(qe,{children:Array.from({length:6}).map(((e,r)=>We("tr",{children:Array.from({length:7}).map(((e,a)=>{const o=7*r+a,i=t[o];return We(Mc,{index:o,day:i.getDate().toString(),fullMonthDays:t,disabled:i.getMonth()!==n},`day-${o}`)}))},`week-${r}`)))})},Hc=({size:e="large",year:t,month:n,firstDayOfWeek:r})=>{const a=Tc(),o=(null==a?void 0:a.size)??e,{days:i,weekdayLabels:l,monthLabel:s}=fc({year:t,month:n,firstDayOfWeek:r});return Ge(qe,{children:[We(zc,{monthLabel:s,monthNumber:n,size:o}),Ge("table",{className:Sc.monthTable,children:[We("thead",{children:We($c,{weekdayLabels:l})}),We("tbody",{children:We(Uc,{days:i})})]})]})},Vc={root:"lsd-tooltip-base",arrowTip:"lsd-tooltip-base__arrow-tip",content:"lsd-tooltip-base__content"},qc=({children:e,arrowOffset:t,arrowPosition:n="top",arrowSize:r=10,rootRef:a,...o})=>{const i=bs(o),l={width:`${r}px`,height:`${r}px`,transform:"rotate(45deg)"};return["top","bottom"].includes(n)?(l.left=`${t}px`,l[n]=`-${r/2}px`):(l.top=`${t}px`,l[n]=`-${r/2}px`),We("div",{ref:a,...ws(o),className:Qe(i.className,o.className,Vc.root),children:t?Ge(qe,{children:[We("div",{className:Vc.arrowTip,style:l}),We("div",{className:Vc.content,children:e})]}):e})};qc.classes=Vc;const Wc=1850,Gc=2100,Zc=({open:e,handleRef:t,size:n="large",mode:a="date",disabled:o=!1,onStartDateChange:i,onEndDateChange:l,onClose:s,onCalendarClickaway:u,startDate:c,endDate:d,calendarType:f="startDate",minDate:p=new Date(Wc,0,1),maxDate:h=new Date(Gc,0,1),tooltipArrowOffset:m,...g})=>{const v=bs(g),b=r.useRef(null),[y,w]=r.useState(c?Oc(c,p,h).date:null),[x,k]=r.useState(d?Oc(d,p,h).date:null),[_,E]=r.useState(!1);Ys(b,(t=>{e&&(u&&u(t),void 0===e&&s&&s())}));const{activeMonths:S,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P}=Ec({startDate:y,endDate:x,focusedInput:"startDate",onDatesChange:e=>{const t=((e,t,n,r)=>{let a=t,o=n;const i=r.startDate;return i?("startDate"===e?(!o||o&&i.getTime()<=o.getTime())&&(a=i):"endDate"===e&&(!a||a&&i.getTime()>=a.getTime())&&(o=i),{newStartDate:a,newEndDate:o}):{newStartDate:a,newEndDate:o}})(f,y,x,e),{newStartDate:n,newEndDate:r}=t;n!==y&&(null==i||i(n??new Date),w(n)),r!==x&&"range"===a&&(null==l||l(r??new Date),k(r))},numberOfMonths:1});r.useEffect((()=>{const e=Oc(c,p,h);if(Ic(e.date,y)||w(e.isValid?e.date:null),"range"===a){const e=Oc(d,p,h);Ic(e.date,x)||k(e.isValid?e.date:null)}}),[c,d,a,p,h,y,x]),r.useEffect((()=>{y&&C(y)}),[y]),r.useEffect((()=>{x&&C(x)}),[x]);const N=nu(t,e);return We(Cc.Provider,{value:{size:n,mode:a,startDate:y,endDate:x,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P,changeYearMode:_,setChangeYearMode:E},children:We(qc,{...g,className:Qe({...ws(g)},v.className,g.className,Sc.root,Sc[n],e&&Sc.open,o&&Sc.disabled),rootRef:b,style:{...N,...g.style??{}},arrowOffset:m,children:We("div",{className:Qe(Sc.container),children:S.map(((e,t)=>We(Hc,{year:e.year,month:e.month,firstDayOfWeek:0,size:n},`${e.year}-${e.month}-${t}`)))})})})};Zc.classes=Sc;const Qc={root:"lsd-card",small:"lsd-card--small",medium:"lsd-card--medium",large:"lsd-card--large"},Yc=r.createContext(null),Xc=({size:e="large",children:t,...n})=>{const r=bs(n);return We(Yc.Provider,{value:{size:e},children:We("div",{...ws(n),className:Qe(r.className,Qc.root,Qc[e]),children:t})})};Xc.classes=Qc;const Kc={root:"lsd-card-body"},Jc=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,t.className,Kc.root),children:e})};Jc.classes=Kc;const ed={root:"lsd-card-header",title:"lsd-card-header__title",small:"lsd-card-header--small",medium:"lsd-card-header--medium",large:"lsd-card-header--large"},td=({size:e="large",children:t,...n})=>{const a=bs(n),o=r.useContext(Yc),i=(null==o?void 0:o.size)??e;return We("div",{...ws(n),className:Qe(a.className,n.className,ed.root,ed[i]),children:We(Vs,{className:ed.title,component:"div",variant:"large"===i?"label1":"label2",children:t})})};td.classes=ed;const nd=r.createContext(null),rd=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75C2.27233 1.75 1.75 2.27233 1.75 2.91667V11.0833C1.75 11.7277 2.27233 12.25 2.91667 12.25H11.0833C11.7277 12.25 12.25 11.7277 12.25 11.0833V2.91667C12.25 2.27233 11.7277 1.75 11.0833 1.75H2.91667ZM9.91667 6.41667H4.08333V7.58333H9.91667V6.41667Z",fill:"black"})})),{filled:!0}),ad={root:"lsd-checkbox",input:"lsd-checkbox__input",icon:"lsd-checkbox__icon",label:"lsd-checkbox__label",focused:"lsd-checkbox--focused",disabled:"lsd-checkbox--disabled",indeterminate:"lsd-checkbox--indeterminate",large:"lsd-checkbox--large",medium:"lsd-checkbox--medium",small:"lsd-checkbox--small"},od=({name:e,size:t="large",onChange:n,checked:a,defaultChecked:o,disabled:i=!1,indeterminate:l=!1,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),[p,h]=r.useState(!1),m=Ye({value:a,defaultValue:o??!1,onChange:n,ref:f}),g=r.useContext(nd),v=(null==g?void 0:g.size)??t;return r.useEffect((()=>{if(!f.current)return;const e=()=>h(!0),t=()=>h(!1);return f.current.addEventListener("focus",e),f.current.addEventListener("blur",t),()=>{var n,r;null==(n=f.current)||n.removeEventListener("focus",e),null==(r=f.current)||r.removeEventListener("blur",t)}}),[f.current]),Ge(Vs,{color:"primary",variant:"large"===v?"label1":"label2",component:"label","aria-disabled":i?"true":"false",...ws(c),className:Qe(d.className,c.className,ad.root,ad[v],p&&ad.focused,i&&ad.disabled,l&&ad.indeterminate),children:[We("input",{ref:f,name:e,type:"checkbox",disabled:i,checked:m.value,onChange:m.onChange,defaultChecked:o,className:Qe(s.className,ad.input),...s}),l?We(rd,{color:"primary",focusable:!1}):m.value?We(Ts,{color:"primary",focusable:!1}):We(Os,{color:"primary",focusable:!1}),We("span",{className:ad.label,children:u})]})};od.classes=ad;const id={root:"lsd-checkbox-group",label:"lsd-checkbox-group__label"},ld=({size:e="large",label:t,children:n,...r})=>{const a=bs(r);return We(nd.Provider,{value:{size:e},children:Ge("div",{...ws(r),className:Qe(a.className,r.className,id.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:id.label,...ys(r),children:t}),n]})})};ld.classes=id;const sd={root:"lsd-collapse-header",trigger:"lsd-collapse-header__trigger",label:"lsd-collapse-header__label",icons:"lsd-collapse-header__icons",icon:"lsd-collapse-header__icon",menuIcon:"lsd-collapse-header__menu-icon",open:"lsd-collapse-header--open",disabled:"lsd-collapse-header--disabled",small:"lsd-collapse-header--small",medium:"lsd-collapse-header--medium",large:"lsd-collapse-header--large"},ud=({label:e,disabled:t=!1,open:n,setOpen:r,size:a="large",onTrigger:o,...i})=>{const l=bs(i);return We("div",{...ws(i),className:Qe(l.className,i.className,sd.root,sd[a],t&&sd.disabled,n&&sd.open),children:Ge("button",{className:Qe(sd.trigger),onClick:o,children:[We(Vs,{color:"primary",component:"label",variant:"small"===a?"label2":"label1",className:sd.label,children:e}),We("div",{className:sd.icons,children:We(n?Cs:Es,{color:"primary",className:sd.menuIcon})})]})})};ud.classes=sd;const cd={root:"lsd-collapse",content:"lsd-collapse__content",open:"lsd-collapse--open",disabled:"lsd-collapse--disabled"},dd=({label:e,disabled:t=!1,size:n="large",open:a,children:o,...i})=>{const l=bs(i),s=r.useRef(null),[u,c]=r.useState(a??!1),d=e=>{if(void 0===a)return c(e);i.onChange&&i.onChange(e)};return r.useEffect((()=>{t&&u&&d(!1)}),[t,u,d]),r.useEffect((()=>{void 0!==a&&c(a)}),[a]),Ge("div",{...ws(i),ref:s,className:Qe(l.className,i.className,cd.root,t&&cd.disabled,u&&cd.open),children:[We(ud,{label:e,open:u,setOpen:c,size:n,onTrigger:()=>!t&&d(!u),disabled:t,...ys(i)}),u&&We("div",{className:cd.content,children:o})]})};dd.classes=cd;const fd={root:"lsd-date-field",label:"lsd-date-field__label",inputContainer:"lsd-date-field__input-container",input:"lsd-date-field__input-container__input",inputFilled:"lsd-date-field__input-container__input--filled",icon:"lsd-date-field__input-container__icon",noIcon:"lsd-date-field__input-container__no-icon",iconButton:"lsd-date-field__input-container__icon-button",supportingText:"lsd-date-field__supporting-text",disabled:"lsd-date-field--disabled",error:"lsd-date-field--error",large:"lsd-date-field--large",medium:"lsd-date-field--medium",small:"lsd-date-field--small",outlined:"lsd-date-field--outlined",underlined:"lsd-date-field--underlined"},pd=({label:e,size:t="large",error:n=!1,errorIcon:a=!1,clearButton:o,supportingText:i,children:l,value:s,placeholder:u,defaultValue:c,disabled:d,onChange:f,icon:p,onIconClick:h,inputProps:m={},calendarIconRef:g,variant:v="underlined",...b})=>{const y=bs(b),w=r.useRef(null),x=Ye({defaultValue:c,value:s,onChange:f,ref:w}),k=(null==m?void 0:m.id)??(b.id||"date-field")+"-input";return Ge("div",{"aria-disabled":d?"true":"false",...b,className:Qe({...ws(b)},b.className,y.className,fd.root,fd[t],d&&fd.disabled,n&&fd.error),children:[e&&We(Vs,{htmlFor:k,className:fd.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Qe(fd.inputContainer,"outlined"===v?fd.outlined:fd.underlined),children:[We("input",{id:k,type:"date",placeholder:u,...m,ref:w,value:x.value||"",onChange:x.onChange,className:Qe(m.className,fd.input,x.filled&&fd.inputFilled),max:m.max||"9999-12-31"}),p?We("span",{className:fd.icon,onClick:()=>!d&&h&&h(),ref:g,children:p}):n&&a?We("span",{className:fd.icon,children:We(Ns,{color:"primary"})}):o&&x.filled?We("span",{onClick:()=>!d&&x.setValue(""),className:fd.icon,children:We(Ps,{color:"primary"})}):We("span",{className:fd.noIcon})]}),i&&We("div",{className:Qe(fd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:i})}),l]})};pd.classes=fd;const hd={root:"lsd-date-picker",calendar:"lsd-date-picker__calendar",large:"lsd-date-picker--large",medium:"lsd-date-picker--medium",small:"lsd-date-picker--small"},md=(e,t)=>t&&(null==e?void 0:e.composedPath().includes(t))||!1,gd=({label:e,size:t="large",value:n,onChange:a,withCalendar:o=!0,variant:i="underlined",...l})=>{const s=bs(l),u=r.useRef(null),c=r.useRef(null),[d,f]=r.useState(!1),p=void 0!==n,h=Ye({value:n,defaultValue:"",onChange:a,getInput:()=>{var e;return null==(e=u.current)?void 0:e.querySelector(`input.${pd.classes.input}`)}});return We("div",{id:(l.id||"date-picker")+"-input",ref:u,className:Qe({...ws(l)},l.className,s.className,hd.root,hd[t]),children:We(pd,{label:e,size:t,variant:i,icon:o&&We(Us,{color:"primary"}),onIconClick:()=>f((e=>!e)),value:p||d?h.value:void 0,onChange:h.onChange,calendarIconRef:c,...l,children:We(lu,{id:"calendar",children:o&&We(Zc,{...ys(l),onStartDateChange:e=>(e=>h.setValue(Dc(e)))(e),open:d,onCalendarClickaway:e=>{md(e,c.current)||f(!1)},handleRef:u,startDate:h.value,disabled:l.disabled,className:hd.calendar})})})})};gd.classes=hd;const vd={root:"lsd-date-range-picker",calendar:"lsd-date-picker__calendar",withCalendar:"lsd-date-range-picker--with-calendar",openCalendar:"lsd-date-range-picker--calendar-open",disabled:"lsd-date-range-picker--disabled",inputContainer:"lsd-date-range-picker__input-container",icon:"lsd-date-range-picker__icon",large:"lsd-date-range-picker--large",medium:"lsd-date-range-picker--medium",small:"lsd-date-range-picker--small",label:"lsd-date-range-picker__label",supportingText:"lsd-date-range-picker__supporting-text",outlined:"lsd-date-range-picker--outlined",separator:"lsd-date-range-picker__separator"},bd=({startValue:e,endValue:t,onStartDateChange:n,onEndDateChange:a,size:o="large",variant:i="underlined",withCalendar:l=!0,label:s,supportingText:u,disabled:c,...d})=>{const f=bs(d),p=r.useRef(null),h=r.useRef(null),m=r.useRef(null),[g,v]=r.useState(null),b=void 0!==e,y=void 0!==t,w=Ye({value:e,defaultValue:"",onChange:n,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${pd.classes.input}`)[0]}}),x=Ye({value:t,defaultValue:"",onChange:a,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${pd.classes.input}`)[1]}}),k={...d,size:o,label:void 0,supportingText:void 0},_="startDate"===g||"endDate"===g;return Ge("div",{ref:p,className:Qe({...ws(d)},f.className,d.className,vd.root,vd[o],l&&vd.withCalendar,_&&vd.openCalendar,c&&vd.disabled),children:[s&&We(Vs,{className:vd.label,variant:"label2",component:"label",children:s}),Ge("div",{className:Qe(d.className,vd.inputContainer,"outlined"===i&&vd.outlined),children:[We(pd,{variant:i,calendarIconRef:m,icon:l&&We(Us,{color:"primary"}),value:b||_?w.value:void 0,onIconClick:()=>v((e=>Lc(e,"startDate"))),onChange:e=>{x.value&&!Rc(e.target.value,x.value)||w.onChange(e)},...k}),We("div",{className:vd.separator}),We(pd,{variant:i,calendarIconRef:h,icon:l&&We(Us,{color:"primary"}),value:y||_?x.value:void 0,onIconClick:()=>v((e=>Lc(e,"endDate"))),onChange:e=>{w.value&&!Rc(w.value,e.target.value)||x.onChange(e)},...k})]}),u&&We("div",{className:Qe(vd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:u})}),l&&We(lu,{id:"calendar",children:We(Zc,{...ys(d),onStartDateChange:e=>{w.setValue(Dc(e)),v("endDate")},onEndDateChange:e=>x.setValue(Dc(e)),onCalendarClickaway:e=>{md(e,h.current)||md(e,m.current)||v(null)},calendarType:g,open:_,onClose:()=>v(null),handleRef:p,mode:"range",disabled:c,startDate:w.value,endDate:x.value,className:vd.calendar,tooltipArrowOffset:jc(g,o),size:o})})]})};bd.classes=vd;const yd={root:"lsd-dropdown",label:"lsd-dropdown__label",buttonContainer:"lsd-dropdown__button-container",trigger:"lsd-dropdown__trigger",optionLabel:"lsd-dropdown__option-label",icons:"lsd-dropdown__icons",icon:"lsd-dropdown__icon",menuIcon:"lsd-dropdown__menu-icon",supportingText:"lsd-dropdown__supporting-text",open:"lsd-dropdown--open",error:"lsd-dropdown--error",disabled:"lsd-dropdown--disabled",small:"lsd-dropdown--small",medium:"lsd-dropdown--medium",large:"lsd-dropdown--large",outlined:"lsd-dropdown--outlined",underlined:"lsd-dropdown--underlined"},wd=({label:e,size:t="large",error:n=!1,disabled:a=!1,supportingText:o,triggerLabel:i,value:l=[],onChange:s,options:u=[],multi:c=!1,variant:d="outlined",isOpen:f,onToggle:p,menuProps:h={},...m})=>{const g=bs(m),v=r.useRef(null),b=void 0!==f,[y,w]=r.useState(!1);b&&f!==y&&w(f);const{select:x,isSelected:k,selected:_}=((e,t,{onDone:n,onChange:a,multi:o=!1}={})=>{const i=r.useMemo((()=>Object.fromEntries(e.map((e=>[e.value,e])))),[e]),[l,s]=r.useState(Array.isArray(t)?t:t?[t]:[]),u=r.useMemo((()=>ds(l,(()=>!0))),[l]),c=r.useMemo((()=>l.map((e=>i[e]))),[l,i]);r.useEffect((()=>{a&&s(Array.isArray(t)?t:t?[t]:[])}),[t,a]);const d=e=>"string"==typeof e?e:e.value;return{selected:c,isSelected:e=>!!u[d(e)],select:e=>{const t=d(e),r=o?u[t]?l.filter((e=>e!==t)):[...l,t]:[t];a?a(o?r:r[0]):s(r),!o&&n&&n(o?r:r[0])}}})(u,l,{multi:c,onChange:s,onDone:()=>{w(!1)}}),E=e=>{b?p&&p(e):w(e)};r.useEffect((()=>{a&&y&&!b&&w(!1)}),[y,a,b]);const S=(null==m?void 0:m.id)??(m.id||"dropdown")+"-input";return Ge("div",{ref:v,...ws(m),className:Qe(g.className,m.className,yd.root,yd[t],n&&yd.error,a&&yd.disabled,y&&yd.open,"outlined"===d?yd.outlined:yd.underlined),children:[e&&We(Vs,{htmlFor:S,className:yd.label,variant:"label2",component:"label",children:e}),We("div",{className:yd.buttonContainer,children:Ge("button",{id:S,className:Qe(yd.trigger),onClick:()=>{a||E(!y)},children:[We(Vs,{color:"primary",component:"label",variant:"large"===t?"label1":"label2",className:yd.optionLabel,children:_.length>0?_.map((e=>e.name)).join(", "):i}),Ge("div",{className:yd.icons,children:[n&&We(Ns,{color:"primary",className:yd.icon}),We(y?Cs:Es,{color:"primary",className:yd.menuIcon})]})]})}),o&&We(Vs,{variant:"large"===t?"label1":"label2",component:"p",className:yd.supportingText,children:o}),We(lu,{id:"dropdown",children:We(ru,{handleRef:v,open:y,onClose:()=>E(!1),size:t,genericFontFamily:m.genericFontFamily,...h,children:u.map((e=>We(Ws,{size:t,tabIndex:0,onClick:x.bind(null,e),withIcon:c,label:e.name,selected:k(e),onKeyDown:t=>"Enter"===t.key&&x(e)},e.value)))})})]})};wd.classes=yd;const xd=r.createContext(null),kd={root:"lsd-icon-button",outlined:"lsd-icon-button--outlined",filled:"lsd-icon-button--filled",disabled:"lsd-icon-button--disabled",small:"lsd-icon-button--small",medium:"lsd-icon-button--medium",large:"lsd-icon-button--large"},_d=({size:e,disabled:t,variant:n,children:a,...o})=>{const i=bs(o),l=r.useContext(xd),s=e??(null==l?void 0:l.size)??"large",u=n??(null==l?void 0:l.variant)??"outlined",c=t??(null==l?void 0:l.disabled)??!1;return We("button",{...ws(o),className:Qe(i.className,o.className,kd.root,kd[s],kd[u],c&&kd.disabled),children:a})};_d.classes=kd;const Ed={root:"lsd-icon-button-group",outlined:"lsd-icon-button-group--outlined",filled:"lsd-icon-button-group--filled",disabled:"lsd-icon-button-group--disabled",small:"lsd-icon-button-group--small",medium:"lsd-icon-button-group--medium",large:"lsd-icon-button-group--large"},Sd=({size:e="large",disabled:t,variant:n="outlined",children:r,...a})=>{const o=bs(a);return We("div",{...ws(a),className:Qe(o.className,a.className,Ed.root,Ed[e],Ed[n],t&&Ed.disabled),children:We(xd.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};Sd.classes=Ed;const Cd={root:"lsd-modal",small:"lsd-modal--small",medium:"lsd-modal--medium",large:"lsd-modal--large",xsmall:"lsd-modal--extra-small",modalContainer:"lsd-modal__container",header:"lsd-modal__header",title:"lsd-modal__title",subtitle:"lsd-modal__subtitle",titleAndSubtitleContainer:"lsd-modal__title-and-subtitle-container",closeIcon:"lsd-modal__close-icon"},Td=({isOpen:e,size:t="large",title:n,subtitle:r,onClose:a,children:o,...i})=>{const l=bs(i);return e?We("div",{...ws(i),className:Qe(l.className,Cd.root,Cd[t]),onClick:e=>{e.target===e.currentTarget&&a&&a()},children:Ge("div",{className:Qe(Cd.modalContainer),children:[Ge("div",{className:Cd.header,children:[Ge("div",{className:Cd.titleAndSubtitleContainer,children:[!!n&&We(Vs,{className:Cd.title,component:"div",variant:"small"===t?"h6":"h5",children:n}),!!r&&We(Vs,{className:Cd.subtitle,variant:"small"===t?"label2":"label1",component:"div",children:r})]}),We(_d,{onClick:a,className:Cd.closeIcon,size:"medium",children:We(Ps,{color:"primary"})})]}),o]})}):null};Td.classes=Cd;const Od={root:"lsd-modal-body"},Dd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Od.root),children:e})};Dd.classes=Od;const Pd={root:"lsd-modal-footer"},Nd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Pd.root),children:e})};Nd.classes=Pd;const Id={root:"lsd-number-input",label:"lsd-number-input__label",mainContainer:"lsd-number-input__main-container",inputContainer:"lsd-number-input__input-container",input:"lsd-number-input__input",errorIcon:"lsd-number-input__error-icon",plusMinusIcons:"lsd-number-input__plus-minus-icons",supportingText:"lsd-number-input__supporting-text",disabled:"lsd-number-input--disabled",error:"lsd-number-input--error",large:"lsd-number-input--large",medium:"lsd-number-input--medium",small:"lsd-number-input--small"},Ad=({label:e,size:t="large",error:n=!1,errorIcon:a=!1,supportingText:o,value:i,placeholder:l,defaultValue:s,disabled:u,onChange:c,icon:d,inputProps:f={},id:p="number-input",min:h=Number.MIN_SAFE_INTEGER,max:m=Number.MAX_SAFE_INTEGER,step:g=1,...v})=>{const b=r.useRef(null),y=bs(v),w=Ye({defaultValue:s,value:i,onChange:c,ref:b});return Ge("div",{"aria-disabled":u?"true":"false",...ws(v),className:Qe(v.className,y.className,Id.root,Id[t],u&&Id.disabled,n&&Id.error),children:[e&&We(Vs,{htmlFor:p,className:Id.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Id.mainContainer,children:[We(_d,{onClick:()=>{if(u)return;const e=Math.max(h,Number(w.value||"0")-g);w.setValue(e.toString())},className:Id.plusMinusIcons,children:We(Hs,{color:"primary"})}),Ge("div",{className:Id.inputContainer,children:[We("input",{id:p,type:"number",placeholder:l,ref:b,className:Qe(f.className,Id.input),value:w.value||"",onChange:w.onChange,min:h,max:m,step:g,disabled:u,...f}),n&&!!a&&We("span",{className:Id.errorIcon,children:We(Ns,{color:"primary"})})]}),We(_d,{onClick:()=>{if(u)return;const e=Math.min(m,Number(w.value||"0")+g);w.setValue(e.toString())},className:Id.plusMinusIcons,children:We(_s,{color:"primary"})})]}),o&&We("div",{className:Qe(Id.supportingText),children:We(Vs,{variant:"label2",component:"p",children:o})})]})};Ad.classes=Id;const Ld=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}},Rd=({children:e})=>{const[t,n]=r.useState(!1);return r.useEffect((()=>{if("undefined"==typeof window)return;const e=document.querySelector("body");let t=e.querySelector("#lsd-presentation");return t||(t=document.createElement("div"),t.id="lsd-presentation"),e.appendChild(t),n(!0),()=>{Ld((()=>e.removeChild(t)))}}),[]),We(au.Provider,{value:{initialized:t},children:e})},jd={root:"lsd-quote",indentedInline:"lsd-quote--indented-inline",parentheses:"lsd-quote--parentheses",text:"lsd-quote__text"},Md=({mode:e="indented-line",children:t,...n})=>{const r=bs(n);return We(qe,{children:We("div",{...ws(n),className:Qe(r.className,n.className,jd.root,e&&"parentheses"===e?jd.parentheses:jd.indentedInline),children:We(Vs,{color:"primary",component:"label",variant:"label1",children:t})})})};Md.classes=jd;const Fd=r.createContext(null),Bd={root:"lsd-radio-button",input:"lsd-radio-button__input",label:"lsd-radio-button__label",disabled:"lsd-radio-button--disabled",large:"lsd-radio-button--large",medium:"lsd-radio-button--medium",small:"lsd-radio-button--small"},zd=({size:e="large",onChange:t,checked:n,defaultChecked:a,disabled:o=!1,value:i,name:l,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),p=r.useContext(Fd),h=(null==p?void 0:p.size)??e,m=(null==p?void 0:p.name)??l??"",g=p?p.value===i:n,v=Ye({value:g,defaultValue:a??!1,onChange:t,ref:f});return Ge(Vs,{color:"primary",variant:"large"===h?"label1":"label2",component:"label","aria-disabled":o?"true":"false",...ws(c),className:Qe(d.className,c.className,Bd.root,Bd[h],o&&Bd.disabled),children:[We("input",{ref:f,name:m,value:i,type:"radio",checked:v.value,onChange:e=>{p?p.setActiveRadioButton(e.target.value):v.onChange(e)},defaultChecked:a,className:Qe(s.className,Bd.input),...s}),v.value?We($s,{color:"primary",focusable:!1}):We(zs,{color:"primary",focusable:!1}),We("span",{className:Bd.label,children:u})]})};zd.classes=Bd;const $d={root:"lsd-radio-button-group",label:"lsd-radio-button-group__label"},Ud=({size:e="large",label:t,value:n,name:a,onChange:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(n);return r.useEffect((()=>d(n)),[n]),We(Fd.Provider,{value:{value:c,setActiveRadioButton:e=>{o?o(e):d(e)},name:a,size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,$d.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:$d.label,children:t&&t}),i]})})};Ud.classes=$d;const Hd=r.createContext(null),Vd={root:"lsd-tab-item",text:"lsd-tab-item--text",icon:"lsd-tab-item--icon",disabled:"lsd-tab-item--disabled",selected:"lsd-tab-item--selected",small:"lsd-tab-item--small",medium:"lsd-tab-item--medium",large:"lsd-tab-item--large",withIcon:"lsd-tab-item--with-icon"},qd=({name:e,size:t="large",selected:n=!1,inactive:a=!1,icon:o,children:i,...l})=>{const s=bs(l),u=r.useContext(Hd),c=(null==u?void 0:u.size)??t,d=u?u.activeTab===e:n;return Ge("button",{...ws(l),className:Qe(s.className,l.className,Vd.root,Vd[c],d&&Vd.selected,l.disabled&&Vd.disabled,!!o&&Vd.withIcon),onClick:t=>{l.onClick&&l.onClick(t),a||(null==u?void 0:u.setActiveTab)&&u.setActiveTab(e)},children:[We(Vs,{component:"span",className:Vd.text,variant:"small"===c?"label2":"label1",children:i}),o&&We("span",{className:Vd.icon,children:o})]})};qd.classes=Vd;const Wd={root:"lsd-table-body",toolbar:"lsd-table-body__toolbar",row:"lsd-table-body__row"},Gd=({options:e=[],size:t="large",buttonLabel:n="Button",toolbar:r,children:a,...o})=>{const i=bs(o);return Ge("div",{...ws(o),className:Qe(i.className,o.className,Wd.root),children:[r&&We("div",{className:Qe(Wd.toolbar),children:r}),We("table",{children:a})]})};Gd.classes=Wd;const Zd={root:"lsd-table-header"},Qd=({size:e="large",children:t,...n})=>{const r=bs(n);return We("div",{...ws(n),className:Qe(r.className,n.className,Zd.root),children:t})};Qd.classes=Zd;const Yd={root:"lsd-table",small:"lsd-table--small",medium:"lsd-table--medium",large:"lsd-table--large"},Xd=r.createContext(null),Kd=()=>r.useContext(Xd),Jd=({size:e="large",type:t="default",headerOptions:n,header:r,toolbar:a,children:o,...i})=>{const l=bs(i);return We(Xd.Provider,{value:{size:e,type:t,headerOptions:n},children:Ge("div",{...ws(i),className:Qe(l.className,Yd.root,Yd[e]),children:[We(Qd,{children:r}),We(Gd,{toolbar:a,options:n,children:o})]})})};Jd.classes=Yd;const ef={root:"lsd-table-item",large:"lsd-table-item--large",medium:"lsd-table-item--medium",small:"lsd-table-item--small"},tf=({size:e="large",children:t,...n})=>{const r=bs(n),a=Kd(),o=(null==a?void 0:a.size)??e;return We("td",{...ws(n),className:Qe(r.className,n.className,ef.root,ef[o]),children:t})};tf.classes=ef;const nf={root:"lsd-table-row"},rf=({size:e="large",type:t="default",children:n,...r})=>{const a=bs(r),o=Kd(),i=(null==o?void 0:o.type)??t;return Ge("tr",{...ws(r),className:Qe(a.className,r.className,nf.root),children:["checkbox"===i&&We("td",{className:ef.root,children:We(od,{})}),"radio"===i&&We("td",{className:ef.root,children:We(zd,{value:"1"})}),n]})};rf.classes=nf;const af=r.createContext(null),of=(e=0)=>{let t=e-1;return()=>(t++,t)},lf="undefined"==typeof DOMRectReadOnly?null:new DOMRectReadOnly(0,0,0,0),sf=of(),uf=(e,t)=>{const n=(()=>{const{observe:e,unobserve:t,ready:n}=r.useContext(af)??{};return r.useMemo((()=>({observe:e,unobserve:t,ready:n})),[e,t,n])})(),a=r.useMemo((()=>t??sf().toString()),[t]),o=((e,t)=>{var n;const a=r.useContext(af);return(null==(n=null==a?void 0:a.rect)?void 0:n[e])??t})(a)??lf;return r.useEffect((()=>{if(n&&n.ready)return e.current&&n.observe(a,e),()=>{n.unobserve(a)}}),[n.ready,e.current]),o},cf=(e,t,n,r)=>-1===e?t:n-(r+t),df=(e,t)=>{var n;const a=uf(e),[o,i]=r.useState((null==(n=null==e?void 0:e.current)?void 0:n.scrollLeft)??0),[l,s]=r.useState(0),[u,c]=r.useState(0),d=r.useRef(null);((e,t,n,a,o)=>{const i=r.useMemo((()=>"string"==typeof e?e:e()),[]),l=r.useMemo((()=>"function"==typeof t?t():t),[t]);r.useEffect((()=>{if((null==l?void 0:l.addEventListener)&&(null==l?void 0:l.removeEventListener))return l.addEventListener(i,n,a),()=>{l.removeEventListener(i,n,a)}}),[i,l])})("scroll",e.current,(e=>{i(e.target.scrollLeft)}),{passive:!0});r.useEffect((()=>{if(d.current&&clearTimeout(d.current),!e.current)return;const{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.current;c(cf(1,t,n,r)),s(cf(-1,t,n,r))}),[a,o,null==t?void 0:t.deps]);const f=(n,r)=>{const{clientWidth:a,scrollLeft:o}=e.current,i=Array.from(e.current.childNodes).find((e=>e.getBoundingClientRect().x>=0)),l=Math.max(r??a/3,i?i.clientWidth:0);e.current.scrollTo({behavior:(null==t?void 0:t.scrollBehavior)??"smooth",left:o+l*n})};return r.useMemo((()=>({right:u,left:l,toRight:f.bind(null,1),toLeft:f.bind(null,-1)})),[u,l])},ff={root:"lsd-tabs",fullWidth:"lsd-tabs--full-width",withScrollControls:"lsd-tabs--with-scroll-controls",leftScrollControl:"lsd-tabs__left-scroll-control",rightScrollControl:"lsd-tabs__right-scroll-control"},pf=({size:e="large",fullWidth:t=!1,scrollControls:n=!1,onChange:a,activeTab:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(o);r.useEffect((()=>d(o)),[o]);const f=df(u,{scrollBehavior:"smooth",deps:[i]}),p=0!==f.left||0!==f.right;return We(Hd.Provider,{value:{activeTab:c,setActiveTab:e=>{a?a(e):d(e)},size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,ff.root,t&&ff.fullWidth,n&&p&&ff.withScrollControls),children:[n&&p&&We(qd,{inactive:!0,name:"Prev",disabled:0===f.left,onClick:()=>f.toLeft(),className:ff.leftScrollControl,children:We(js,{color:"primary"})}),i,n&&p&&We(qd,{inactive:!0,name:"Next",disabled:0===f.right,onClick:()=>f.toRight(),className:ff.rightScrollControl,children:We(Ms,{color:"primary"})})]})})};pf.classes=ff;const hf={root:"lsd-tag",label:"lsd-tag__label",outlined:"lsd-tag--outlined",filled:"lsd-tag--filled",disabled:"lsd-tag--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},mf=({variant:e="outlined",disabled:t,icon:n,iconDirection:r="left",children:a,size:o="large",...i})=>{const l=bs(i);return Ge("div",{"aria-label":a,...ws(i),className:Qe(l.className,i.className,hf.root,hf[e],t&&hf.disabled,hf[o]),children:["left"===r&&n,We(Vs,{variant:"small"===o?"label2":"label1",className:hf.label,component:"span",children:a}),"right"===r&&n]})};mf.classes=hf;var gf=Hi,vf=0;var bf=function(e){var t=++vf;return gf(e)+t};const yf={root:"lsd-text-field",inputContainer:"lsd-text-field__input-container",label:"lsd-text-field__label",input:"lsd-text-field__input",icon:"lsd-text-field__icon",clearButton:"lsd-text-field__clear-button",supportingText:"lsd-text-field__supporting-text",disabled:"lsd-text-field--disabled",error:"lsd-text-field--error",large:"lsd-text-field--large",medium:"lsd-text-field--medium",small:"lsd-text-field--small",outlined:"lsd-text-field--outlined",underlined:"lsd-text-field--underlined"},wf=({size:e="large",label:t,icon:n,error:a=!1,errorIcon:o=!1,clearButton:i,supportingText:l,children:s,value:u,placeholder:c,defaultValue:d,disabled:f,onChange:p,inputProps:h={},labelProps:m={},variant:g="underlined",...v})=>{const b=bs(v),y=r.useRef(null),w=Ye({defaultValue:d,value:u,onChange:p,ref:y}),x=h.id||bf("TextField-");return Ge("div",{"aria-disabled":f?"true":"false",...ws(v),className:Qe(b.className,v.className,yf.root,yf[e],f&&yf.disabled,a&&yf.error,"outlined"===g?yf.outlined:yf.underlined),children:[t&&We(Vs,{variant:"label2",component:"label",htmlFor:x,...m,className:Qe(yf.label,m.className),children:t}),Ge("div",{className:yf.inputContainer,children:[We("input",{id:x,placeholder:c,ref:y,value:w.value,onChange:w.onChange,...h,className:Qe(h.className,yf.input)}),a&&o?We(Ns,{color:"primary",className:yf.icon}):i&&w.filled?We(_d,{disabled:f,onClick:()=>!f&&w.setValue(""),"aria-label":"clear",className:yf.clearButton,children:We(Ps,{color:"primary",className:yf.icon})}):n]}),l&&We("div",{className:Qe(yf.supportingText),children:We(Vs,{variant:"large"===e?"label1":"label2",component:"p",children:l})})]})};wf.classes=yf;const xf={vars:{lsd:(...e)=>`--${["lsd",...e].join("-")}`,typography:(e,t)=>xf.vars.lsd(e,t),color:(e,t)=>xf.vars.lsd(e,t),wrap:e=>`var(${e})`},define:(e,t)=>`${e}: ${t};`},kf=(()=>{const e={};return t=>{const n=t.name;return e[n]&&"undefined"!=typeof window||(e[n]=(e=>{const t=[],n=[],r=fs.map((()=>[])),a=fs.map((()=>[]));ps.forEach((n=>{ms.forEach((r=>{var a;const o=(null==(a=e.typography[n][r])?void 0:a.toString())??"unset";t.push(xf.define(xf.vars.typography(n,r),o))}))})),t.push(xf.define(xf.vars.lsd("typography","generic-font-family"),e.typographyGlobal.genericFontFamily)),fs.forEach(((t,n)=>{ps.forEach((r=>{ms.forEach((o=>{var i,l,s,u;const c=e.breakpoints[t].typography[r][o],d=n>0?null==(u=null==(s=null==(l=null==(i=e.breakpoints)?void 0:i[fs[n-1]])?void 0:l.typography)?void 0:s[r])?void 0:u[o]:e.typography[r][o];c&&c!==d&&a[n].push(xf.define(xf.vars.typography(r,o),c.toString()))}))}))}));{const{primary:n,secondary:r,...a}=e.palette,o=a;t.push(xf.define(xf.vars.color("theme","primary"),n),xf.define(xf.vars.color("theme","secondary"),r),...Object.keys(o).flatMap((e=>Object.keys(o[e]).map((t=>xf.define(xf.vars.color(e,t),o[e][t]))))))}e.spacing.map((e=>{const n=xf.vars.lsd("spacing",e.toString());t.push(xf.define(n,`${e}px`))})),fs.map(((t,o)=>{n.push(`@media (min-width: ${e.breakpoints[t].width}px) {\n :root {\n ${a[o].join("\n")}\n }\n\n ${r[o]}\n }`)}));const i=`\n ${t.join("\n")} \n\n ${n.join("\n")}\n `;return{cssVars:i,globalStyles:o.css(":root{",i,";}","")}})(t)),e[n]}})(),_f={name:"LSD",breakpoints:{xs:{width:0,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},label2:{},subtitle1:{},subtitle2:{},subtitle3:{},subtitle4:{}}},sm:{width:400,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},md:{width:768,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},lg:{width:1024,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},xl:{width:1205,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}}},typography:{display1:{fontSize:"5.5rem",fontWeight:"normal",lineHeight:"6rem"},display2:{fontSize:"4rem",fontWeight:"normal",lineHeight:"4.5rem"},display3:{fontSize:"3.5rem",fontWeight:"normal",lineHeight:"4rem"},display4:{fontSize:"3rem",fontWeight:"normal",lineHeight:"3.5rem"},h1:{fontSize:"2.5rem",fontWeight:"normal",lineHeight:"3rem"},h2:{fontSize:"2rem",fontWeight:"normal",lineHeight:"2.5rem"},h3:{fontSize:"1.75rem",fontWeight:"normal",lineHeight:"2.25rem"},h4:{fontSize:"1.5rem",fontWeight:"normal",lineHeight:"2rem"},h5:{fontSize:"1.25rem",fontWeight:"normal",lineHeight:"1.75rem"},h6:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle1:{fontSize:"1.125rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle2:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle3:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},subtitle4:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},body1:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},body2:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},body3:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},label1:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},label2:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"}},typographyGlobal:{genericFontFamily:"sans-serif"},palette:{primary:"0, 0, 0",secondary:"255, 255, 255",surface:{primary:"255, 255, 255",secondary:"0, 0, 0"},text:{primary:"0, 0, 0",secondary:"255, 255, 255",tertiary:"0, 0, 0, 0.34"},border:{primary:"0, 0, 0",secondary:"255, 255, 255"},icon:{primary:"0, 0, 0",secondary:"255, 255, 255"}},spacing:[4,8,16,24,32,40,64,80,96,120],globalStyles:o.css("",""),cssVars:""},{cssVars:Ef,globalStyles:Sf}=kf(_f);_f.cssVars=Ef,_f.globalStyles=Sf;const Cf=of(),Tf=(e,t)=>ds(ps,(n=>({...t.typography[n],...e.typography[n]??{}}))),Of=(e,t)=>({...t.typographyGlobal,...e.typographyGlobal}),Df=(e,t)=>{const n=new Map;return Object.fromEntries(fs.reduce(((r,a,o)=>[...r,{...t.breakpoints[a],...e.breakpoints[a],...ds(["typography"],(a=>((e,t,n,r,a,o)=>"typography"===e?ds(a[e],(i=>{var l,s,u,c,d,f,p,h,m,g,v;const b=`${e}.${i}`,y=!0===o.get(b);return Object.keys((null==(u=null==(s=null==(l=r.breakpoints)?void 0:l[fs[n]])?void 0:s[e])?void 0:u[i])??{}).length>0&&o.set(b,!0),{...a[e][i],...r[e][i],...y?(null==(d=null==(c=null==t?void 0:t[n-1])?void 0:c[e])?void 0:d[i])??{}:null==(h=null==(p=null==(f=a.breakpoints)?void 0:f[fs[n]])?void 0:p[e])?void 0:h[i],...(null==(v=null==(g=null==(m=r.breakpoints)?void 0:m[fs[n]])?void 0:g[e])?void 0:v[i])??{}}})):{})(a,r,o,e,t,n)))}]),[]).map(((e,t)=>[fs[t],e])))},Pf=(e,t)=>{var n,r,a,o,i,l,s,u,c;const d=e.palette.primary??t.palette.primary,f=e.palette.secondary??t.palette.secondary;return{primary:d,secondary:f,surface:{primary:(null==(n=e.palette.surface)?void 0:n.primary)??f,secondary:(null==(r=e.palette.surface)?void 0:r.secondary)??d},border:{primary:(null==(a=e.palette.border)?void 0:a.primary)??d,secondary:(null==(o=e.palette.border)?void 0:o.secondary)??f},icon:{primary:(null==(i=e.palette.icon)?void 0:i.primary)??d,secondary:(null==(l=e.palette.icon)?void 0:l.secondary)??f},text:{primary:(null==(s=e.palette.text)?void 0:s.primary)??d,secondary:(null==(u=e.palette.text)?void 0:u.secondary)??f,tertiary:(null==(c=e.palette.text)?void 0:c.tertiary)??`${d}, 0.34`}}},Nf=(e,t=_f)=>{const n={name:e.name??(r=t.name,`${r}-${Cf()}`),typography:Tf(e,t),typographyGlobal:Of(e,t),breakpoints:Df(e,t),palette:Pf(e,t),globalStyles:o.css("",""),cssVars:"",spacing:e.spacing.length?e.spacing:t.spacing};var r;const{cssVars:a,globalStyles:i}=kf(n);return n.cssVars=a,n.globalStyles=i,n},If=Nf({name:"Light",breakpoints:{},typography:{},typographyGlobal:{},palette:{},spacing:[]},_f),Af={light:If,dark:Nf({name:"Dark",breakpoints:{},typography:{},typographyGlobal:{},palette:{primary:"255, 255, 255",secondary:"0, 0, 0"},spacing:[]},If)},Lf=o.css(".",uu.root,"{box-sizing:border-box;}.",uu.label,"{display:block;}.",uu.inputContainer,"{display:flex;justify-content:space-between;}.",uu.disabled,"{opacity:0.34;}.",uu.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",uu.input,":hover{outline:none;}.",uu.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",uu.icon,"{cursor:pointer;display:flex;align-items:center;}.",uu.error,"{text-decoration:line-through;}.",uu.large,"{width:208px;.",uu.label,"{margin:0 0 6px 18px;}.",uu.inputContainer,"{height:40px;}.",uu.input,"{padding:9px 17px;}.",uu.icon,"{padding:12px 13px;}}.",uu.medium,"{width:188px;.",uu.label,"{margin:0 0 6px 14px;}.",uu.inputContainer,"{height:32px;}.",uu.input,"{padding:5px 13px;}.",uu.icon,"{padding:8px 11px;}}.",uu.small,"{width:164px;.",uu.label,"{margin:0 0 6px 12px;}.",uu.inputContainer,"{height:28px;}.",uu.input,"{padding:5px 11px;}.",uu.icon,"{padding:6px 9px;}}.",uu.withIcon,"{}.",uu.outlined," .",uu.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",uu.underlined," .",uu.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",uu.dropdownItemPlaceholder,"{opacity:0.5;white-space:pre;}",""),Rf=o.css(".",du.root,"{width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid rgb(var(--lsd-icon-primary));border-radius:20px;&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",du.large,"{padding:3px 11px;gap:12px;height:28px;}.",du.small,"{padding:3px 7px;gap:8px;height:24px;}.",du.filled,"{background-color:rgb(var(--lsd-icon-primary));.",du.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",du.outlined,"{color:rgb(var(--lsd-text-primary));}.",du.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),jf=o.css(".",mu.root,"{}.",mu.list,"{display:flex;flex-direction:row;align-items:center;list-style-type:none;margin:0;padding:0;}.",mu.disabled,"{.",mu.list,"{opacity:0.34;cursor:initial;pointer-events:none;}}.",mu.listBox,"{display:flex;flex-direction:column;overflow:auto;border:1px solid rgb(var(--lsd-border-primary));margin-top:10px;position:absolute;width:auto!important;}.",mu.listBox,">li{cursor:pointer;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}.",mu.listBox," li>a{width:164px;padding:5px 11px;}",""),Mf=o.css(".",pu.root,"{list-style-type:none;display:flex;align-items:center;}.",mu.list,">li:not(:last-child)::after{display:inline-block;margin-inline:12px;content:'/';}.",pu.itemLink,"{text-decoration:none;cursor:pointer;}.",pu.outlined,"{padding:3px 11px;border:1px solid rgb(var(--lsd-border-primary));}",pu.large,"{}",pu.small,"{}.",mu.root,":not(.",mu.disabled,"){.",pu.itemLink,"{&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}}",""),Ff=o.css(".",bu.root,"{width:auto;cursor:pointer;padding:6px 24px;}.",bu.disabled,"{cursor:default;opacity:0.34;}.",bu.large,"{padding:10px 40px;}.",bu.medium,"{padding:6px 24px;}.",bu.small,"{padding:6px 12px;}.",bu.root,":hover{&:not(.",bu.disabled,"){.",bu.text,"{text-decoration:underline;}}}.",bu.withIcon,"{display:flex;align-items:center;}.",bu.icon,"{display:flex;justify-content:center;align-items:center;height:100%;}.",bu.large,".",bu.withIcon,"{padding:10px 0px 10px 18px;.",bu.icon,"{width:42px;}}.",bu.medium,".",bu.withIcon,"{padding:6px 0px 6px 14px;.",bu.icon,"{width:38px;}}.",bu.small,".",bu.withIcon,"{padding:6px 0px 6px 12px;.",bu.icon,"{width:34px;}}.",bu.outlined,"{background:none;border:1px solid rgb(var(--lsd-border-primary));.",bu.text,"{color:rgb(var(--lsd-text-primary));}}.",bu.filled,"{background:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-primary));.",bu.text,"{color:rgb(var(--lsd-text-secondary));}}",""),Bf=o.css(".",Sc.root,"{border:1px solid rgb(var(--lsd-border-primary));visibility:hidden;position:absolute!important;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));user-select:none;}.",Sc.container,"{display:flex;flex-direction:column;padding:8px;}.",Sc.open,"{opacity:1;visibility:visible;}.",Sc.header,"{display:flex;justify-content:center;align-items:center;height:32px;margin-bottom:8px;}.",Sc.weekDay,"{display:flex;justify-content:center;align-items:center;aspect-ratio:1/1;margin-bottom:4px;}.",Sc.changeYear,"{position:relative;display:flex;justify-content:center;align-items:center;padding:2px 0xp 2px 8px;gap:6px;border:1px solid transparent;}.",Sc.changeYearActive,"{.",Sc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Sc.changeYearIconContainer,"{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none;}.",Sc.month,"{margin-right:8px;}.",Sc.monthAndYear,"{display:flex;align-items:center;justify-content:center;}.",Sc.dayContainer,"{cursor:pointer;background:transparent;position:relative;box-sizing:border-box;border:1px solid transparent;}.",Sc.day,"{aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;}.",Sc.day,":hover{cursor:pointer;text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}.",Sc.day," label:hover{cursor:pointer;}.",Sc.daySelected,"{border:1px solid rgb(var(--lsd-border-primary));}.",Sc.dayDisabled,"{opacity:0.3;cursor:default;}.",Sc.todayIndicator,"{position:absolute;left:50%;transform:translateX(-50%);bottom:2px;}.",Sc.disabled,"{pointer-events:none;border:1px solid rgba(var(--lsd-border-primary), 0.3);label{opacity:0.3;}.",Sc.button,"{opacity:0.3;}.",Sc.daySelected,"{opacity:0.3;}}.",Sc.button,"{border:1px solid rgb(var(--lsd-border-primary));cursor:pointer;background:transparent;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:absolute;}.",Sc.nextMonthButton,"{top:8px;right:8px;}.",Sc.previousMonthButton,"{top:8px;left:8px;}.",Sc.dayBorderLeft,"{border-left:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderRight,"{border-right:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderLeftAndRight,"{border-left:1px double rgb(var(--lsd-border-primary));border-right:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderTopAndBottom,"{border-top:1px double rgb(var(--lsd-border-primary));border-bottom:1px double rgb(var(--lsd-border-primary));}.",Sc.monthTable,"{border-collapse:collapse;}.",Sc.yearDropdown,"{box-sizing:border-box;position:absolute;top:100%;left:0;max-height:200px;overflow-y:auto;width:100%;border:1px solid rgb(var(--lsd-border-primary));border-top:none;z-index:1;.",Sc.year,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Sc.yearDropdownHidden,"{visibility:hidden;}.",Sc.year,"{display:flex;cursor:pointer;transition:background-color 0.2s;align-items:center;background:rgb(var(--lsd-surface-primary));:hover{text-decoration:underline;}}.",Sc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}.",Sc.large,"{.",Sc.year,"{padding:6px 0px 6px 14px;}.",Sc.changeYearIconContainer,"{width:32px;}}.",Sc.medium,"{.",Sc.year,"{padding:6px 0px 6px 12px;}.",Sc.changeYearIconContainer,"{width:28px;}}.",Sc.small,"{.",Sc.year,"{padding:6px 0px 6px 12px;}.",Sc.changeYearIconContainer,"{width:28px;}}",""),zf=o.css(".",Qc.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Qc.root,">.",ed.root,"{margin-bottom:-1px;}.",Qc.large,"{}.",Qc.medium,"{}.",Qc.small,"{}",""),$f=o.css(".",Kc.root,"{box-sizing:border-box;padding:14px 22px;border:1px solid rgb(var(--lsd-border-primary));}",""),Uf=o.css(".",ed.root,"{box-sizing:border-box;padding:10px 18px;text-align:center;border:1px solid rgb(var(--lsd-border-primary));}.",ed.title,"{overflow:hidden;word-break:break-all;}.",ed.large,"{padding:10px 18px;}.",ed.medium,"{padding:6px 14px;}.",ed.small,"{padding:6px 12px;}",""),Hf=o.css(".",ad.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",ad.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",ad.root,":not(.",ad.disabled,"){&:hover,&.",ad.focused,"{text-decoration:underline;}.",ad.input,"{cursor:pointer;}}.",ad.disabled,"{opacity:0.34;}.",ad.label,"{margin-left:18px;}.",ad.large,"{.",ad.label,"{margin-left:18px;}}.",ad.medium,"{.",ad.label,"{margin-left:14px;}}.",ad.small,"{.",ad.label,"{margin-left:12px;}}",""),Vf=o.css(".",id.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",id.label,"{margin-bottom:6px;}",""),qf=o.css(".",cd.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",cd.open,"{.",cd.content,"{border-top:1px solid transparent;}}.",cd.content,"{border:1px solid rgb(var(--lsd-border-primary));}",""),Wf=o.css(".",sd.root,"{box-sizing:border-box;}.",sd.root,":not(.",sd.disabled,"){.",sd.trigger,"{&:hover{.",sd.label,"{text-decoration:underline;}}}}.",sd.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer;background:none;border:1px solid rgb(var(--lsd-border-primary));&:focus{outline:none;}}.",sd.label,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:auto;}.",sd.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;}.",sd.icon,"{margin-right:8px;}.",sd.menuIcon,"{}.",sd.disabled,"{.",sd.trigger,"{opacity:0.34;cursor:initial;}}.",sd.large,"{.",sd.trigger,"{width:299px;height:40px;padding:9px 17px;}}.",sd.medium,"{.",sd.trigger,"{width:270px;height:32px;padding:5px 13px;}}.",sd.small,"{.",sd.trigger,"{width:235px;height:28px;padding:5px 11px;}}",""),Gf=o.css(".",fd.root,"{width:auto;box-sizing:border-box;}.",fd.label,"{display:block;}.",fd.icon,"{position:absolute;right:0;cursor:pointer;display:flex;align-items:center;background-color:rgb(var(--lsd-surface-primary));}.",fd.icon,":focus{background:blue;background-color:pink;border:1px solid rgb(var(--lsd-border-primary));}.",fd.noIcon,"{position:absolute;right:0;background-color:rgb(var(--lsd-surface-primary));padding:12px;}.",fd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));}.",fd.underlined,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}.",fd.inputContainer,"{position:relative;display:flex;align-items:center;justify-content:space-between;}.",fd.disabled,"{opacity:0.34;}.",fd.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;opacity:0.4;transition:opacity 0.2s ease-in-out;}.",fd.input,"::-webkit-inner-spin-button,.",fd.input,"::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;}.",fd.input,":hover{outline:none;}.",fd.supportingText,"{position:absolute;}.",fd.large,"{width:208px;.",fd.label,"{margin:0 0 6px 18px;}.",fd.inputContainer,"{height:40px;}.",fd.input,"{padding:9px 0px 9px 17px;}.",fd.icon,"{padding:12px 13px;}.",fd.supportingText,"{margin:6px 18px 0 18px;}}.",fd.medium,"{width:188px;.",fd.label,"{margin:0 0 6px 14px;}.",fd.inputContainer,"{height:32px;}.",fd.input,"{padding:5px 11px 5px 13px;}.",fd.icon,"{padding:8px 11px;}.",fd.supportingText,"{margin:6px 14px 0 14px;}}.",fd.small,"{width:164px;.",fd.label,"{margin:0 0 6px 12px;}.",fd.inputContainer,"{height:28px;}.",fd.input,"{padding:5px 9px 5px 11px;font-size:12px;}.",fd.icon,"{padding:6px 9px;}.",fd.supportingText,"{margin:6px 12px 0 12px;}}.",fd.input,":invalid,.",fd.inputFilled,"{color:rgb(var(--lsd-border-primary));opacity:1;}.",fd.error," .",fd.input,"::-webkit-datetime-edit-year-field,.",fd.error," .",fd.input,"::-webkit-datetime-edit-month-field,.",fd.error," .",fd.input,"::-webkit-datetime-edit-day-field{text-decoration:line-through;}@supports not selector(::-webkit-datetime-edit-day-field){.",fd.error," .",fd.input,"{text-decoration:line-through;}}",""),Zf=o.css(".",hd.root,"{width:fit-content;}.",hd.calendar,"{border-top:none!important;}.",hd.large,"{.",fd.large,"{width:318px;}}.",hd.medium,"{.",fd.medium,"{width:290px;}}.",hd.small,"{.",fd.small,"{width:262px;}}",""),Qf=o.css(".",yd.root,"{}.",yd.root,":not(.",yd.disabled,"):not(\n .",yd.error,"\n ){.",yd.trigger,"{&:hover,&:focus{.",yd.optionLabel,"{text-decoration:underline;}}}}.",yd.label,"{display:block;}.",yd.buttonContainer,"{display:flex;justify-content:space-between;}.",yd.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border:none;cursor:pointer;background:none;&:focus{outline:none;}}.",yd.optionLabel,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.",yd.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;}.",yd.icon,"{display:flex;align-items:center;}.",yd.menuIcon,"{}.",yd.supportingText,"{margin:6px 14px;}.",yd.error,"{.",yd.optionLabel,"{text-decoration:line-through;}}.",yd.disabled,"{opacity:0.34;cursor:initial;}.",yd.large,"{width:208px;&.",yd.error,"{width:230px;}.",yd.label,"{margin:0 0 6px 18px;}.",yd.buttonContainer,"{height:40px;}.",yd.trigger,"{padding:10px 0px 10px 18px;}.",yd.icons,"{padding:0px 14px;}}.",yd.medium,"{width:188px;&.",yd.error,"{width:210px;}.",yd.label,"{margin:0 0 6px 14px;}.",yd.buttonContainer,"{height:32px;}.",yd.trigger,"{padding:6px 0px 6px 14px;}.",yd.icons,"{padding:0px 12px;}}.",yd.small,"{width:164px;&.",yd.error,"{width:186px;}.",yd.label,"{margin:0 0 6px 12px;}.",yd.buttonContainer,"{height:28px;}.",yd.trigger,"{padding:6px 0px 6px 12px;}.",yd.icons,"{padding:0px 10px;}}.",yd.outlined,"{.",yd.buttonContainer,"{border:1px solid rgb(var(--lsd-border-primary));}}.",yd.underlined,"{.",yd.buttonContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}}",""),Yf=o.css(".",qs.root,"{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;border:1px solid rgb(var(--lsd-border-primary));:not(.",qs.disabled,"){cursor:pointer;&:hover,&:focus{outline:none;.",qs.label,"{text-decoration:underline;}}}}.",qs.label,"{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",qs.disabled,"{opacity:0.34;}.",qs.icon,"{margin-right:18px;flex-shrink:0;}.",qs.small,"{padding:5px 9px;height:28px;}.",qs.medium,"{padding:5px 11px;height:32px;}.",qs.large,"{padding:5px 13px;height:40px;}",""),Xf=o.css(".",kd.root,"{display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:pointer;background:none;padding:0;border:1px solid rgb(var(--lsd-border-primary));}.",kd.filled,"{background-color:rgb(var(--lsd-icon-primary));svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",kd.outlined,"{}.",kd.disabled,"{opacity:0.34;cursor:default;}.",kd.large,"{width:40px;height:40px;}.",kd.medium,"{width:32px;height:32px;}.",kd.small,"{width:28px;height:28px;}",""),Kf=o.css(".",Ed.root,"{display:flex;flex-direction:row;}.",Ed.outlined," .",kd.root,":not(:last-child){border-right:none;}",""),Jf=o.css(".",xs.root,"{}.",xs.primary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-primary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-primary));}}}.",xs.secondary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}}",""),ep=o.css(".",tu.root,"{position:absolute;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));overflow:auto;border:1px solid rgb(var(--lsd-border-primary));border-top:0;}.",tu.root,">div{border:0;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",tu.open,"{opacity:1;visibility:visible;}.",tu.large,"{max-height:220px;}.",tu.medium,"{max-height:176px;}.",tu.small,"{max-height:154px;}",""),tp=o.css(".",jd.root,"{color:rgb(var(--lsd-text-primary));white-space:pre-wrap;}.",jd.indentedInline,"{border-left:1px solid rgb(var(--lsd-border-primary));padding:4px 8px 4px 28px;}.",jd.parentheses,"{padding:0px;text-align:center;}.",jd.parentheses,"::before{content:'***';}.",jd.parentheses,"::after{content:'***';}",""),np=o.css(".",Bd.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",Bd.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",Bd.root,":not(.",Bd.disabled,"){&:hover{text-decoration:underline;}.",Bd.input,"{cursor:pointer;}}.",Bd.disabled,"{opacity:0.34;}.",Bd.label,"{margin-left:18px;}.",Bd.large,"{.",Bd.label,"{margin-left:18px;}}.",Bd.medium,"{.",Bd.label,"{margin-left:14px;}}.",Bd.small,"{.",Bd.label,"{margin-left:12px;}}",""),rp=o.css(".",$d.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",$d.label,"{margin-bottom:6px;}",""),ap=o.css(".",Vd.root,"{background:rgb(var(--lsd-surface-primary));border:1px solid transparent;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;&:hover{text-decoration:underline;}&:not(",Vd.selected,"){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Vd.text,"{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",Vd.icon,"{margin-left:14px;}.",Vd.selected,"{border:1px solid rgb(var(--lsd-border-primary));&:hover{text-decoration:none;}}.",Vd.withIcon,"{justify-content:space-between;}.",Vd.disabled,"{cursor:default;opacity:0.34;&:hover{text-decoration:none;}}.",Vd.small,"{padding:6px 12px;.",Vd.icon,"{margin-left:10px;}}.",Vd.medium,"{padding:6px 14px;.",Vd.icon,"{margin-left:12px;}}.",Vd.large,"{padding:10px 18px;.",Vd.icon,"{margin-left:14px;}}",""),op=o.css(".",Yd.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Yd.root,">.",Zd.root,"{margin-bottom:-1px;}.",Yd.large,"{}.",Yd.medium,"{}.",Yd.small,"{}",""),ip=o.css(".",Wd.root,"{table{border-collapse:collapse;text-align:center;table-layout:fixed;width:100%;height:auto;}table tr:first-of-type td label:has(input[type='radio']){display:none;}}.",Wd.toolbar,"{box-sizing:border-box;padding:10px;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;justify-content:space-between;}",""),lp=o.css(".",Zd.root,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}",""),sp=o.css(".",ef.root,"{border:1px solid rgb(var(--lsd-border-primary));}.",ef.root,":has(> label){width:40px;input{position:relative;width:14px;height:14px;margin:auto;}span{margin-left:14px!important;}}.",ef.large,"{padding:10px;}.",ef.medium,"{padding:6px 8px;}.",ef.small,"{padding:6px;}",""),up=o.css(".",nf.root,"{align-items:center;}",""),cp=o.css(".",ff.root,"{display:flex;flex-direction:row;overflow:auto;width:fit-content;max-width:100%;border-bottom:1px solid rgb(var(--lsd-border-primary));&>*{flex-shrink:0;}.",Vd.root,"{border-bottom:none;}}.",ff.fullWidth,"{width:100%;justify-content:stretch;&>*{width:100%;flex:1 0;}}.",ff.root,"{-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}}.",ff.leftScrollControl,"{left:0;}.",ff.rightScrollControl,"{right:0;}.",ff.rightScrollControl,",.",ff.leftScrollControl,"{top:0;flex:0 1;position:sticky;}",""),dp=o.css(".",hf.root,"{width:fit-content;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid rgb(var(--lsd-icon-primary));&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",hf.large,"{padding:3px 11px;gap:12px;height:28px;}.",hf.small,"{padding:3px 7px;gap:8px;height:24px;}.",hf.filled,"{background-color:rgb(var(--lsd-icon-primary));.",hf.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",hf.outlined,"{color:rgb(var(--lsd-text-primary));}.",hf.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),fp=o.css(".",yf.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",yf.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",yf.disabled,"{opacity:0.34;}.",yf.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",yf.input,":hover{outline:none;}.",yf.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",yf.error," .",yf.input,"{text-decoration:line-through;}.",yf.supportingText,"{width:fit-content;}.",yf.large,"{width:208px;&>*{padding:10px 14px 10px 18px;}}.",yf.medium,"{width:188px;&>*{padding:6px 12px 6px 14px;}}.",yf.small,"{width:164px;&>*{padding:6px 10px 6px 12px;}}.",yf.label,"{padding-top:0;padding-bottom:6px;}.",yf.supportingText,"{padding-bottom:0;padding-top:6px;}.",yf.outlined," .",yf.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",yf.underlined," .",yf.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",yf.clearButton,"{padding:0;width:auto;height:auto;margin:0;border:0;}.",yf.icon,"{}",""),pp=o.css("body *{font-family:var(--lsd-typography-generic-font-family);}.",gs.root,"{color:rgb(var(--lsd-text-primary));}.",gs.sansSerif,"{&,*{font-family:sans-serif;}}.",gs.serif,"{&,*{font-family:serif;}}.",gs.monospace,"{&,*{font-family:monospace;}}",ps.map((e=>o.css((e=>[...hs[e]??[],`.${gs[e]}`].join(", "))(e),"{color:rgb(var(--lsd-text-primary));font-weight:var(--lsd-",e,"-fontWeight);font-size:var(--lsd-",e,"-fontSize);line-height:var(--lsd-",e,"-lineHeight);}","")))," .",gs.primary,"{color:rgb(var(--lsd-text-primary));}.",gs.secondary,"{color:rgb(var(--lsd-text-secondary));}input{color:rgb(var(--lsd-text-primary));font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);}h1,h2,h3,h4,h5,h6,p,span{margin:0;}",""),hp={root:"lsd-toast",inlineContainer:"lsd-toast__inline-container",columnContainer:"lsd-toast__column-container",large:"lsd-toast--large",medium:"lsd-toast--medium",small:"lsd-toast--small",icon:"lsd-toast__icon",textContainer:"lsd-toast__text-container",columnIconContainer:"lsd-toast__column-icon-container",inlineIconContainer:"lsd-toast__inline-icon-container",title:"lsd-toast__title",information:"lsd-toast__information",inlineButtonContainer:"lsd-toast__inline-button-container",columnButtonContainer:"lsd-toast__column-button-container",buttonContainer:"lsd-toast__button-container",closeButton:"lsd-toast__close-button"},mp={toastContainer:"lsd-toast-provider__toast-container",topLeft:"lsd-toast-provider__toast--top-left",topCenter:"lsd-toast-provider__toast--top-center",topRight:"lsd-toast-provider__toast--top-right",bottomLeft:"lsd-toast-provider__toast--bottom-left",bottomCenter:"lsd-toast-provider__toast--bottom-center",bottomRight:"lsd-toast-provider__toast--bottom-right"},gp=[Ff,Xf,Kf,pp,Jf,ap,cp,ep,Qf,Yf,jf,Mf,zf,Uf,$f,dp,fp,Hf,Lf,tp,qf,Wf,Vf,Rf,np,rp,op,lp,ip,sp,up,o.css(".",Id.root,"{width:auto;box-sizing:border-box;}.",Id.mainContainer,":hover{text-decoration:underline;}.",Id.error,"{.",Id.mainContainer,"{text-decoration:line-through;}}.",Id.label,"{display:block;}.",Id.plusMinusIcons,"{display:flex;flex-shrink:0;}.",Id.inputContainer,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));border-left:0px;border-right:0px;}.",Id.errorIcon,"{cursor:pointer;display:flex;align-items:center;padding:10px 8px;}.",Id.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",Id.disabled,"{opacity:0.34;}.",Id.mainContainer,"{display:flex;align-items:center;}.",Id.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;text-align:center;padding:0 4px;}.",Id.input,"::-webkit-inner-spin-button{display:none;-webkit-appearance:none;}.",Id.input,":hover{outline:none;}.",Id.supportingText,"{position:absolute;}.",Id.large,"{.",Id.label,"{margin:0 0 6px 18px;}.",Id.inputContainer,"{height:40px;}.",Id.input,"{width:62px;}.",Id.plusMinusIcons,"{height:40px;width:40px;}.",Id.supportingText,"{margin:6px 18px 0 18px;}}.",Id.medium,"{.",Id.label,"{margin:0 0 6px 14px;}.",Id.inputContainer,"{height:32px;}.",Id.input,"{width:58px;}.",Id.plusMinusIcons,"{height:32px;width:32px;}.",Id.supportingText,"{margin:6px 14px 0 14px;}}.",Id.small,"{.",Id.label,"{margin:0 0 6px 12px;}.",Id.inputContainer,"{height:28px;}.",Id.input,"{width:50px;}.",Id.plusMinusIcons,"{height:28px;width:28px;}.",Id.supportingText,"{margin:6px 12px 0 12px;}}",""),o.css(".",Cd.root,"{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;justify-content:center;align-items:center;z-index:9999;}.",Cd.modalContainer,"{position:relative;background:rgb(var(--lsd-surface-primary));padding:20px;max-width:90%;box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}.",Cd.header,"{display:flex;justify-content:space-between;align-items:center;}.",Cd.title,"{}.",Cd.subtitle,"{}.",Cd.closeIcon,"{position:absolute;top:8px;right:8px;cursor:pointer;}.",Cd.titleAndSubtitleContainer,"{display:flex;flex-direction:column;}.",Cd.large,"{.",Cd.modalContainer,"{min-width:960px;}}.",Cd.medium,"{.",Cd.modalContainer,"{min-width:768px;}}.",Cd.small,"{.",Cd.modalContainer,"{min-width:614px;}}.",Cd.xsmall,"{.",Cd.modalContainer,"{min-width:490px;}}",""),o.css(".",Pd.root,"{display:flex;}",""),o.css(".",Od.root,"{margin:18px 0;}",""),Zf,Gf,Bf,o.css(".",hp.root,"{box-sizing:border-box;display:inline-flex;align-items:center;background:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));padding:8px;height:fit-content;}.",hp.inlineButtonContainer,"{flex-shrink:0;}.",hp.columnButtonContainer,"{margin-top:18px;margin-bottom:6px;}.",hp.inlineContainer,"{display:flex;align-items:center;justify-content:space-between;flex-grow:1;}.",hp.columnContainer,"{display:flex;flex-direction:column;justify-content:space-between;}.",hp.textContainer,"{display:flex;flex-direction:column;color:rgb(var(--lsd-text-secondary));padding-left:12px;}.",hp.title,"{position:relative;}.",hp.information,"{margin-top:4px;}.",hp.buttonContainer,"{min-height:28px;min-width:60px;width:fit-content;padding:0px 12px;}.",hp.closeButton,"{margin-bottom:auto;flex-shrink:0;height:28px;width:28px;margin-left:auto;}.",hp.columnIconContainer,"{display:flex;justify-content:center;margin-bottom:auto;position:relative;top:4px;padding-left:4px;}.",hp.inlineIconContainer,"{display:flex;align-items:center;justify-content:center;padding-left:4px;}.",hp.icon,"{position:relative;}.",hp.large,"{width:364px;}.",hp.medium,"{width:336px;}.",hp.small,"{width:296px;.",hp.icon,"{top:0px;}}",""),o.css(".",mp.toastContainer,"{position:fixed;transition:all 230ms cubic-bezier(0.21, 1.02, 0.73, 1);z-index:9999;}.",mp.topLeft,",.",mp.topCenter,",.",mp.topRight,"{top:0;}.",mp.bottomLeft,",.",mp.bottomCenter,",.",mp.bottomRight,"{bottom:0;}.",mp.topCenter,",.",mp.bottomCenter,"{left:50%;}.",mp.topRight,",.",mp.bottomRight,"{right:0;}",""),o.css(".",wu.root,"{display:flex;flex-direction:row;>*:not(:last-child){&.",bu.outlined,",.",bu.outlined,"{border-right:none;}}}",""),o.css(".",vd.root,"{box-sizing:border-box;.",fd.outlined,"{border:none;}.",fd.icon,"{padding:8px;}}.",vd.label,"{display:block;}.",vd.inputContainer,"{box-sizing:border-box;display:flex;align-items:center;border:1px solid transparent;}.",vd.calendar,"{border-top:none!important;.",Vc.arrowTip,"{transition:left 0.2s ease-in-out;}}.",vd.openCalendar,"{.",vd.inputContainer,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",vd.icon,"{cursor:pointer;display:flex;align-items:center;justify-content:center;flex-grow:1;padding:0 10px;}.",vd.disabled,"{opacity:0.3;}.",vd.supportingText,"{position:absolute;}.",vd.large,"{width:318px;.",fd.large,"{width:156px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:11px 12px;}.",vd.label,"{margin:0 0 6px 18px;}.",vd.inputContainer,"{height:40px;}.",vd.supportingText,"{margin:6px 18px 0 18px;}}.",vd.medium,"{width:290px;.",fd.medium,"{width:142px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:7px 8px;}.",vd.label,"{margin:0 0 6px 14px;}.",vd.inputContainer,"{height:32px;}.",vd.supportingText,"{margin:6px 14px 0 14px;}}.",vd.small,"{width:262px;.",fd.small,"{width:128px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:5px 7px;}.",vd.label,"{margin:0 0 6px 12px;}.",vd.inputContainer,"{height:28px;}.",vd.supportingText,"{margin:6px 12px 0 12px;}}.",vd.separator,"{margin-left:3px;width:1px;height:100%;}.",vd.separator,"{border-left:1px solid transparent;}.",vd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));.",vd.separator,"{border-left:1px solid rgb(var(--lsd-border-primary));}}",""),o.css(".",Vc.root,"{border:1px solid rgb(var(--lsd-border-primary));position:relative;}.",Vc.arrowTip,"{border:1px solid rgb(var(--lsd-border-primary));position:absolute;background:rgb(var(--lsd-surface-primary));}.",Vc.content,"{background:rgb(var(--lsd-surface-primary));width:100%;height:100%;position:relative;z-index:1;}","")],vp=({theme:e=Af.light})=>{const t=r.useMemo((()=>gp.map((t=>"function"==typeof t?t(e):t)).map((e=>We(o.Global,{styles:e},e.name)))),[e]);return We(qe,{children:t})},bp=({children:e})=>{const t=r.useRef(),n=r.useRef({}),[a,o]=r.useState({}),[i,l]=r.useState(!1),s=e=>{const t=n.current[e];t&&t.current&&Ld((()=>{o((n=>({...n,[e]:t.current.getBoundingClientRect()})))}))};r.useEffect((()=>{if("undefined"!=typeof window&&"undefined"!=typeof ResizeObserver)return t.current=new ResizeObserver((e=>{Ld((()=>{const t=Object.entries(n.current);e.map((e=>t.find((([t,n])=>n.current===e.target)))).forEach((e=>{if(e&&2===e.length){const[t]=e;s(t)}}))}))})),l(!0),()=>{var e;null==(e=t.current)||e.disconnect()}}),[]);return We(af.Provider,{value:{observe:(e,r)=>{t.current&&(n.current[e]=r,s(e),r.current instanceof Element&&t.current.observe(r.current))},unobserve:e=>{if(!t.current)return;const r=n.current[e];r&&(r.current instanceof Element&&t.current.unobserve(r.current),delete n.current[e],o((t=>Vl(t,e))))},rect:a,ready:i},children:e})},yp=r.createContext({theme:null}),wp=({title:e,information:t,onClose:n,size:r="large",toastRef:a,children:o,icon:i,actions:l,...s})=>{const u=bs(s),c=!t,d=void 0===i?Ns:i;return Ge("div",{ref:a,...ws(s),className:Qe(s.className,u.className,hp.root,hp[r]),children:[We("div",{className:Qe(c?hp.inlineIconContainer:hp.columnIconContainer),children:d&&We(d,{color:"primary",className:hp.icon})}),Ge("div",{className:c?hp.inlineContainer:hp.columnContainer,children:[Ge("div",{className:Qe(hp.textContainer),children:[!!e&&We(Vs,{className:hp.title,component:"div",variant:"small"===r?"label2":"label1",children:e}),!!t&&We(Vs,{className:hp.information,component:"div",variant:"small"===r?"label2":"label1",children:t})]}),!!l&&We("div",{className:Qe(hp.buttonContainer,c?hp.inlineButtonContainer:hp.columnButtonContainer),children:l})]}),We(_d,{onClick:n,className:hp.closeButton,size:"medium",children:We(Ps,{color:"primary"})})]})};wp.classes=hp;var xp=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,kp=(()=>{let e=0;return()=>(++e).toString()})(),_p=new Map,Ep=e=>{if(_p.has(e))return;let t=setTimeout((()=>{_p.delete(e),Op({type:4,toastId:e})}),1e3);_p.set(e,t)},Sp=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return t.toast.id&&(e=>{let t=_p.get(e);t&&clearTimeout(t)})(t.toast.id),{...e,toasts:e.toasts.map((e=>e.id===t.toast.id?{...e,...t.toast}:e))};case 2:let{toast:n}=t;return e.toasts.find((e=>e.id===n.id))?Sp(e,{type:1,toast:n}):Sp(e,{type:0,toast:n});case 3:let{toastId:r}=t;return r?Ep(r):e.toasts.forEach((e=>{Ep(e.id)})),{...e,toasts:e.toasts.map((e=>e.id===r||void 0===r?{...e,visible:!1}:e))};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter((e=>e.id!==t.toastId))};case 5:return{...e,pausedAt:t.time};case 6:let a=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map((e=>({...e,pauseDuration:e.pauseDuration+a})))}}},Cp=[],Tp={toasts:[],pausedAt:void 0},Op=e=>{Tp=Sp(Tp,e),Cp.forEach((e=>{e(Tp)}))},Dp={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Pp=e=>(t,n)=>{let r=((e,t="blank",n)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(null==n?void 0:n.id)||kp()}))(t,e,n);return Op({type:2,toast:r}),r.id},Np=(e,t)=>Pp("blank")(e,t);Np.error=Pp("error"),Np.success=Pp("success"),Np.loading=Pp("loading"),Np.custom=Pp("custom"),Np.dismiss=e=>{Op({type:3,toastId:e})},Np.remove=e=>Op({type:4,toastId:e}),Np.promise=(e,t,n)=>{let r=Np.loading(t.loading,{...n,...null==n?void 0:n.loading});return e.then((e=>(Np.success(xp(t.success,e),{id:r,...n,...null==n?void 0:n.success}),e))).catch((e=>{Np.error(xp(t.error,e),{id:r,...n,...null==n?void 0:n.error})})),e};var Ip=(e,t)=>{Op({type:1,toast:{id:e,height:t}})},Ap=()=>{Op({type:5,time:Date.now()})},Lp=e=>{let{toasts:t,pausedAt:n}=((e={})=>{let[t,n]=r.useState(Tp);r.useEffect((()=>(Cp.push(n),()=>{let e=Cp.indexOf(n);e>-1&&Cp.splice(e,1)})),[t]);let a=t.toasts.map((t=>{var n,r;return{...e,...e[t.type],...t,duration:t.duration||(null==(n=e[t.type])?void 0:n.duration)||(null==e?void 0:e.duration)||Dp[t.type],style:{...e.style,...null==(r=e[t.type])?void 0:r.style,...t.style}}}));return{...t,toasts:a}})(e);r.useEffect((()=>{if(n)return;let e=Date.now(),r=t.map((t=>{if(t.duration===1/0)return;let n=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(n<0))return setTimeout((()=>Np.dismiss(t.id)),n);t.visible&&Np.dismiss(t.id)}));return()=>{r.forEach((e=>e&&clearTimeout(e)))}}),[t,n]);let a=r.useCallback((()=>{n&&Op({type:6,time:Date.now()})}),[n]),o=r.useCallback(((e,n)=>{let{reverseOrder:r=!1,gutter:a=8,defaultPosition:o}=n||{},i=t.filter((t=>(t.position||o)===(e.position||o)&&t.height)),l=i.findIndex((t=>t.id===e.id)),s=i.filter(((e,t)=>te.visible)).slice(...r?[s+1]:[0,s]).reduce(((e,t)=>e+(t.height||0)+a),0)}),[t]);return{toasts:t,handlers:{updateHeight:Ip,startPause:Ap,endPause:a,calculateOffset:o}}};const Rp=r.createContext(null),jp=({toastsPropsMap:e,className:t,...n})=>{const{toasts:r,handlers:a}=Lp(),{startPause:o,endPause:i,calculateOffset:l,updateHeight:s}=a;return We(lu,{id:"toast",children:r.map((r=>{const a=e.get(r.id);if(!a)return console.warn("Could not find toast with id",r.id),null;const{position:u,duration:c,...d}=a,f=l(r,{reverseOrder:!1,gutter:8,defaultPosition:u}),{transform:p,positionClassName:h}=((e,t)=>{if(!e)return{positionClassName:"",transform:`translateY(${t}px)`};let n="";const r=e.includes("center"),a=e.includes("bottom");return"top-left"===e?n=mp.topLeft:"top-center"===e?n=mp.topCenter:"top-right"===e?n=mp.topRight:"bottom-left"===e?n=mp.bottomLeft:"bottom-center"===e?n=mp.bottomCenter:"bottom-right"===e&&(n=mp.bottomRight),{positionClassName:n,transform:`translateY(${a?-t:t}px) translateX(${r?"-50%":"0"})`}})(u,f);return We("div",{onMouseEnter:o,onMouseLeave:i,...n,className:Qe(mp.toastContainer,h,t),style:{transform:p,...n.style},children:We(wp,{className:Qe(d.className),toastRef:e=>{if(e&&"number"!=typeof r.height){const t=e.getBoundingClientRect().height;s(r.id,t)}},...d,style:{opacity:r.visible?1:0,...d.style},onClose:()=>{var e;Np.dismiss(r.id),null==(e=d.onClose)||e.call(d)}},r.id)},`container-${r.id}`)}))})};t.AddIcon=_s,t.ArrowForwardIcon=Ss,t.Autocomplete=cu,t.Badge=fu,t.Breadcrumb=gu,t.BreadcrumbItem=hu,t.Button=yu,t.ButtonGroup=xu,t.CALENDAR_MAX_YEAR=Gc,t.CALENDAR_MIN_YEAR=Wc,t.Calendar=Zc,t.CalendarIcon=Us,t.Card=Xc,t.CardBody=Jc,t.CardHeader=td,t.CheckIcon=Ds,t.Checkbox=od,t.CheckboxGroup=ld,t.CheckboxIcon=Ts,t.CheckboxOutlineBlankIcon=Os,t.ChevronDownIcon=Es,t.ChevronLeftIcon=js,t.ChevronRightIcon=Ms,t.ChevronUpIcon=Cs,t.CloseIcon=Ps,t.Collapse=dd,t.CollapseHeader=ud,t.DateField=pd,t.DatePicker=gd,t.DateRangePicker=bd,t.Dropdown=wd,t.DropdownItem=Ws,t.DropdownMenu=ru,t.ErrorIcon=Ns,t.FolderIcon=Is,t.IconButton=_d,t.IconButtonGroup=Sd,t.KeyboardReturnIcon=As,t.LSD_NAMESPACE="lsd",t.LsdIcon=ks,t.MenuIcon=Ls,t.Modal=Td,t.ModalBody=Dd,t.ModalFooter=Nd,t.MoreIcon=Rs,t.NumberInput=Ad,t.PickIcon=Bs,t.Portal=lu,t.PortalContext=au,t.PortalProvider=Rd,t.Quote=Md,t.RadioButton=zd,t.RadioButtonCheckedIcon=$s,t.RadioButtonGroup=Ud,t.RadioButtonIcon=zs,t.RemoveIcon=Hs,t.SearchIcon=Fs,t.THEME_BREAKPOINTS=fs,t.THEME_TYPOGRAPHY_PROPERTIES=ms,t.THEME_TYPOGRAPHY_VARIANTS=ps,t.THEME_VARIANT_PROPERTIES=["typography"],t.TabItem=qd,t.Table=Jd,t.TableBody=Gd,t.TableHeader=Qd,t.TableItem=tf,t.TableRow=rf,t.Tabs=pf,t.Tag=mf,t.TextField=wf,t.ThemeProvider=({theme:e,children:t,injectCssVars:n=!0})=>We(bp,{children:We(Rd,{children:Ge(yp.Provider,{value:{theme:e},children:[We(vp,{theme:e}),n&&We(o.Global,{styles:e.globalStyles}),We(o.ThemeProvider,{theme:e,children:t})]})})}),t.Toast=wp,t.ToastContext=Rp,t.ToastProvider=({providerToastOptions:e,children:t,...n})=>{const[a,o]=r.useState(new Map);return Ge(Rp.Provider,{value:(t,n)=>{const r={...e,...n},a=Np("",{duration:null==r?void 0:r.duration});t&&o((e=>{const n=new Map(e);return n.set(a,{...t,...r}),n}))},children:[t,We(jp,{toastsPropsMap:a,...n})]})},t.TooltipBase=qc,t.Typography=Vs,t.createTheme=Nf,t.createThemeGlobalStyles=kf,t.defaultThemes=Af,t.useCanUsePortal=ou,t.usePortal=iu,t.useTheme=()=>r.useContext(yp).theme??Af.light,t.useToast=function(){const e=r.useContext(Rp);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},t.withTheme=e=>t=>e(t)},90602:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ae});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?c(w,--b):0,g--,10===y&&(g=1,m--),y}function E(){return y=b2||O(y)>3?"":" "}function A(e,t){for(;--t&&E()&&!(y<48||y>102||y>57&&y<65||y>70&&y<97););return T(e,C()+(t<6&&32==S()&&32==E()))}function L(e){for(;E();)switch(y){case e:return b;case 34:case 39:34!==e&&39!==e&&L(y);break;case 40:41===e&&L(e);break;case 92:E()}return b}function R(e,t){for(;E()&&e+y!==57&&(e+y!==84||47!==S()););return"/*"+T(t,b-1)+"*"+o(47===e?e:E())}function j(e){for(;!O(S());)E();return T(e,b)}var M="-ms-",F="-moz-",B="-webkit-",z="comm",$="rule",U="decl",H="@keyframes";function V(e,t){for(var n="",r=p(e),a=0;a0&&f(F)-v&&h(y>32?Y(F+";",r,n,v-1):Y(s(F," ","")+";",r,n,v-2),p);break;case 59:F+=";";default:if(h(M=Z(F,t,n,m,g,a,d,D,P=[],L=[],v),i),123===O)if(0===g)G(F,t,M,M,P,i,v,d,L);else switch(99===b&&110===c(F,3)?100:b){case 100:case 108:case 109:case 115:G(e,M,M,r&&h(Z(e,M,M,0,0,a,d,D,a,P=[],v),L),a,L,v,d,r?P:L);break;default:G(F,M,M,M,[""],L,0,d,L)}}m=g=y=0,x=T=1,D=F="",v=l;break;case 58:v=1+f(F),y=w;default:if(x<1)if(123==O)--x;else if(125==O&&0==x++&&125==_())continue;switch(F+=o(O),O*x){case 38:T=g>0?1:(F+="\f",-1);break;case 44:d[m++]=(f(F)-1)*T,T=1;break;case 64:45===S()&&(F+=N(E())),b=S(),g=v=f(D=F+=j(C())),O++;break;case 45:45===w&&2==f(F)&&(x=0)}}return i}function Z(e,t,n,r,o,i,u,c,f,h,m){for(var g=o-1,v=0===o?i:[""],b=p(v),y=0,w=0,k=0;y0?v[_]+" "+E:s(E,/&\f/g,v[_])))&&(f[k++]=S);return x(e,t,n,0===o?$:c,f,h,m)}function Q(e,t,n){return x(e,t,n,z,o(y),d(e,2,-2),0)}function Y(e,t,n,r){return x(e,t,n,U,d(e,0,r),d(e,r+1,-1),r)}var X=function(e,t,n){for(var r=0,a=0;r=a,a=S(),38===r&&12===a&&(t[n]=1),!O(a);)E();return T(e,b)},K=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(O(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=X(b-1,t,n);break;case 2:e[n]+=N(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=o(r)}}while(r=E());return e}(D(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var a=[],o=K(t,a),i=n.props,l=0,s=0;l6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return s(e,/(.+:)(.+)-([^]+)/,"$1"+B+"$2-$3$1"+F+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~u(e,"stretch")?ne(s(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,f(e)-3-(~u(e,"!important")&&10))){case 107:return s(e,":",":"+B)+e;case 101:return s(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+B+(45===c(e,14)?"inline-":"")+"box$3$1"+B+"$2$3$1"+M+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return B+e+M+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case U:e.return=ne(e.value,e.length);break;case H:return V([k(e,{value:s(e.value,"@","@"+B)})],r);case $:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([k(e,{props:[s(t,/:(read-\w+)/,":"+F+"$1")]})],r);case"::placeholder":return V([k(e,{props:[s(t,/:(plac\w+)/,":"+B+"input-$1")]}),k(e,{props:[s(t,/:(plac\w+)/,":"+F+"$1")]}),k(e,{props:[s(t,/:(plac\w+)/,M+"input-$1")]})],r)}return""}))}}],ae=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var a=e.stylisPlugins||re;var o,i,l={},s=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:()=>r})},80123:(e,t,n)=>{"use strict";n.d(t,{C:()=>g,E:()=>T,T:()=>y,_:()=>v,a:()=>k,b:()=>_,c:()=>S,h:()=>h,i:()=>p,u:()=>w,w:()=>b});var r=n(67294),a=n(90602);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";n.r(t),n.d(t,{CacheProvider:()=>r.C,ClassNames:()=>h,Global:()=>u,ThemeContext:()=>r.T,ThemeProvider:()=>r.a,__unsafe_useEmotionCache:()=>r._,createElement:()=>s,css:()=>c,jsx:()=>s,keyframes:()=>d,useTheme:()=>r.u,withEmotionCache:()=>r.w,withTheme:()=>r.b});var r=n(80123),a=n(67294),o=n(70444),i=n(27278),l=n(48137),s=(n(90602),n(8679),function(e,t){var n=arguments;if(null==t||!r.h.call(t,"css"))return a.createElement.apply(void 0,n);var o=n.length,i=new Array(o);i[0]=r.E,i[1]=(0,r.c)(e,t);for(var l=2;l{"use strict";n.d(t,{O:()=>h});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},a=n(45042),o=/[A-Z]|^ms/g,i=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},s=function(e){return null!=e&&"boolean"!=typeof e},u=(0,a.Z)((function(e){return l(e)?e:e.replace(o,"-$&").toLowerCase()})),c=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(i,(function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1===r[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)f={name:r.name,styles:r.styles,next:f},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+s;return{name:u,styles:a,next:f}}},27278:(e,t,n)=>{"use strict";var r;n.d(t,{L:()=>i,j:()=>l});var a=n(67294),o=!!(r||(r=n.t(a,2))).useInsertionEffect&&(r||(r=n.t(a,2))).useInsertionEffect,i=o||function(e){return e()},l=o||a.useLayoutEffect},70444:(e,t,n)=>{"use strict";n.d(t,{My:()=>o,fp:()=>r,hC:()=>a});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var a=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},o=function(e,t,n){a(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}},19044:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#fff",d:"M9 17.5V.5M.5 9h17"})))}},80255:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M11.764 5.294 7.06 10l4.705 4.706",stroke:"#000",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))}},67146:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M11.667 6.417h-7.1l3.261-3.261L7 2.333 2.333 7 7 11.667l.823-.823-3.255-3.26h7.099V6.417Z",fill:"#fff"})))}},68425:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("rect",{width:20,height:20,rx:10,fill:"#000"})),a||(a=o.createElement("path",{d:"m9 8 2 2-2 2",stroke:"#fff",strokeWidth:1.2,strokeLinecap:"round",strokeLinejoin:"round"})))}},88121:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m7 2.333-.823.823 3.255 3.26H2.333v1.167h7.1l-3.256 3.261.823.823L11.667 7 7 2.333Z",fill:"#fff"})))}},62082:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M20 20a3.21 3.21 0 0 1-2.354-.98 3.21 3.21 0 0 1-.98-2.353c0-.917.327-1.702.98-2.355A3.21 3.21 0 0 1 20 13.333a3.21 3.21 0 0 1 2.354.98 3.21 3.21 0 0 1 .98 2.354 3.21 3.21 0 0 1-.98 2.354A3.21 3.21 0 0 1 20 20Zm-6.666 6.667v-2.334c0-.472.121-.906.364-1.302.244-.396.567-.698.969-.906.86-.43 1.736-.754 2.625-.97A11.418 11.418 0 0 1 20 20.834c.917 0 1.82.108 2.709.324.888.215 1.763.538 2.625.968.402.208.725.51.969.907.243.396.364.83.364 1.301v2.334H13.333ZM15 25h10v-.667a.817.817 0 0 0-.417-.708 10.844 10.844 0 0 0-2.27-.843 9.652 9.652 0 0 0-4.625 0c-.764.187-1.521.468-2.271.843a.815.815 0 0 0-.303.292.776.776 0 0 0-.114.416V25Zm5-6.667c.459 0 .851-.163 1.178-.49.326-.326.49-.719.489-1.176 0-.459-.164-.851-.49-1.178A1.602 1.602 0 0 0 20 15c-.458 0-.85.164-1.177.49-.327.328-.49.72-.49 1.178 0 .458.164.85.49 1.177.327.327.72.49 1.177.49Z",fill:"#fff"})),a||(a=o.createElement("rect",{x:.5,y:.5,width:39,height:39,rx:19.5,stroke:"#fff"})))}},80469:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m12.667 4.273-.94-.94L8.001 7.06 4.274 3.333l-.94.94L7.061 8l-3.727 3.727.94.94L8.001 8.94l3.726 3.727.94-.94L8.941 8l3.726-3.727Z",fill:"#fff",opacity:.6})))}},94793:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M2.917 12.833c-.321 0-.596-.114-.825-.343a1.121 1.121 0 0 1-.342-.823V3.5h1.167v8.167h6.416v1.166H2.917ZM5.25 10.5c-.32 0-.596-.114-.824-.343a1.121 1.121 0 0 1-.343-.824v-7c0-.32.115-.595.343-.824.229-.229.504-.343.824-.342h5.25c.32 0 .596.114.824.343.229.228.343.503.343.823v7c0 .321-.115.596-.343.825a1.121 1.121 0 0 1-.824.342H5.25Zm0-1.167h5.25v-7H5.25v7Z",fill:"#fff"})))}},14607:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M14.2 23.077c-1.733 0-3.147-1.575-3.147-3.504 0-1.926 1.379-3.5 3.149-3.5 1.75 0 3.183 1.574 3.148 3.5 0 1.929-1.398 3.504-3.15 3.504Zm11.623 0c-1.733 0-3.15-1.575-3.15-3.504 0-1.926 1.382-3.5 3.15-3.5 1.75 0 3.184 1.574 3.15 3.5 0 1.929-1.381 3.504-3.15 3.504ZM16.875 7.205l-.513-.938-1.057.175a27.255 27.255 0 0 0-6.93 2.133l-.38.177-.237.348C3.403 15.523 2.208 21.847 2.8 28.06l.065.677.55.4a28.181 28.181 0 0 0 8.463 4.238l1.317.403 1.855-4.528c3.183.787 6.717.788 9.898 0l1.845 4.53 1.317-.405a28.033 28.033 0 0 0 8.467-4.24l.545-.397.066-.67c.727-7.2-1.161-13.473-4.93-18.975l-.236-.345-.38-.173a27.625 27.625 0 0 0-6.924-2.133l-1.03-.172-.523.902c-.155.27-.301.544-.438.823a26.463 26.463 0 0 0-5.439 0c-.133-.266-.27-.53-.413-.79Zm-5.683 20.478c.328.19.675.377 1.016.547l-.748 1.827a25.041 25.041 0 0 1-5.713-2.964c-.375-5.231.688-10.508 4.273-15.95a24.256 24.256 0 0 1 4.707-1.521c.1.208.193.411.27.593l.455 1.072 1.153-.169a23.508 23.508 0 0 1 6.817 0l1.15.167.453-1.07c.078-.187.17-.39.267-.593a24.71 24.71 0 0 1 4.713 1.525c3.125 4.7 4.702 9.943 4.243 15.945a24.841 24.841 0 0 1-5.716 2.963l-.742-1.823c.343-.172.69-.359 1.022-.549.816-.47 1.695-1.056 2.255-1.616l-2.134-2.134c-.271.274-.871.7-1.628 1.137-.74.427-1.475.772-1.945.927-3.338 1.105-7.38 1.105-10.72 0-.468-.155-1.203-.5-1.943-.927-.757-.435-1.357-.863-1.63-1.137l-2.134 2.134c.562.56 1.442 1.146 2.259 1.616Z",fill:"#fff"})))}},50437:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:71,height:55,viewBox:"0 0 71 55",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("g",{clipPath:"url(#a)"},o.createElement("path",{d:"M60.105 4.898A58.55 58.55 0 0 0 45.653.415a.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 18.73-.944 32.144.293 45.39a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378c.372-.279.744-.569 1.1-.862a.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.961a.228.228 0 0 0 .092-.164c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084Zm-36.38 32.427c-3.497 0-6.38-3.211-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156Zm23.593 0c-3.498 0-6.38-3.211-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156Z",fill:"#23272A"}))),a||(a=o.createElement("defs",null,o.createElement("clipPath",{id:"a"},o.createElement("path",{fill:"#fff",d:"M0 0h71v55H0z"})))))}},23179:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),void 0===t?a.createElement("title",{id:n},"Discourse"):t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"})))}},7744:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M9.334 1.333H4c-.733 0-1.326.6-1.326 1.334l-.007 10.666c0 .734.593 1.334 1.327 1.334H12c.734 0 1.334-.6 1.334-1.334v-8l-4-4ZM4 13.333V2.667h4.667V6H12v7.333H4Z",fill:"#fff"})))}},19818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("circle",{cx:10,cy:10,r:8.333,fill:"#fff"})))}},38981:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M7 9.333 4.083 6.417 4.9 5.57l1.517 1.517V2.333h1.166v4.755L9.1 5.57l.817.846L7 9.333Zm-3.5 2.334c-.32 0-.596-.115-.824-.343a1.121 1.121 0 0 1-.343-.824V8.75H3.5v1.75h7V8.75h1.167v1.75c0 .32-.115.596-.343.824a1.121 1.121 0 0 1-.824.343h-7Z",fill:"#fff"})))}},28487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:12,height:12,viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m2 4 4 4 4-4",stroke:"#909091",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"})))}},94177:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.707 2.393.9.9c.526.52.526 1.367 0 1.887L4.787 14H2v-2.787l6.933-6.94 1.887-1.88c.52-.52 1.367-.52 1.887 0ZM3.333 12.667l.94.04 6.547-6.554-.94-.94-6.547 6.547v.907Z",fill:"#fff"})))}},96867:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M14.667 2.667H1.34l-.007 10.667h13.334V2.667ZM13.333 12H2.667V5.334L8 8.667l5.333-3.333V12ZM8 7.334 2.667 4h10.666L8 7.334Z",fill:"#fff"})))}},58611:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.192 4H3.428V2.857h9.715v9.715H12V4.808l-8.167 8.168-.809-.808L11.192 4Z",fill:"#fff"})))}},13042:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M1.804 16.292a.836.836 0 0 0 .696.374H15a.832.832 0 0 0 .766-.505l2.5-5.833a.833.833 0 0 0-.766-1.162h-.833v-2.5C16.667 5.747 15.919 5 15 5H9.454l-2.13-1.667h-3.99c-.92 0-1.667.748-1.667 1.667v10.833h.006a.834.834 0 0 0 .131.46ZM15 6.666v2.5H5a.832.832 0 0 0-.766.505l-.9 2.103V6.666H15Z",fill:"#000"})))}},96367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M4.667 11.083v-1.75h-1.75V8.166h2.916v2.917H4.667Zm3.5 0V8.166h2.916v1.167h-1.75v1.75H8.167Zm-5.25-5.25V4.666h1.75v-1.75h1.166v2.917H2.917Zm5.25 0V2.916h1.166v1.75h1.75v1.167H8.167Z",fill:"#fff"})))}},6907:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M1.75 2.917V5.25h1.167V2.917H5.25V1.75H2.917A1.17 1.17 0 0 0 1.75 2.917ZM2.917 8.75H1.75v2.333a1.17 1.17 0 0 0 1.167 1.167H5.25v-1.167H2.917V8.75Zm8.166 2.333H8.75v1.167h2.333a1.17 1.17 0 0 0 1.167-1.167V8.75h-1.167v2.333Zm0-9.333H8.75v1.167h2.333V5.25h1.167V2.917a1.17 1.17 0 0 0-1.167-1.167Z",fill:"#fff"})))}},59570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M20 4.4a16 16 0 0 0-16 16c0 7.072 4.592 13.072 10.944 15.2.8.128 1.056-.368 1.056-.8v-2.704c-4.432.96-5.376-2.144-5.376-2.144-.736-1.856-1.776-2.352-1.776-2.352-1.456-.992.112-.96.112-.96 1.6.112 2.448 1.648 2.448 1.648C12.8 30.72 15.152 30 16.064 29.616c.144-1.04.56-1.744 1.008-2.144-3.552-.4-7.28-1.776-7.28-7.872 0-1.776.608-3.2 1.648-4.336-.16-.4-.72-2.064.16-4.224 0 0 1.344-.432 4.4 1.632a15.075 15.075 0 0 1 4-.528c1.36 0 2.736.176 4 .528 3.056-2.064 4.4-1.632 4.4-1.632.88 2.16.32 3.824.16 4.224 1.04 1.136 1.648 2.56 1.648 4.336 0 6.112-3.744 7.456-7.312 7.856.576.496 1.104 1.472 1.104 2.96V34.8c0 .432.256.944 1.072.8C31.424 33.456 36 27.472 36 20.4a16.001 16.001 0 0 0-16-16Z",fill:"#fff"})))}},26890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M256 411.12 0 202.667 256 0zM256 411.12l256-208.453L256 0z"})),a||(a=o.createElement("circle",{cx:256,cy:362.667,r:149.333})))}},42924:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m4 13.333.667-2.666H2.333l.334-1.334H5l.667-2.666H3l.333-1.334H6l.667-2.666H8l-.667 2.666H10l.667-2.666H12l-.667 2.666h2.334l-.334 1.334H11l-.667 2.666H13l-.333 1.334H10l-.667 2.666H8l.667-2.666H6l-.667 2.666H4Zm2.333-4H9l.667-2.666H7l-.667 2.666Z",fill:"#fff"})))}},74297:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M8 14c-1.533 0-2.87-.508-4.009-1.525-1.139-1.017-1.791-2.287-1.958-3.808H3.4c.156 1.155.67 2.11 1.542 2.866.872.756 1.892 1.134 3.058 1.134 1.3 0 2.403-.453 3.309-1.359.905-.906 1.358-2.008 1.358-3.308 0-1.3-.453-2.403-1.359-3.309C10.402 3.786 9.3 3.333 8 3.333a4.5 4.5 0 0 0-2.15.534 4.954 4.954 0 0 0-1.683 1.466H6v1.334H2v-4h1.333v1.566A5.954 5.954 0 0 1 8 2c.833 0 1.614.158 2.342.475a6.107 6.107 0 0 1 1.9 1.283c.539.54.966 1.172 1.283 1.9C13.842 6.386 14 7.166 14 8c0 .833-.158 1.614-.475 2.342a6.108 6.108 0 0 1-1.283 1.9 6.11 6.11 0 0 1-1.9 1.283A5.793 5.793 0 0 1 8 14Zm1.867-3.2L7.333 8.267v-3.6h1.334v3.066L10.8 9.867l-.933.933Z",fill:"#fff"})))}},33336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12.667 2A1.333 1.333 0 0 1 14 3.333v9.334A1.334 1.334 0 0 1 12.667 14H3.333A1.334 1.334 0 0 1 2 12.667V3.333A1.333 1.333 0 0 1 3.333 2h9.334Zm-.334 10.333V8.8a2.173 2.173 0 0 0-2.173-2.173c-.567 0-1.227.346-1.547.866v-.74h-1.86v5.58h1.86V9.047a.93.93 0 1 1 1.86 0v3.286h1.86ZM4.587 5.707a1.12 1.12 0 0 0 1.12-1.12 1.124 1.124 0 1 0-1.12 1.12Zm.926 6.626v-5.58H3.667v5.58h1.846Z",fill:"#fff"})))}},78951:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#fff",d:"M.5 9h17"})))}},84629:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("g",{clipPath:"url(#a)"},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.79 6.75a4.979 4.979 0 1 1 9.957 0 4.979 4.979 0 0 1-9.957 0ZM6.768.572a6.179 6.179 0 1 0 3.817 11.037l5.146 5.146a1 1 0 0 0 1.414-1.414l-5.207-5.207A6.179 6.179 0 0 0 6.768.571Z",fill:"#000"}))),a||(a=o.createElement("defs",null,o.createElement("clipPath",{id:"a"},o.createElement("path",{fill:"#fff",d:"M0 0h18v18H0z"})))))}},23816:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:179,height:178,viewBox:"0 0 179 178",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M104.512 88.178c-10.667.615-17.352-1.87-28.02-1.254a44.732 44.732 0 0 0-7.853 1.146c1.575-19.73 15.538-36.988 34.525-38.085 11.652-.672 23.298 6.522 23.93 18.2.621 11.479-8.131 19.158-22.58 19.992l-.002.001Zm-28.645 40.355c-11.162.631-22.317-6.104-22.923-17.033-.596-10.742 7.79-17.93 21.633-18.71 10.218-.575 16.623 1.751 26.84 1.174a43.776 43.776 0 0 0 7.522-1.073c-1.506 18.464-14.881 34.617-33.072 35.642ZM89.5.001C40.346 0 .5 39.846.5 89c0 49.154 39.846 89 89 89s89-39.847 89-89-39.846-89-89-89",fill:"#000"})))}},35245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.906 17.987c9.395-4.094 15.66-6.792 18.795-8.096 8.95-3.723 10.81-4.37 12.022-4.39.267-.005.863.06 1.249.374.326.264.416.622.459.873.043.25.096.822.053 1.268-.485 5.097-2.583 17.463-3.65 23.171-.453 2.415-1.342 3.225-2.203 3.304-1.872.172-3.293-1.237-5.106-2.425-2.836-1.86-4.439-3.017-7.192-4.831-3.182-2.097-1.12-3.25.694-5.133.475-.493 8.72-7.993 8.88-8.674.02-.085.039-.402-.15-.57-.188-.167-.466-.11-.667-.064-.284.064-4.816 3.06-13.594 8.985-1.286.883-2.451 1.314-3.495 1.29-1.15-.024-3.364-.65-5.01-1.185-2.018-.656-3.622-1.003-3.483-2.117.073-.58.872-1.174 2.398-1.78Z",fill:"#fff"})))}},68902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:24,height:24,xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421},"aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12 0C5.374 0 0 5.372 0 12c0 6.627 5.374 12 12 12 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12Zm3.224 17.871c.188.133.43.166.646.085a.678.678 0 0 0 .422-.491c.507-2.382 1.737-8.412 2.198-10.578a.457.457 0 0 0-.151-.443.47.47 0 0 0-.465-.082c-2.446.906-9.979 3.732-13.058 4.871a.484.484 0 0 0-.316.467.483.483 0 0 0 .346.445c1.381.413 3.193.988 3.193.988s.847 2.558 1.288 3.858a.512.512 0 0 0 .352.336.505.505 0 0 0 .474-.121l1.805-1.704s2.084 1.527 3.266 2.369Zm-6.423-5.062.98 3.231.218-2.046 5.941-5.358a.162.162 0 0 0 .019-.22.165.165 0 0 0-.219-.037l-6.939 4.43Z"})))}},86089:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:17,height:14,viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M16.557 1.597a6.802 6.802 0 0 1-1.95.534A3.406 3.406 0 0 0 16.1.251a6.782 6.782 0 0 1-2.157.824 3.398 3.398 0 0 0-5.788 3.1A9.647 9.647 0 0 1 1.153.624a3.395 3.395 0 0 0-.059 3.31c.264.494.645.915 1.11 1.225a3.389 3.389 0 0 1-1.538-.425v.044a3.398 3.398 0 0 0 2.725 3.33c-.5.136-1.025.156-1.534.06a3.399 3.399 0 0 0 3.173 2.357A6.817 6.817 0 0 1 0 11.934a9.607 9.607 0 0 0 5.207 1.526c6.249 0 9.665-5.176 9.665-9.665 0-.146-.004-.293-.01-.439A6.905 6.905 0 0 0 16.556 1.6l.001-.002Z",fill:"#000"})))}},92358:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M22.62 19.134 32.63 7.5h-2.373l-8.69 10.102L14.627 7.5H6.62l10.496 15.275-10.496 12.2h2.372l9.177-10.668 7.33 10.668h8.005L22.62 19.134Zm-3.248 3.776-1.063-1.521L9.847 9.285h3.643l6.829 9.768 1.063 1.521 8.877 12.697h-3.643l-7.244-10.36v-.001Z",fill:"#fff"})))}},4074:(e,t,n)=>{"use strict";n.r(t),n.d(t,{HOSTNAMES:()=>o,SCRIPT_URL:()=>a,SITE_ID:()=>r});const r="FUTMI",a="https://fathom.status.im/tracker.js",o=[]},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(87462),o=n(68356),i=n.n(o),l=n(16887);const s={"0444839e":[()=>n.e(175).then(n.bind(n,62093)),"@site/docs/guides/js-waku/manage-filter.md",62093],"0f1b9a4a":[()=>n.e(5158).then(n.bind(n,36280)),"@site/docs/guides/js-waku/run-waku-nodejs.md",36280],"1067bd84":[()=>Promise.all([n.e(532),n.e(4881),n.e(5447)]).then(n.bind(n,45173)),"@site/docs/learn/faq.md",45173],"1236ce69":[()=>n.e(3235).then(n.bind(n,64180)),"@site/docs/research/research-and-studies/rln-key-benchmarks.md",64180],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,18652)),"@theme/DocItem",18652],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,93717)),"@theme/DocPage",93717],"1f1f54c7":[()=>n.e(2285).then(n.bind(n,55345)),"@site/docs/guides/js-waku/store-retrieve-messages.md",55345],20987266:[()=>Promise.all([n.e(532),n.e(4881),n.e(7442)]).then(n.bind(n,26820)),"@site/docs/guides/nwaku/faq.md",26820],"2f51beae":[()=>n.e(231).then(n.bind(n,59043)),"@site/docs/learn/concepts/discv5.md",59043],"3b240eda":[()=>Promise.all([n.e(532),n.e(3178)]).then(n.bind(n,68458)),"@site/docs/guides/js-waku/use-waku-react.md",68458],"3fbcf129":[()=>n.e(8173).then(n.bind(n,71899)),"@site/docs/research/research-and-studies/message-propagation.md",71899],"406e0176":[()=>Promise.all([n.e(532),n.e(3855)]).then(n.bind(n,89472)),"@site/docs/guides/nwaku/run-node.md",89472],"41a4e09e":[()=>n.e(9169).then(n.bind(n,68518)),"@site/docs/learn/waku-vs-libp2p.md",68518],"488ca57d":[()=>Promise.all([n.e(532),n.e(6839)]).then(n.bind(n,76201)),"@site/docs/guides/js-waku/index.md",76201],"4aba8864":[()=>n.e(357).then(n.bind(n,19034)),"@site/docs/learn/glossary.md",19034],"4bb5c570":[()=>n.e(161).then(n.bind(n,46771)),"@site/docs/guides/js-waku/configure-discovery.md",46771],"4e726341":[()=>n.e(2588).then(n.bind(n,82493)),"@site/docs/research/research-and-studies/incentivisation.md",82493],"500a151f":[()=>n.e(4545).then(n.bind(n,41725)),"@site/docs/terms.md",41725],"5277fe18":[()=>Promise.all([n.e(532),n.e(1374)]).then(n.bind(n,48153)),"@site/docs/guides/js-waku/use-waku-create-app.md",48153],"570575fa":[()=>n.e(345).then(n.bind(n,73266)),"@site/docs/research/benchmarks/test-results-summary.md",73266],"606377f0":[()=>n.e(5832).then(n.bind(n,89955)),"@site/docs/learn/security-features.md",89955],60832973:[()=>n.e(7304).then(n.bind(n,40259)),"@site/docs/guides/nwaku/configure-nwaku.md",40259],"63c569e1":[()=>n.e(1160).then(n.bind(n,45557)),"@site/docs/migrations/js-waku/migration_v0.026_0.027.md",45557],"6778e957":[()=>n.e(3292).then(n.bind(n,82844)),"@site/docs/learn/concepts/peer-discovery.md",82844],"6c6e315a":[()=>n.e(8319).then(n.bind(n,40029)),"@site/docs/learn/research.md",40029],"6e8bfb6f":[()=>n.e(6512).then(n.bind(n,16783)),"@site/docs/guides/nwaku/run-docker.md",16783],"7c28fd94":[()=>n.e(906).then(n.bind(n,17217)),"@site/docs/guides/nwaku/run-docker-compose.md",17217],"80a3009a":[()=>n.e(3116).then(n.bind(n,67868)),"@site/docs/learn/concepts/peer-exchange.md",67868],"80ec2a43":[()=>n.e(3634).then(n.bind(n,69399)),"@site/docs/guides/nwaku/config-methods.md",69399],"8a655033":[()=>n.e(1385).then(n.bind(n,45948)),"@site/docs/guides/nwaku/configure-discovery.md",45948],"8c5da4da":[()=>n.e(1923).then(n.bind(n,88006)),"@site/docs/privacy-policy.md",88006],"8eff6037":[()=>n.e(5844).then(n.bind(n,64985)),"@site/docs/guides/nwaku/config-options.md",64985],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"97983a7b":[()=>n.e(1937).then(n.bind(n,56055)),"@site/docs/research/research-and-studies/capped-bandwidth.md",56055],a44b8792:[()=>n.e(5787).then(n.bind(n,33447)),"@site/docs/learn/concepts/dns-discovery.md",33447],a494bfbc:[()=>Promise.all([n.e(532),n.e(4881),n.e(2675)]).then(n.bind(n,43815)),"@site/docs/guides/js-waku/faq.md",43815],b54b2767:[()=>n.e(727).then(n.bind(n,12381)),"@site/docs/learn/concepts/network-domains.md",12381],b551b2b5:[()=>n.e(101).then(n.bind(n,46645)),"@site/docs/guides/nwaku/find-node-address.md",46645],b99d0044:[()=>n.e(1201).then(n.bind(n,34765)),"@site/docs/learn/waku-network.md",34765],c57f3997:[()=>n.e(7683).then(n.bind(n,56804)),"@site/docs/guides/js-waku/light-send-receive.md",56804],c5bc235e:[()=>n.e(830).then(n.t.bind(n,83769,19)),"/home/jenkins/workspace/website/docs.waku.org/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],c764ec94:[()=>n.e(3076).then(n.bind(n,73979)),"@site/docs/learn/concepts/content-topics.md",73979],c9ea0dcf:[()=>n.e(2941).then(n.bind(n,22103)),"@site/docs/guides/getting-started.md",22103],d3c3b3be:[()=>Promise.all([n.e(532),n.e(4881),n.e(8824)]).then(n.bind(n,46442)),"@site/docs/guides/nwaku/upgrade-instructions.md",46442],d53fc737:[()=>n.e(6471).then(n.bind(n,57704)),"@site/docs/rules-of-engagement.md",57704],db32d859:[()=>n.e(6653).then(n.bind(n,47215)),"@site/docs/security.md",47215],df0a719b:[()=>n.e(6059).then(n.bind(n,61131)),"@site/docs/research/research-and-studies/maximum-bandwidth.md",61131],df28445d:[()=>Promise.all([n.e(532),n.e(2355)]).then(n.bind(n,30282)),"@site/docs/guides/js-waku/message-encryption.md",30282],e168415d:[()=>n.e(5306).then(n.bind(n,96608)),"@site/docs/research/benchmarks/postgres-adoption.md",96608],e610d71e:[()=>n.e(617).then(n.bind(n,92247)),"@site/docs/guides/js-waku/debug-waku-dapp.md",92247],e63bb37c:[()=>n.e(6321).then(n.bind(n,77362)),"@site/docs/learn/concepts/static-peers.md",77362],ef85d46a:[()=>n.e(6618).then(n.bind(n,63351)),"@site/docs/learn/concepts/transports.md",63351],f2470003:[()=>Promise.all([n.e(532),n.e(2811)]).then(n.bind(n,43733)),"@site/docs/guides/nwaku/build-source.md",43733],f7974e9c:[()=>n.e(5838).then(n.bind(n,34602)),"@site/docs/research/index.md",34602],fb5ea66b:[()=>n.e(5740).then(n.bind(n,898)),"@site/docs/learn/concepts/protocols.md",898]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>Promise.all([n.e(532),n.e(2568)]).then(n.bind(n,92568)),modules:["@theme/NotFound"],webpack:()=>[92568],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],h=[],m=(0,c.Z)(o);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),h.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/",component:f("/","3c9"),routes:[{path:"/",component:f("/","0f1"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/",component:f("/guides/js-waku/","9af"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/configure-discovery",component:f("/guides/js-waku/configure-discovery","dfe"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/debug-waku-dapp",component:f("/guides/js-waku/debug-waku-dapp","c0d"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/faq",component:f("/guides/js-waku/faq","1ad"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/light-send-receive",component:f("/guides/js-waku/light-send-receive","77b"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/manage-filter",component:f("/guides/js-waku/manage-filter","d72"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/message-encryption",component:f("/guides/js-waku/message-encryption","d96"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/run-waku-nodejs",component:f("/guides/js-waku/run-waku-nodejs","30f"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/store-retrieve-messages",component:f("/guides/js-waku/store-retrieve-messages","1c5"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/use-waku-create-app",component:f("/guides/js-waku/use-waku-create-app","76f"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/use-waku-react",component:f("/guides/js-waku/use-waku-react","ed9"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/build-source",component:f("/guides/nwaku/build-source","995"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/config-methods",component:f("/guides/nwaku/config-methods","c44"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/config-options",component:f("/guides/nwaku/config-options","def"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/configure-discovery",component:f("/guides/nwaku/configure-discovery","a6b"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/configure-nwaku",component:f("/guides/nwaku/configure-nwaku","a95"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/faq",component:f("/guides/nwaku/faq","ad1"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/find-node-address",component:f("/guides/nwaku/find-node-address","786"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-docker",component:f("/guides/nwaku/run-docker","d03"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-docker-compose",component:f("/guides/nwaku/run-docker-compose","ca4"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-node",component:f("/guides/nwaku/run-node","9f1"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/upgrade-instructions",component:f("/guides/nwaku/upgrade-instructions","8ee"),exact:!0,sidebar:"guides"},{path:"/learn/concepts/content-topics",component:f("/learn/concepts/content-topics","45b"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/discv5",component:f("/learn/concepts/discv5","01f"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/dns-discovery",component:f("/learn/concepts/dns-discovery","c5b"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/network-domains",component:f("/learn/concepts/network-domains","5d8"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/peer-discovery",component:f("/learn/concepts/peer-discovery","913"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/peer-exchange",component:f("/learn/concepts/peer-exchange","e58"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/protocols",component:f("/learn/concepts/protocols","13a"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/static-peers",component:f("/learn/concepts/static-peers","9c6"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/transports",component:f("/learn/concepts/transports","6fb"),exact:!0,sidebar:"learn"},{path:"/learn/faq",component:f("/learn/faq","74d"),exact:!0,sidebar:"learn"},{path:"/learn/glossary",component:f("/learn/glossary","cf5"),exact:!0,sidebar:"learn"},{path:"/learn/research",component:f("/learn/research","13c"),exact:!0,sidebar:"learn"},{path:"/learn/security-features",component:f("/learn/security-features","72b"),exact:!0,sidebar:"learn"},{path:"/learn/waku-network",component:f("/learn/waku-network","f0c"),exact:!0,sidebar:"learn"},{path:"/learn/waku-vs-libp2p",component:f("/learn/waku-vs-libp2p","c45"),exact:!0,sidebar:"learn"},{path:"/migrations/js-waku/migration_v0.026_0.027",component:f("/migrations/js-waku/migration_v0.026_0.027","949"),exact:!0},{path:"/privacy-policy",component:f("/privacy-policy","4cd"),exact:!0},{path:"/research/",component:f("/research/","e8b"),exact:!0,sidebar:"research"},{path:"/research/benchmarks/postgres-adoption",component:f("/research/benchmarks/postgres-adoption","563"),exact:!0,sidebar:"research"},{path:"/research/benchmarks/test-results-summary",component:f("/research/benchmarks/test-results-summary","6d0"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/capped-bandwidth",component:f("/research/research-and-studies/capped-bandwidth","ee6"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/incentivisation",component:f("/research/research-and-studies/incentivisation","d49"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/maximum-bandwidth",component:f("/research/research-and-studies/maximum-bandwidth","80a"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/message-propagation",component:f("/research/research-and-studies/message-propagation","46a"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/rln-key-benchmarks",component:f("/research/research-and-studies/rln-key-benchmarks","5d8"),exact:!0,sidebar:"research"},{path:"/rules-of-engagement",component:f("/rules-of-engagement","0fc"),exact:!0},{path:"/security",component:f("/security","2fb"),exact:!0},{path:"/terms",component:f("/terms","37d"),exact:!0}]},{path:"*",component:f("*")}]},26724:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.onRouteDidUpdate=void 0;const r=n(70655),a=n(4074);r.__importDefault(n(10412)).default.canUseDOM&&(()=>{if(a.HOSTNAMES.length>0?!a.HOSTNAMES.includes(window.location.hostname):"localhost"===window.location.hostname)return;!function(e,t,n,r){t[r]=t[r]||function(){(t[r].q=t[r].q||[]).push(arguments)};const a=e.createElement("script"),o=e.getElementsByTagName("script")[0];a.async=1,a.src=n,a.id="fathom-script",o.parentNode.insertBefore(a,o)}(document,window,a.SCRIPT_URL,"fathom");const{fathom:e}=window;e("set","siteId",a.SITE_ID),e("trackPageview")})();t.onRouteDidUpdate=e=>{let{location:t,previousLocation:n}=e;window.fathom&&t.pathname!==n?.pathname&&window.fathom("trackPageview")}},85711:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createPromise=t.ResultType=void 0;const r=n(70655),a=n(90022),o=n(91073),i=n(67133),l=n(98202),s=r.__importStar(n(61029)),u=e=>{let{versionUrl:t,searchContextByPaths:n}=e,r=window.location.pathname;if(r=r.endsWith("/")?r:r+"/",!Array.isArray(n)||!r.startsWith(t))return"";const a=r.substring(t.length);return n.find((e=>a===e||a.startsWith(`${e}/`)))??""};class c{constructor(e){this.config=e,this.loading=!1,this.source=null,this.init=async()=>{this.loading=!0;const{wrappedIndexes:e,zhDictionary:t}=await(async e=>{const{wrappedIndexes:t,zhDictionary:n}=await(0,a.fetchIndexes)(e.versionUrl,e.searchContext);return{wrappedIndexes:t,zhDictionary:n}})({versionUrl:this.baseUrl,searchContext:u({versionUrl:this.baseUrl,searchContextByPaths:this.searchContextByPaths})});this.source=(0,l.SearchSourceFactory)(e,t,this.config.resultsLimit)},this.query=async e=>{if(!this.source)throw new Error("Not initialized");const{promise:n,callback:r}=(0,t.createPromise)();return this.source&&this.source(e,r),{results:(await n).map((e=>this.formatResult(e)))}},this.formatResult=e=>({...e,type:this.resultTypeToString(e.type),page:e.page?this.formatDocument(e.page):null,document:e.document?this.formatDocument(e.document):null,highlighted:(0,i.highlightStemmed)(e.document.t,(0,o.getStemmedPositions)(e.metadata,"t"),e.tokens)}),this.resultTypeToString=e=>({0:d.Title,1:d.Heading,2:d.Paragraph}[e]),this.formatDocument=e=>({id:e.i,title:e.t,url:e.u,hash:e.h,parentId:e.p,breadcrumb:e.b,sectionTitle:e.s}),this.baseUrl=e.preferredVersionPath,this.searchContextByPaths=e.searchContextByPaths??""}}var d;!function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(d=t.ResultType||(t.ResultType={}));t.createPromise=()=>{let e,t;const n=new Promise(((n,r)=>{e=n,t=r}));return{reject:t,resolve:e,promise:n,callback:(n,r)=>{r?t(r):e(n)}}};(async()=>{if("undefined"==typeof window)return;const e=window;e.getProxiedGeneratedData=()=>s,e.createSearchInstance=async e=>new c(e)})()},55061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IconEmail=t.IconRemove=t.IconAdd=t.IconDownload=t.IconAvatar=t.IconX=t.IconTelegramWhite=t.IconDiscordWhite=t.IconExternalLink=t.IconFullscreenExit=t.IconFullscreen=t.IconEdit=t.IconClose=t.IconHistory=t.IconCopy=t.IconGScholar=t.IconDropdown=t.IconSearch=t.IconFolderFilled=t.IconDot=t.IconLinkedin=t.IconDiscourse=t.IconTelegram=t.IconTwitter=t.IconStatus=t.IconDiscord=t.IconGithub=t.IconFolder=t.IconArrowLeft=t.IconArrowRight=t.IconArrowLeftCircle=t.IconArrowRightCircle=t.Icon=void 0;const r=n(70655),a=n(86010),o=r.__importDefault(n(67294)),i=r.__importDefault(n(27861)),l=r.__importDefault(n(19044)),s=r.__importDefault(n(80255)),u=r.__importDefault(n(67146)),c=r.__importDefault(n(68425)),d=r.__importDefault(n(88121)),f=r.__importDefault(n(62082)),p=r.__importDefault(n(80469)),h=r.__importDefault(n(94793)),m=r.__importDefault(n(14607)),g=r.__importDefault(n(50437)),v=r.__importDefault(n(23179)),b=r.__importDefault(n(19818)),y=r.__importDefault(n(38981)),w=r.__importDefault(n(28487)),x=r.__importDefault(n(94177)),k=r.__importDefault(n(58611)),_=r.__importDefault(n(13042)),E=r.__importDefault(n(96367)),S=r.__importDefault(n(6907)),C=r.__importDefault(n(59570)),T=r.__importDefault(n(26890)),O=r.__importDefault(n(74297)),D=r.__importDefault(n(33336)),P=r.__importDefault(n(78951)),N=r.__importDefault(n(84629)),I=r.__importDefault(n(23816)),A=r.__importDefault(n(35245)),L=r.__importDefault(n(68902)),R=r.__importDefault(n(86089)),j=r.__importDefault(n(92358)),M=r.__importDefault(n(96867));t.Icon=e=>{const{children:t,size:n="m"}=e;return o.default.createElement("div",{className:(0,a.clsx)(i.default.icon,i.default[n],e.stroke&&i.default.stroke,e.fill&&i.default.fill,e.className&&e.className)},t)};t.IconArrowRightCircle=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(c.default,null));t.IconArrowLeftCircle=e=>o.default.createElement(t.Icon,null,o.default.createElement(s.default,null));t.IconArrowRight=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(d.default,null));t.IconArrowLeft=e=>o.default.createElement(t.Icon,null,o.default.createElement(u.default,null));t.IconFolder=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(_.default,null));t.IconGithub=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(C.default,null));t.IconDiscord=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(g.default,null));t.IconStatus=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(I.default,null));t.IconTwitter=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(R.default,null));t.IconTelegram=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(L.default,null));t.IconDiscourse=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(v.default,null));t.IconLinkedin=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(D.default,null));t.IconDot=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(b.default,null));t.IconFolderFilled=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(_.default,null));t.IconSearch=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(N.default,null));t.IconDropdown=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(w.default,null));t.IconGScholar=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(T.default,null));t.IconCopy=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(h.default,null));t.IconHistory=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(O.default,null));t.IconClose=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(p.default,null));t.IconEdit=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(x.default,null));t.IconFullscreen=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(S.default,null));t.IconFullscreenExit=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(E.default,null));t.IconExternalLink=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(k.default,null));t.IconDiscordWhite=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(m.default,null));t.IconTelegramWhite=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(A.default,null));t.IconX=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(j.default,null));t.IconAvatar=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(f.default,null));t.IconDownload=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(y.default,null));t.IconAdd=e=>o.default.createElement(t.Icon,{...e,stroke:!0},o.default.createElement(l.default,null));t.IconRemove=e=>o.default.createElement(t.Icon,{...e,stroke:!0},o.default.createElement(P.default,null));t.IconEmail=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(M.default,null))},78870:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(55061),t)},40466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;const r=n(70655),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294)),i=n(89164),l=n(96507),s=n(38954);n(22473);t.Modal=e=>{let{open:t=!1,onClose:n,keepMounted:r=!1,className:u,children:c,...d}=e;const f=(0,l.useHydrated)(),p=()=>{n&&n()};return(0,i.useKeyPressEvent)((e=>"Escape"===e.code),(e=>{p()})),f&&(t||r)?o.default.createElement(s.Portal,{containerId:"lsd-presentation",id:d.id},o.default.createElement("div",{className:(0,a.default)(u,"l-modal",t&&"l-modal--open"),...d},o.default.createElement("div",{className:"l-modal__container"},o.default.createElement("div",{className:"l-modal__content"},c),o.default.createElement("div",{className:"l-modal__backdrop",onClick:p})))):o.default.createElement(o.default.Fragment,null)}},38954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Portal=void 0;const r=n(70655).__importDefault(n(67294)),a=n(73935),o=n(40653);t.Portal=e=>{let{children:t,containerId:n,id:i}=e;if("undefined"==typeof window)return r.default.createElement(r.default.Fragment,null);const l=(0,o.usePortal)({parentId:n});return(0,a.createPortal)(t,l,i)}},40653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePortal=void 0;const r=n(67294),a=n(89321);t.usePortal=e=>{let{parentId:t}=e;const n=(0,r.useRef)();return n.current||(n.current=document.createElement("div")),(0,r.useEffect)((()=>{if(n.current)return document.getElementById(t)?.appendChild(n.current),()=>{const e=n.current;e&&(0,a.settleSync)((()=>document.getElementById(t)?.removeChild(e)))}}),[t,n.current]),n.current}},19843:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LightBoxWrapper=t.useLightBox=t.LightBoxContext=t.LightBoxProvider=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(29785)),i=r.__importDefault(n(86010)),l=r.__importStar(n(67294)),s=r.__importStar(n(33199)),u=n(89164),c=n(55061),d=n(38954),f=n(96507),p=n(53708),h=r.__importDefault(n(10153));t.LightBoxProvider=e=>{let{children:n}=e;const r=(0,f.useHydrated)(),s=(0,u.useWindowScroll)(),[m,g]=(0,l.useState)(null),[v,b]=(0,l.useState)({opacity:"0.5"}),y=(0,p.useIsMobile)(),w=(0,l.useMemo)((()=>({opacity:1,transform:"scale(1) translate(0px, 0px)",transition:"0.3s"})),[m]),x=e=>{g(e);const t=document.body.clientWidth,n=window.innerHeight,r=window.innerWidth>768?.9375*t:t-32,a=n-128,o=e.getBoundingClientRect(),i=Math.min(a/o.height,r/o.width),l=[o.left+o.width/2,o.top+o.height/2],s=[t/2,n/2].map(((e,t)=>(e-l[t])/i));b({zIndex:202,transform:`scale(${i}) translate(${s[0]}px, ${s[1]}px)`,position:"relative"})},k=()=>{g(null)};return(0,l.useEffect)((()=>{m&&window.innerWidth>768&&k()}),[s]),(0,l.useEffect)((()=>{if(y&&m){document.querySelector("html").style.overflow="hidden"}else{document.querySelector("html").style.overflow="initial"}}),[y,m]),l.default.createElement(t.LightBoxContext.Provider,{value:{active:m,style:w,activeStyle:v,display:x,close:k,toggle:e=>{const t=m;k(),t!==e&&x(e)}}},n,r&&l.default.createElement(d.Portal,{containerId:"lsd-presentation"},l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.backdrop,m&&h.default.visible)}),l.default.createElement("div",{className:(0,i.default)(h.default.navWrapper,m&&h.default.visible)},l.default.createElement("nav",{className:(0,i.default)(h.default.nav,"navbar",m&&h.default.visible)},l.default.createElement(o.default,null),l.default.createElement(a.IconButton,{size:"medium",onClick:k},l.default.createElement(c.IconFullscreenExit,null)))))))},t.LightBoxContext=l.default.createContext({style:{},activeStyle:{},active:null,close:null,toggle:null,display:null});t.useLightBox=()=>{const e=(0,l.useContext)(t.LightBoxContext);return{getStyle:t=>({...e.style,...t===e.active?e.activeStyle:{}}),style:e.style,activeStyle:e.activeStyle,active:e.active,isActive:!!e.active,close:e.close,toggle:e.toggle,display:e.display,isActiveElement:t=>e.active===t}};t.LightBoxWrapper=e=>{let{children:n}=e;const r=(0,l.useRef)(null),o=(0,l.useRef)(null),{getStyle:u,display:d,isActiveElement:f}=(0,t.useLightBox)(),m=(0,p.useIsMobile)(),g=(0,l.useCallback)((e=>{let{x:t,y:n,scale:r}=e;const{current:a}=o;if(a){const e=(0,s.make3dTransformValue)({x:t,y:n,scale:r});a.style.setProperty("transform",e)}}),[]),v=m&&r.current&&f(r.current)?l.default.createElement(s.default,{onUpdate:g,doubleTapZoomOutOnMaxScale:!0,maxZoom:3},l.default.createElement("div",{ref:o},n)):l.default.createElement(l.default.Fragment,null,n,l.default.createElement(a.IconButton,{className:h.default.fullscreenButton,size:"medium",onClick:()=>r.current&&d(r.current)},l.default.createElement(c.IconFullscreen,null)));return l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.wrapper,f(r.current)&&h.default.active),ref:r,style:r.current?u(r.current):{}},v))}},78991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeProvider=void 0;const r=n(70655),a=n(31665),o=n(70917),i=r.__importDefault(n(67294)),l=n(92198);t.ThemeProvider=e=>{let{children:t}=e;const n=(0,l.useTheme)();return i.default.createElement(a.ThemeProvider,{theme:n.current,injectCssVars:!1},i.default.createElement(o.Global,{styles:n.cssVars}),t)}},27967:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(78991),t)},89321:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.settleSync=t.settle=void 0;t.settle=async e=>{try{return["function"==typeof e?await e():await e,void 0]}catch(t){return[void 0,t]}};t.settleSync=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}}},28097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureTrailingSlash=t.ensureTrailingString=void 0;t.ensureTrailingString=(e,t)=>e.endsWith(t)?e:e+t;t.ensureTrailingSlash=e=>(0,t.ensureTrailingString)(e,"/")},92198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTheme=void 0;const r=n(31665),a=n(82818),o=n(70917),i=n(67294),l=n(54400);t.useTheme=()=>{const e=(0,a.useColorMode)(),{typography:t}=(0,l.useThemeOptions)(),n=t?.genericFontFamily??"sans-serif",s=r.defaultThemes,u=(0,i.useMemo)((()=>{const e={breakpoints:{},palette:{},typography:{},typographyGlobal:{genericFontFamily:n},spacing:[]};return{light:(0,r.createTheme)(e,s.light),dark:(0,r.createTheme)(e,s.dark)}}),[s,n]);return{dark:u.dark,light:u.light,current:u[e.colorMode],colorMode:e.colorMode,cssVars:(c=u.light,d=u.dark,f=u.light,(0,i.useMemo)((()=>o.css` + html:not([data-theme]) { + ${f.cssVars} + } + + html[data-theme='light'] { + ${c.cssVars} + } + + html[data-theme='dark'] { + ${d.cssVars} + } + `),[d,c]))};var c,d,f}},55873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useEventListener=void 0;const r=n(67294);t.useEventListener=(e,t,n,a,o)=>{const i=(0,r.useMemo)((()=>"string"==typeof e?e:e()),[]),l=(0,r.useMemo)((()=>"function"==typeof t?t():t),[t]);(0,r.useEffect)((()=>{if(l?.addEventListener&&l?.removeEventListener)return l.addEventListener(i,n,a),()=>{l.removeEventListener(i,n,a)}}),[i,l])}},96507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHydrated=void 0;const r=n(67294);t.useHydrated=()=>{const[e,t]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{t(!0)}),[]),e}},53708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIsMobile=void 0;const r=n(89164);t.useIsMobile=()=>(0,r.useMedia)("(max-width: 1199px)")},81803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePersistedHistory=void 0;const r=n(89164);t.usePersistedHistory=(e,t)=>{const n=t?.unique??!1,a=t?.equals??((e,t)=>e===t),o=t?.maxItems??null,[i,l]=(0,r.useLocalStorage)("logos-docusaurus-theme-"+e,[]),s=e=>{l((i??[]).filter(((t,n)=>!e(t,n))))};return{add:e=>{const t=i??[],r=[e,...n?t.filter((t=>!a(t,e))):t];l(o?r.slice(0,o):r)},clear:()=>{l([])},remove:s,removeByIndex:e=>{s(((t,n)=>n===e))},list:i}}},54400:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocThemeOptions=t.useThemeOptions=void 0;const r=n(70655),a=n(80143),o=r.__importDefault(n(52263));t.useThemeOptions=()=>{const{siteConfig:{customFields:e={}}}=(0,o.default)();return e["logos-docusaurus-theme"]??{}};t.useDocThemeOptions=()=>{const e=(0,a.useActivePlugin)(),n=(0,t.useThemeOptions)();return e?n?.docs?.[e?.pluginId]??{}:{}}},521:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useWindowEventListener=void 0;const r=n(55873);t.useWindowEventListener=function(e,t,n,a){void 0===a&&(a=[]),(0,r.useEventListener)(e,(()=>"undefined"!=typeof window&&window),t,n,a)}},66354:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(95999),i=r.__importDefault(n(72389)),l=r.__importDefault(n(55211)),s=r.__importDefault(n(67080)),u=r.__importDefault(n(86010)),c=r.__importDefault(n(67294)),d=r.__importDefault(n(8633));t.Z=c.default.memo((function(e){let{className:t,buttonClassName:n,value:r,onChange:f}=e;const p=(0,i.default)(),h=(0,o.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,o.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,o.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return c.default.createElement(a.IconButton,{className:(0,u.default)("clean-btn",d.default.toggle,t,!p&&d.default.toggleButtonDisabled,n),type:"button",onClick:()=>f("dark"===r?"light":"dark"),disabled:!p,title:h,"aria-label":h,"aria-live":"polite"},c.default.createElement(s.default,{className:(0,u.default)(d.default.toggleIcon,d.default.lightToggleIcon)}),c.default.createElement(l.default,{className:(0,u.default)(d.default.toggleIcon,d.default.darkToggleIcon)}))}))},52601:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(79762));t.Z=function(e){let{style:t,links:n,logo:r,copyright:s}=e;const[u,c]=(e=>{const t=[],n=[];for(const r of e)"title"in r&&"string"==typeof r.title&&r.title.startsWith("shared:")?n.push({...r,title:r.title.slice(7)}):t.push(r);return[t,n]})(n.props.links);return i.default.createElement("footer",{className:(0,o.default)("footer",{"footer--dark":"dark"===t})},i.default.createElement("div",{className:(0,o.default)("container","container-fluid",l.default.firstRow)},(r||s)&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"footer__bottom text--center"},r&&i.default.createElement("div",{className:"margin-bottom--sm"},r),s)),i.default.cloneElement(n,{links:u})),i.default.createElement("div",{className:(0,o.default)(l.default.secondRow)},i.default.createElement("span",{className:(0,o.default)("footer__bottom text--center")},"Built by"," ",i.default.createElement("a",{href:"https://free.technology/",target:"_blank",className:(0,o.default)(l.default.footerLink)},"IFT")),i.default.cloneElement(n,{links:c})),i.default.createElement(a.Button,{className:l.default.backToTop,size:"small",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},"Back to top \u2191"))}},90988:(e,t,n)=>{"use strict";const r=n(70655).__importDefault(n(67294)),a=n(82818),o=n(91338),i=(0,a.composeProviders)([o.AnnouncementBarProvider,o.ScrollControllerProvider,o.DocsPreferredVersionContextProvider,o.PluginHtmlClassNameProvider,o.NavbarProvider]);t.Z=function(e){let{children:t}=e;return r.default.createElement(i,null,t)}},16853:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(39960)),i=r.__importDefault(n(44996)),l=r.__importDefault(n(52263)),s=n(82818),u=r.__importDefault(n(16019));function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=a.default.createElement(u.default,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.default.createElement("div",{className:r},l):l}t.default=function(e){const{siteConfig:{title:t}}=(0,l.default)(),{navbar:{title:n,logo:r}}=(0,s.useThemeConfig)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,i.default)(r?.href||"/"),h=n?"":t,m=r?.alt??h;return a.default.createElement(o.default,{to:p,...f,...r?.target&&{target:r.target}},r&&a.default.createElement(c,{logo:r,alt:m,imageClassName:u}),null!=n&&a.default.createElement("b",{className:d},n))}},10428:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=r.__importDefault(n(29865)),c=r.__importDefault(n(4710)),d=r.__importDefault(n(33760)),f=r.__importDefault(n(86010)),p=r.__importDefault(n(67294)),h=n(96507),m=r.__importDefault(n(90826));function g(e){let{items:t}=e;return p.default.createElement(p.default.Fragment,null,t.map(((e,t)=>p.default.createElement(o.ErrorCauseBoundary,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},p.default.createElement(c.default,{...e})))))}t.Z=function(){const e=(0,h.useHydrated)(),t=(0,i.useNavbarMobileSidebar)(),n=(0,o.useThemeConfig)().navbar.items,[r,c]=(0,i.splitNavbarItems)(n.filter((e=>!["search"].includes(e.type??"")))),v=n.find((e=>"search"===e.type));return p.default.createElement("div",{className:"navbar__inner"},p.default.createElement("div",{className:"navbar__left"},p.default.createElement(s.default,null)),p.default.createElement("div",{className:"navbar__left-items"},p.default.createElement(g,{items:r})),p.default.createElement("div",{className:"navbar__right-items"},p.default.createElement(g,{items:c}),p.default.createElement(a.IconButtonGroup,{className:m.default.iconButtonGroup,size:"medium"},p.default.createElement(l.default,{key:"color-toggle",className:(0,f.default)(m.default.colorModeToggle,"navbar__color-mode-toggle")}),e&&p.default.createElement(p.default.Fragment,{key:"search"},v&&p.default.createElement(d.default,null)),p.default.createElement(p.default.Fragment,{key:"mobile-sidebar-toggle"},!t.disabled&&p.default.createElement(u.default,null)))))}},4818:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=n(82818),l=n(91338),s=n(95999),u=r.__importDefault(n(2203)),c=r.__importDefault(n(97087));function d(e){return a.default.createElement("div",{role:"presentation",...e,className:(0,o.default)("navbar-sidebar__backdrop",e.className)})}t.Z=function(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,i.useThemeConfig)(),f=(0,l.useNavbarMobileSidebar)(),{navbarRef:p,isNavbarVisible:h}=(0,l.useHideableNavbar)(n);return a.default.createElement("nav",{ref:p,"aria-label":(0,s.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.default)("navbar","navbar--fixed-top",n&&[c.default.navbarHideable,!h&&c.default.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":f.shown})},t,a.default.createElement(d,{onClick:f.toggle}),a.default.createElement(u.default,null))}},29785:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(16853));t.default=function(){return a.default.createElement(o.default,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}},42977:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=n(91338),i=n(95999),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=n(31665),c=r.__importDefault(n(33760));function d(){const e=(0,o.useNavbarMobileSidebar)();return a.default.createElement("button",{type:"button","aria-label":(0,i.translate)({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()},a.default.createElement(u.CloseIcon,null))}t.Z=function(){return a.default.createElement("div",{className:"navbar-sidebar__brand"},a.default.createElement(s.default,null),a.default.createElement(l.default,{className:"margin-right--md"}),a.default.createElement(c.default,null),a.default.createElement(d,null))}},82892:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=n(91338),l=r.__importDefault(n(88507));t.Z=function(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:s}=(0,i.useNavbarSecondaryMenu)();return a.default.createElement("div",{className:(0,o.default)("navbar-sidebar",s&&"navbar-sidebar--show-secondary")},t,a.default.createElement("div",{className:(0,o.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":s})},a.default.createElement("div",{className:"navbar-sidebar__item menu"},n,!s&&a.default.createElement(l.default,null)),a.default.createElement("div",{className:"navbar-sidebar__item menu"},r)))}},38732:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(95999)),s=n(78870),u=r.__importDefault(n(67294));function c(e){return u.default.createElement("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back"},u.default.createElement(s.IconArrowLeft,null),u.default.createElement(a.Typography,null,u.default.createElement(l.default,{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)"},"Back to main menu")))}t.Z=function(){const e=0===(0,o.useThemeConfig)().navbar.items.length,t=(0,i.useNavbarSecondaryMenu)();return u.default.createElement(u.default.Fragment,null,!e&&u.default.createElement(c,{onClick:()=>t.hide()}),t.content)}},27654:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(4710)),s=r.__importDefault(n(51125)),u=r.__importDefault(n(86010)),c=r.__importStar(n(67294)),d=r.__importDefault(n(83244));function f(e,t){return e.some((e=>function(e,t){return!!(0,i.isSamePath)(e.to,t)||!!(0,o.isRegexpStringMatch)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function p(e){let{items:t,position:n,className:r,onClick:o,...i}=e;const f=(0,c.useRef)(null),[p,h]=(0,c.useState)(!1);return(0,c.useEffect)((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&h(!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)}}),[f]),c.default.createElement("div",{ref:f,className:(0,u.default)("navbar__item",d.default.dropdownNavbarItem,"dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":p})},c.default.createElement(s.default,{"aria-haspopup":"true","aria-expanded":p,role:"button",href:i.to?void 0:"#",className:(0,u.default)("navbar__link",r),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),h(!p))}},i.children??i.label),c.default.createElement(a.ChevronDownIcon,{className:(0,u.default)("margin-left-8","cursor-pointer")}),c.default.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>c.default.createElement(l.default,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))))}function h(e){let{items:t,className:n,position:r,onClick:d,...p}=e;const h=(0,i.useLocalPathname)(),m=f(t,h),{collapsed:g,toggleCollapsed:v,setCollapsed:b}=(0,o.useCollapsible)({initialState:()=>!m});return(0,c.useEffect)((()=>{m&&b(!m)}),[h,m,b]),c.default.createElement("li",{className:(0,u.default)("menu__list-item",{"menu__list-item--collapsed":g})},c.default.createElement(s.default,{role:"button",className:(0,u.default)("menu__link menu__link--sublist menu__link--sublist-caret",n),...p,onClick:e=>{e.preventDefault(),v()}},c.default.createElement(a.Typography,{variant:"body1"},p.children??p.label)),c.default.createElement(o.Collapsible,{lazy:!0,as:"ul",className:"menu__list",collapsed:g},t.map(((e,t)=>c.default.createElement(l.default,{mobile:!0,isDropdownItem:!0,onClick:d,activeClassName:"menu__link--active",...e,key:t})))))}t.default=function(e){let{mobile:t=!1,...n}=e;const r=t?h:p;return c.default.createElement(r,{...n})}},12197:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(52263)),i=n(91338),l=n(95999),s=n(28143),u=r.__importDefault(n(27654));t.Z=function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...c}=e;const{i18n:{currentLocale:d,locales:f,localeConfigs:p}}=(0,o.default)(),h=(0,i.useAlternatePageUtils)(),{search:m,hash:g}=(0,s.useLocation)(),v=[...n,...f.map((e=>{const n=`${`pathname://${h.createUrl({locale:e,fullyQualified:!1})}`}${m}${g}`;return{label:p[e]?.label,lang:p[e]?.htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[d]?.label.substring(0,2).toUpperCase();return a.default.createElement(u.default,{...c,mobile:t,label:a.default.createElement(a.default.Fragment,null,b),items:v})}},51125:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=n(31665),o=r.__importDefault(n(13919)),i=r.__importDefault(n(39960)),l=n(82818),s=r.__importDefault(n(44996)),u=r.__importDefault(n(67294)),c=n(55061),d=r.__importDefault(n(88822));t.default=function(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:f,label:p,html:h,isDropdownLink:m,prependBaseUrlToHref:g,...v}=e;const b=(0,s.default)(r),y=(0,s.default)(t),w=(0,s.default)(f,{forcePrependBaseUrl:!0}),x=p&&f&&!(0,o.default)(f),k=h?{dangerouslySetInnerHTML:{__html:h}}:{children:u.default.createElement(a.Typography,{component:"div",variant:"body2",className:d.default.linkContent},p,x&&u.default.createElement(c.IconExternalLink,{className:d.default.externalLinkIcon}))};return f?u.default.createElement(i.default,{href:g?w:f,...v,...k}):u.default.createElement(i.default,{to:b,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,l.isRegexpStringMatch)(n,t.pathname):t.pathname.startsWith(y)},...v,...k})}},85140:(e,t,n)=>{"use strict";const r=n(70655),a=n(91338),o=r.__importDefault(n(67294)),i=n(19843),l=n(27967),s=n(54400),u=r.__importDefault(n(36459));t.Z=function(e){let{children:t}=e;const n=(0,s.useDocThemeOptions)(),r=n?.sidebar?.hide;return o.default.createElement(a.ColorModeProvider,null,o.default.createElement(l.ThemeProvider,null,o.default.createElement(i.LightBoxProvider,null,o.default.createElement("div",{className:u.default.root,"data-hidden-doc-sidebar":r},t))))}},7020:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchBar=void 0;const r=n(70655),a=n(31665),o=r.__importStar(n(67294)),i=n(40466),l=n(81803),s=n(521),u=n(71044),c=r.__importDefault(n(31259)),d=n(19323),f=n(72997),p=n(43110);t.SearchBar=e=>{let{}=e;const t=(0,l.usePersistedHistory)("search",{unique:!0,equals:(e,t)=>e.title===t.title&&e.href===t.href,maxItems:10}),n=(0,u.useSearch)(),r=(0,o.useRef)(null),[h,m]=(0,o.useState)(""),[g,v]=(0,o.useState)([]),[b,y]=(0,o.useState)(!1);(0,o.useEffect)((()=>{h.length>0?(async e=>{const{results:t}=await n.query(e);v(t)})(h):v([])}),[h]),(0,o.useEffect)((()=>{b?(()=>{const e=r.current;if(!e)return;const t=e.querySelector("input");t&&setTimeout((()=>{t.focus()}),50)})():m("")}),[b]);return(0,s.useWindowEventListener)("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"KeyK"===e.code&&(e.preventDefault(),y(!0))}),{},[]),o.default.createElement(o.default.Fragment,null,o.default.createElement(a.IconButton,{onClick:()=>y(!0),size:"medium"},o.default.createElement(a.SearchIcon,null)),o.default.createElement(i.Modal,{keepMounted:!0,id:"search-modal",open:b,onClose:()=>y(!1),className:c.default.modal},o.default.createElement("div",{className:c.default.header},o.default.createElement(f.SearchInput,{containerRef:r,onClear:()=>{m("")},value:h,onChange:e=>{m(e.target.value)}}),o.default.createElement(a.IconButton,{className:c.default.closeButton,size:"medium",onClick:()=>y(!1)},o.default.createElement(a.CloseIcon,{color:"primary"}))),h.length>0&&o.default.createElement(p.SearchResults,{results:g,onNavigate:(e,n)=>{e.preventDefault(),y(!1),t.add(n),window.location.href=n.href}}),0===h.length&&o.default.createElement(d.SearchHistory,{history:t.list??[],onRemove:t.removeByIndex,onClose:()=>y(!1)})))}},19323:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchHistory=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(55061),s=n(33493),u=r.__importDefault(n(61699));t.SearchHistory=e=>{let{history:t=[],onRemove:n,onClose:r,className:c,children:d,...f}=e;return i.default.createElement("div",{className:(0,o.default)(c,u.default.root,0===t.length&&u.default.empty),...f},0===t.length?i.default.createElement(s.SearchResultMessage,null,"No recent searches"):i.default.createElement(i.default.Fragment,null,i.default.createElement(a.Typography,{className:u.default.title,variant:"subtitle2",component:"div"},"Recent"),t.map(((e,t)=>i.default.createElement("div",{key:t,className:u.default.item},i.default.createElement(l.IconHistory,null),i.default.createElement(a.Typography,{variant:"subtitle2",component:"a",href:e.href,className:u.default.itemTitle,dangerouslySetInnerHTML:{__html:e.title},onClick:()=>r&&r()}),i.default.createElement("button",{className:"clean-btn",onClick:()=>n(t)},i.default.createElement(l.IconClose,null)))))))}},72997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchInput=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(89164),s=r.__importDefault(n(9592));t.SearchInput=e=>{let{value:t="",active:n,onChange:r,onClear:u,onFocus:c,onCancel:d,className:f,inputProps:{ref:p,...h}={placeholder:""},containerRef:m,...g}=e;const v=(0,l.useMedia)("(max-width: 996px)"),b=n||t?.length>0;return i.default.createElement("div",{ref:m,className:(0,o.default)(s.default.root,b&&s.default.expanded,f),onKeyDown:e=>{"Escape"===e.code&&t.length>0&&(e.stopPropagation(),u&&u())},...g},i.default.createElement(a.TextField,{className:s.default.textField,value:t,placeholder:b||v?h.placeholder:"",onChange:r,onFocus:e=>{c&&c()},clearButton:!0,icon:i.default.createElement(a.SearchIcon,{color:"primary"}),...h}))}},49067:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultGroup=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(1443));t.SearchResultGroup=e=>{let{className:t,title:n="",children:r,...s}=e;return i.default.createElement("div",{className:(0,o.default)(l.default.root,t),...s},i.default.createElement("div",null,i.default.createElement(a.Typography,{variant:"subtitle2"},n)),i.default.createElement("ul",null,r))}},38594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(49067),t)},51105:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItem=void 0;const r=n(70655),a=r.__importDefault(n(39960)),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(7744)),s=r.__importDefault(n(42924)),u=n(95571),c=n(36301),d=r.__importDefault(n(18589)),f={[c.SearchDocumentType.Title]:i.default.createElement(l.default,{className:(0,o.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Heading]:i.default.createElement(s.default,{className:(0,o.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Paragraph]:i.default.createElement(s.default,{className:(0,o.default)(d.default.icon,d.default.fill)})};t.SearchResultItem=e=>{let{type:t,level:n=0,href:r,title:l,content:s,className:c,linkProps:{className:p,...h}={},...m}=e;const g=f[t];return i.default.createElement(a.default,{href:r,className:(0,o.default)(d.default.root,d.default[`level${n}`],p),...h},i.default.createElement(u.SearchResultItemBase,{title:l,content:s,icon:g,...m}))}},13383:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(51105),t)},86704:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItemBase=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(86620));t.SearchResultItemBase=e=>{let{icon:t,title:n,content:r,className:s,...u}=e;return i.default.createElement("li",{className:(0,o.default)(l.default.root,s),...u},i.default.createElement("span",null,t),i.default.createElement("div",null,n&&i.default.createElement(a.Typography,{variant:"subtitle2",component:"span",dangerouslySetInnerHTML:{__html:n}})))}},95571:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(86704),t)},33493:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultMessage=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(38076));t.SearchResultMessage=e=>{let{className:t,children:n,...r}=e;return i.default.createElement(a.Typography,{className:(0,o.default)(t,l.default.root),variant:"subtitle2",component:"div",...r},i.default.createElement("span",null,n))}},43110:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResults=void 0;const r=n(70655),a=r.__importDefault(n(86010)),o=r.__importStar(n(67294)),i=n(38594),l=n(13383),s=n(33493),u=n(81104),c=r.__importDefault(n(20550));t.SearchResults=e=>{let{results:t,className:n,onNavigate:r,...d}=e;const f=t.length,p=(0,o.useMemo)((()=>(0,u.groupSearchResult)(t)),[t]);return o.default.createElement("div",{className:(0,a.default)(c.default.root,0===f&&c.default.noResults)},0===f&&o.default.createElement(s.SearchResultMessage,null,"No result."),o.default.createElement("div",{className:(0,a.default)(c.default.groups)},p.map(((e,t)=>{let[n,a]=e;return o.default.createElement(o.default.Fragment,{key:t},o.default.createElement(i.SearchResultGroup,{className:c.default.group,title:n},a.map(((e,t)=>o.default.createElement(l.SearchResultItem,{key:t,type:e.type,level:e.level,href:e.href,title:e.title,content:e.content,linkProps:r?{onClick:t=>r(t,e)}:{}})))))}))))}},71044:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearch=void 0;const r=n(67294),a=n(36043);t.useSearch=()=>{const{createSearchInstance:e}=window,t=(0,a.useSearchContextPath)(),[n,o]=(0,r.useState)(!1),i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{o(!1),(async()=>{i.current=await e({resultsLimit:50,preferredVersionPath:t[0],searchContextByPaths:t[1]}),await i.current.init(),o(!0)})()}),[t[0],t[1]]),{loaded:n,query:async e=>await i.current.query(e)}}},36043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearchContextPath=void 0;const r=n(80143),a=n(28097),o=()=>window.getProxiedGeneratedData().searchContextByPaths;t.useSearchContextPath=()=>{const e=o(),t=(0,r.useActivePluginAndVersion)();if(!t)return["/",""];const{activePlugin:{pluginData:{path:n}},activeVersion:i}=t;return i?[n!==i.path?(0,a.ensureTrailingSlash)(i.path):"/",e]:["/",""]}},33760:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(44763)),o=r.__importDefault(n(67294)),i=n(7020);t.default=()=>"undefined"==typeof window?o.default.createElement(o.default.Fragment,null):o.default.createElement(a.default,{fallback:()=>o.default.createElement(o.default.Fragment,null)},o.default.createElement(i.SearchBar,null))},36301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchDocumentType=void 0,function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(t.SearchDocumentType||(t.SearchDocumentType={}))},81104:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupSearchResult=void 0;const r=n(70655),a=r.__importDefault(n(7739)),o=r.__importDefault(n(57557)),i=n(36301);t.groupSearchResult=e=>Object.entries((0,a.default)(e.map((e=>(e=>{const{type:t,document:n,page:r,highlighted:a,score:o}=e,{url:l,hash:s=""}=n,u=l+s;switch(t){case i.SearchDocumentType.Title:return{type:t,level:0,url:l,hash:s,href:u,score:o,title:a,content:"",category:n.breadcrumb?.[1]??n.title};case i.SearchDocumentType.Heading:{const e=r;return{type:t,level:1,url:l,hash:s,href:u,score:o,title:a,content:"",category:e?.breadcrumb?.[1]??e?.title??""}}case i.SearchDocumentType.Paragraph:{const e=r;return{type:t,level:2,url:l,hash:s,href:u,score:o,title:n.sectionTitle||n.title||"",content:a,category:e?.breadcrumb?.[1]??e?.title??""}}}})(e))),"category")).map((e=>{let[t,n]=e;return[t,n.map((e=>(0,o.default)(e,"category"))).sort(((e,t)=>e.score>t.score?-1:1))]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).map((e=>{let[t,n]=e;return[t,Object.entries((0,a.default)(n,"url")).map((e=>{let[t,n]=e,r=[...n].sort(((e,t)=>e.type===i.SearchDocumentType.Title||e.score>t.score?-1:1));const a=r[0]?.type===i.SearchDocumentType.Title;return r=a?r.filter((e=>!(e.type===i.SearchDocumentType.Heading&&""===e.hash))):r,r=r.map(((e,t)=>({...e,level:a?0===t?0:1:0}))),[t,r]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).flatMap((e=>{let[t,n]=e;return n}))]}))},16019:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=r.__importDefault(n(72389)),l=n(82818),s=r.__importDefault(n(65787));t.default=function(e){const t=(0,i.default)(),{colorMode:n}=(0,l.useColorMode)(),{sources:r,className:u,alt:c,...d}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.default.createElement(a.default.Fragment,null,f.map((e=>a.default.createElement("img",{key:e,src:r[e],alt:c,className:(0,o.default)(s.default.themedImage,s.default[`themedImage--${e}`],u),...d}))))}},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(67294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},91091:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),o=n(73727),i=n(70405),l=n(10412);const s=[n(85711),n(32497),n(3310),n(18320),n(11057),n(93878),n(26724)];var u=n(723),c=n(16550),d=n(18790),f=n(85140),p=n(87462),h=n(35742),m=n(52263),g=n(44996),v=n(86668),b=n(10833),y=n(94711),w=n(19727),x=n(43320),k=n(90197);function _(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.default)(),n=(0,y.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.default)(),a=function(){const{siteConfig:{url:e}}=(0,m.default)(),{pathname:t}=(0,c.TH)();return e+(0,g.default)(t)}(),o=t?`${n}${t}`:a;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function S(){const{i18n:{currentLocale:e}}=(0,m.default)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(E,null),r.createElement(_,null),r.createElement(k.Z,{tag:x.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var O=n(98934),D=n(58940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),P("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class A extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.default.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const L=A,R="__docusaurus-base-url-issue-banner-container",j="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${R}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n

    \n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

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

    \n

    We suggest trying baseUrl =

    \n
    \n`}(e)).replace(/{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.default.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:R}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.default)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,m.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(h.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var H=n(44763);function V(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(H.default,null,r.createElement(D.M,null,r.createElement(O.t,null,r.createElement(f.Z,null,r.createElement(U,null),r.createElement(S,null),r.createElement($,null),r.createElement(L,{location:T(t)},e)))))}var q=n(16887);const W=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var G=n(99670);const Z=new Set,Q=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!Y()&&!Q.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,G.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!Q.has(e))(e)&&(Q.add(e),I(e))},K=Object.freeze(X);if(l.default.canUseDOM){window.docusaurus=K;const e=a.hydrate;I(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),a=n(36809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"guides/getting-started","docs":[{"id":"guides/getting-started","path":"/","sidebar":"guides"},{"id":"guides/js-waku/configure-discovery","path":"/guides/js-waku/configure-discovery","sidebar":"guides"},{"id":"guides/js-waku/debug-waku-dapp","path":"/guides/js-waku/debug-waku-dapp","sidebar":"guides"},{"id":"guides/js-waku/faq","path":"/guides/js-waku/faq","sidebar":"guides"},{"id":"guides/js-waku/index","path":"/guides/js-waku/","sidebar":"guides"},{"id":"guides/js-waku/light-send-receive","path":"/guides/js-waku/light-send-receive","sidebar":"guides"},{"id":"guides/js-waku/manage-filter","path":"/guides/js-waku/manage-filter","sidebar":"guides"},{"id":"guides/js-waku/message-encryption","path":"/guides/js-waku/message-encryption","sidebar":"guides"},{"id":"guides/js-waku/run-waku-nodejs","path":"/guides/js-waku/run-waku-nodejs","sidebar":"guides"},{"id":"guides/js-waku/store-retrieve-messages","path":"/guides/js-waku/store-retrieve-messages","sidebar":"guides"},{"id":"guides/js-waku/use-waku-create-app","path":"/guides/js-waku/use-waku-create-app","sidebar":"guides"},{"id":"guides/js-waku/use-waku-react","path":"/guides/js-waku/use-waku-react","sidebar":"guides"},{"id":"guides/nwaku/build-source","path":"/guides/nwaku/build-source","sidebar":"guides"},{"id":"guides/nwaku/config-methods","path":"/guides/nwaku/config-methods","sidebar":"guides"},{"id":"guides/nwaku/config-options","path":"/guides/nwaku/config-options","sidebar":"guides"},{"id":"guides/nwaku/configure-discovery","path":"/guides/nwaku/configure-discovery","sidebar":"guides"},{"id":"guides/nwaku/configure-nwaku","path":"/guides/nwaku/configure-nwaku","sidebar":"guides"},{"id":"guides/nwaku/faq","path":"/guides/nwaku/faq","sidebar":"guides"},{"id":"guides/nwaku/find-node-address","path":"/guides/nwaku/find-node-address","sidebar":"guides"},{"id":"guides/nwaku/run-docker","path":"/guides/nwaku/run-docker","sidebar":"guides"},{"id":"guides/nwaku/run-docker-compose","path":"/guides/nwaku/run-docker-compose","sidebar":"guides"},{"id":"guides/nwaku/run-node","path":"/guides/nwaku/run-node","sidebar":"guides"},{"id":"guides/nwaku/upgrade-instructions","path":"/guides/nwaku/upgrade-instructions","sidebar":"guides"},{"id":"learn/concepts/content-topics","path":"/learn/concepts/content-topics","sidebar":"learn"},{"id":"learn/concepts/discv5","path":"/learn/concepts/discv5","sidebar":"learn"},{"id":"learn/concepts/dns-discovery","path":"/learn/concepts/dns-discovery","sidebar":"learn"},{"id":"learn/concepts/network-domains","path":"/learn/concepts/network-domains","sidebar":"learn"},{"id":"learn/concepts/peer-discovery","path":"/learn/concepts/peer-discovery","sidebar":"learn"},{"id":"learn/concepts/peer-exchange","path":"/learn/concepts/peer-exchange","sidebar":"learn"},{"id":"learn/concepts/protocols","path":"/learn/concepts/protocols","sidebar":"learn"},{"id":"learn/concepts/static-peers","path":"/learn/concepts/static-peers","sidebar":"learn"},{"id":"learn/concepts/transports","path":"/learn/concepts/transports","sidebar":"learn"},{"id":"learn/faq","path":"/learn/faq","sidebar":"learn"},{"id":"learn/glossary","path":"/learn/glossary","sidebar":"learn"},{"id":"learn/research","path":"/learn/research","sidebar":"learn"},{"id":"learn/security-features","path":"/learn/security-features","sidebar":"learn"},{"id":"learn/waku-network","path":"/learn/waku-network","sidebar":"learn"},{"id":"learn/waku-vs-libp2p","path":"/learn/waku-vs-libp2p","sidebar":"learn"},{"id":"migrations/js-waku/migration_v0.026_0.027","path":"/migrations/js-waku/migration_v0.026_0.027"},{"id":"privacy-policy","path":"/privacy-policy"},{"id":"research/benchmarks/postgres-adoption","path":"/research/benchmarks/postgres-adoption","sidebar":"research"},{"id":"research/benchmarks/test-results-summary","path":"/research/benchmarks/test-results-summary","sidebar":"research"},{"id":"research/index","path":"/research/","sidebar":"research"},{"id":"research/research-and-studies/capped-bandwidth","path":"/research/research-and-studies/capped-bandwidth","sidebar":"research"},{"id":"research/research-and-studies/incentivisation","path":"/research/research-and-studies/incentivisation","sidebar":"research"},{"id":"research/research-and-studies/maximum-bandwidth","path":"/research/research-and-studies/maximum-bandwidth","sidebar":"research"},{"id":"research/research-and-studies/message-propagation","path":"/research/research-and-studies/message-propagation","sidebar":"research"},{"id":"research/research-and-studies/rln-key-benchmarks","path":"/research/research-and-studies/rln-key-benchmarks","sidebar":"research"},{"id":"rules-of-engagement","path":"/rules-of-engagement"},{"id":"security","path":"/security"},{"id":"terms","path":"/terms"}],"draftIds":[],"sidebars":{"guides":{"link":{"path":"/","label":"guides/getting-started"}},"learn":{"link":{"path":"/learn/waku-network","label":"learn/waku-network"}},"research":{"link":{"path":"/research/","label":"research/index"}}}}],"breadcrumbs":false}}}'),i=JSON.parse('{"defaultLocale":"en-GB","locales":["en-GB"],"path":"i18n","currentLocale":"en-GB","localeConfigs":{"en-GB":{"label":"British English","direction":"ltr","htmlLang":"en-GB","calendar":"gregory","path":"en-GB"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.3"},"logos-docusaurus-search-local":{"type":"package","name":"@acid-info/logos-docusaurus-search-local","version":"1.0.0-alpha.111"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.1"},"logos-docusaurus-theme":{"type":"package","name":"@acid-info/logos-docusaurus-theme","version":"1.0.0-alpha.143"},"docusaurus-fathom":{"type":"package","name":"@acid-info/docusaurus-fathom","version":"1.0.0-alpha.111"},"docusaurus-og":{"type":"package","name":"@acid-info/docusaurus-og","version":"1.0.0-alpha.131"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(67294),a=n(10412),o=n(35742),i=n(18780),l=n(59351);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.default,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});const r="undefined"!=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}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(70405);function o(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(87462),a=n(67294),o=n(73727),i=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}});var d=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.default)(),{withBaseUrl:x}=(0,d.useBaseUrlUtils)(),k=(0,a.useContext)(c),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>_.current));const E=f||p;const S=(0,s.default)(E),C=E?.replace("pathname://","");let T=void 0!==C?(O=C,v&&(e=>e.startsWith("/"))(O)?x(O):O):void 0;var O;T&&S&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const D=(0,a.useRef)(!1),P=n?o.OL:o.rU,N=u.default.canUseIntersectionObserver,I=(0,a.useRef)(),A=()=>{D.current||null==T||(window.docusaurus.preload(T),D.current=!0)};(0,a.useEffect)((()=>(!N&&S&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&I.current&&I.current.disconnect()})),[I,T,N,S]);const L=T?.startsWith("#")??!1,R=!T||!S||L;return R||g||k.collectLink(T),R?a.createElement("a",(0,r.Z)({ref:_,href:T},E&&!S&&{target:"_blank",rel:"noopener noreferrer"},b)):a.createElement(P,(0,r.Z)({},b,{onMouseEnter:A,onTouchStart:A,innerRef:e=>{_.current=e,N&&e&&S&&(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!=T&&window.docusaurus.prefetch(T))}))})),I.current.observe(e))},to:T},n&&{isActive:m,activeClassName:h}))}const p=a.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.r(t),n.d(t,{default:()=>a,hasProtocol:()=>r})},28143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Redirect:()=>r.l_,matchPath:()=>r.LX,useHistory:()=>r.k6,useLocation:()=>r.TH});var r=n(16550)},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),a=n(52263),o=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.hasProtocol)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(67294),a=n(58940);function o(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(67294),a=n(98934);function o(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(67294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},80143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{useActiveDocContext:()=>b,useActivePlugin:()=>p,useActivePluginAndVersion:()=>h,useActiveVersion:()=>v,useAllDocsData:()=>d,useDocVersionSuggestions:()=>y,useDocsData:()=>f,useLatestVersion:()=>g,useVersions:()=>m});var r=n(16550),a=n(52263),o=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.default)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function h(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function m(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return s(t,n)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},88507:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>T});var r=n(67294),a=n(86668),o=n(42489),i=n(87462),l=n(39960),s=n(44996),u=n(13919),c=n(39471);function d(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:d,...f}=t,p=(0,s.default)(n),h=(0,s.default)(a,{forcePrependBaseUrl:!0});return r.createElement(l.default,(0,i.Z)({className:"footer__link-item"},a?{href:d?h:a}:{to:p},f),o,a&&!(0,u.default)(a)&&r.createElement(c.Z,null))}function f(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(d,{item:t}))}function p(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(f,{key:t,item:e})))))}function h(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(p,{key:t,column:e}))))}function m(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function g(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(d,{item:t})}function v(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(g,{item:e}),t.length!==n+1&&r.createElement(m,null))))))}function b(e){let{links:t}=e;return(0,o.a)(t)?r.createElement(h,{columns:t}):r.createElement(v,{links:t})}var y=n(86010),w=n(16019);const x={footerLogoLink:"footerLogoLink_BH7S"};function k(e){let{logo:t}=e;const{withBaseUrl:n}=(0,s.useBaseUrlUtils)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(w.default,{className:(0,y.default)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function _(e){let{logo:t}=e;return t.href?r.createElement(l.default,{href:t.href,className:x.footerLogoLink,target:t.target},r.createElement(k,{logo:t})):r.createElement(k,{logo:t})}function E(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}var S=n(52601);function C(){const{footer:e}=(0,a.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:i}=e;return r.createElement(S.Z,{style:i,links:n&&n.length>0&&r.createElement(b,{links:n}),logo:o&&r.createElement(_,{logo:o}),copyright:t&&r.createElement(E,{copyright:t})})}const T=r.memo(C)},55211:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(87462),a=n(67294);function o(e){return a.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},67080:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(87462),a=n(67294);function o(e){return a.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}},59351:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var r=n(67294),a=n(86010),o=n(44763),i=n(10833),l=n(55225),s=n(35281),u=n(19727);const c={skipToContent:"skipToContent_fXgn"};function d(){return r.createElement(l.l,{className:c.skipToContent})}var f=n(86668),p=n(59689),h=n(87462),m=n(95999);function g(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const v={closeButton:"closeButton_CVFx"};function b(e){return r.createElement("button",(0,h.Z)({type:"button","aria-label":(0,m.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.default)("clean-btn close",v.closeButton,e.className)}),r.createElement(g,{width:14,height:14,strokeWidth:3.1}))}const y={content:"content_knG7"};function w(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,h.Z)({},e,{className:(0,a.default)(y.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const x={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function k(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:x.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:x.announcementBarPlaceholder}),r.createElement(w,{className:x.announcementBarContent}),i&&r.createElement(b,{onClick:n,className:x.announcementBarClose}))}var _=n(4818),E=n(10428);function S(){return r.createElement(_.Z,null,r.createElement(E.Z,null))}var C=n(88507),T=n(90988),O=n(69690);function D(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(m.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(O.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(O.aG,{error:t})))))}const P={mainWrapper:"mainWrapper_z2l0"};function N(e){const{children:t,noFooter:n,wrapperClassName:c,title:f,description:p}=e;return(0,u.t)(),r.createElement(T.Z,null,r.createElement(i.d,{title:f,description:p}),r.createElement(d,null),r.createElement(k,null),r.createElement(S,null),r.createElement("div",{id:l.u,className:(0,a.default)(s.k.wrapper.main,P.mainWrapper,c)},r.createElement(o.default,{fallback:e=>r.createElement(D,e)},t)),!n&&r.createElement(C.default,null))}},2101:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),a=n(86668),o=n(92949),i=n(66354);const l={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function s(e){let{className:t}=e;const n=(0,a.L)().navbar.style,s=(0,a.L)().colorMode.disableSwitch,{colorMode:u,setColorMode:c}=(0,o.I)();return s?null:r.createElement(i.Z,{className:t,buttonClassName:"dark"===n?l.darkNavbarColorModeToggle:void 0,value:u,onChange:c})}},29865:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),a=n(93163),o=n(95999),i=n(87462);function l(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,i.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function s(){const{toggle:e,shown:t}=(0,a.e)();return r.createElement("button",{onClick:e,"aria-label":(0,o.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(l,null))}},2203:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(67294),a=n(93163),o=n(69800),i=n(82892),l=n(42977),s=n(87462),u=n(86668),c=n(4710);function d(){const e=(0,a.e)(),t=(0,u.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(c.default,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}var f=n(38732);function p(){const e=(0,a.e)();return(0,o.N)(e.shown),e.shouldRender?r.createElement(i.Z,{header:r.createElement(l.Z,null),primaryMenu:r.createElement(d,null),secondaryMenu:r.createElement(f.Z,null)}):null}},4710:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var r=n(67294),a=n(87462),o=n(86010),i=n(51125);function l(e){let{className:t,isDropdownItem:n=!1,...l}=e;const s=r.createElement(i.default,(0,a.Z)({className:(0,o.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},l));return n?r.createElement("li",null,s):s}function s(e){let{className:t,isDropdownItem:n,...l}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(i.default,(0,a.Z)({className:(0,o.default)("menu__link",t)},l)))}function u(e){let{mobile:t=!1,position:n,...o}=e;const i=t?s:l;return r.createElement(i,(0,a.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var c=n(27654),d=n(12197),f=n(33760);const p={searchBox:"searchBox_ZlJk"};function h(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.default)(n,p.searchBox)},t)}var m=n(80143),g=n(53438);var v=n(60373),b=n(95999),y=n(16550);const w=e=>e.docs.find((t=>t.id===e.mainDocId));const x={default:u,localeDropdown:d.Z,search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(h,{className:n},r.createElement(f.default,null))},dropdown:c.default,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.default)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(o),s=(0,g.vY)(t,o);return null===s?null:r.createElement(u,(0,a.Z)({exact:!0},i,{isActive:()=>l?.path===s.path||!!l?.sidebar&&l.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(o),s=(0,g.oz)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(u,(0,a.Z)({exact:!0},i,{isActive:()=>l?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...i}=e;const l=(0,g.lO)(o)[0],s=t??l.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(u,(0,a.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:d,hash:f}=(0,y.TH)(),p=(0,m.useActiveDocContext)(n),h=(0,m.useVersions)(n),{savePreferredVersionName:x}=(0,v.J)(n),k=[...i,...h.map((e=>{const t=p.alternateDocVersions[e.name]??w(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>x(e.name)}})),...l],_=(0,g.lO)(n)[0],E=t&&k.length>1?(0,b.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):_.label,S=t&&k.length>1?void 0:w(_).path;return k.length<=1?r.createElement(u,(0,a.Z)({},s,{mobile:t,label:E,to:S,isActive:o?()=>!1:void 0})):r.createElement(c.default,(0,a.Z)({},s,{mobile:t,label:E,to:S,items:k,isActive:o?()=>!1:void 0}))}};function k(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=x[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(35742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>p});var r=n(67294),a=n(72389),o=n(50012),i=n(902),l=n(86668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.default)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(67294),a=n(10412),o=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.default.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{c.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},65130:(e,t,n)=>{"use strict";n.d(t,{b:()=>i,k:()=>l});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,content:n}=e;const a=function(e){return(0,r.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return r.createElement(o.Provider,{value:a},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocProvider");return e}},14353:(e,t,n)=>{"use strict";n.d(t,{D:()=>l,f:()=>s});var r=n(67294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t}=e;const[n,a]=(0,r.useState)(null),o=(0,r.useMemo)((()=>({expandedItem:n,setExpandedItem:a})),[n]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocSidebarItemsExpandedStateProvider");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>g,Oh:()=>y});var r=n(67294),a=n(80143),o=n(29935),i=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function h(){const e=(0,a.useAllDocsData)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=o.m);const t=(0,a.useDocsData)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a.useAllDocsData)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(67294),a=n(13102),o=n(87524),i=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},2730:(e,t,n)=>{"use strict";n.d(t,{a:()=>i});var r=n(67294),a=n(12466),o=n(85936);function i(e){let{threshold:t}=e;const[n,i]=(0,r.useState)(!1),l=(0,r.useRef)(!1),{startScroll:s,cancelScroll:u}=(0,a.Ct)();return(0,a.RF)(((e,n)=>{let{scrollY:r}=e;const a=n?.scrollY;a&&(l.current?l.current=!1:r>=a?(u(),i(!1)):r{e.location.hash&&(l.current=!0,i(!1))})),{shown:n,scrollToTop:()=>s(0)}}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(67294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},69800:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(67294);function a(e){void 0===e&&(e=!0),(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},66412:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(92949),a=n(86668);function o(){const{prism:e}=(0,a.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}},96841:(e,t,n)=>{"use strict";n.d(t,{S:()=>s});var r=n(67294),a=n(86668);function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const r=e.find((e=>o(e).top>=n));if(r){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function s(e){const t=(0,r.useRef)(void 0),n=l();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:r,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:l}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(r),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const r=[];for(let a=t;a<=n;a+=1)r.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),u=i(s,{anchorTopOffset:n.current}),c=e.find((e=>u&&u.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===c)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),a=n(10412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.default.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},82818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Collapsible:()=>C,ErrorBoundaryError:()=>G.aG,ErrorBoundaryTryAgainButton:()=>G.Cw,ErrorCauseBoundary:()=>G.QW,HtmlClassNameProvider:()=>D.FG,NavbarSecondaryMenuFiller:()=>N.Zo,PageMetadata:()=>D.d,ReactContextError:()=>O.i6,SkipToContentFallbackId:()=>W.u,SkipToContentLink:()=>W.l,ThemeClassNames:()=>T.k,composeProviders:()=>O.Qc,createStorageSlot:()=>a.WA,duplicates:()=>U.l,filterDocCardListItems:()=>i.MN,isMultiColumnFooterLinks:()=>z.a,isRegexpStringMatch:()=>$,listStorageKeys:()=>a._f,listTagsByLetters:()=>R,prefersReducedMotion:()=>g.n,processAdmonitionProps:()=>q,translateTagsPageTitle:()=>L,uniq:()=>U.j,useCollapsible:()=>b,useColorMode:()=>P.I,useContextualSearchFilters:()=>o._q,useCurrentSidebarCategory:()=>i.jA,useDocsPreferredVersion:()=>V.J,useEvent:()=>O.zX,useIsomorphicLayoutEffect:()=>O.LI,usePluralForm:()=>p,usePrevious:()=>O.D9,usePrismTheme:()=>H.p,useSearchLinkCreator:()=>B,useSearchQueryString:()=>F,useStorageSlot:()=>a.Nk,useThemeConfig:()=>r.L,useWindowSize:()=>I.i});var r=n(86668),a=n(50012),o=n(43320),i=n(53438),l=n(67294),s=n(52263);const u=["zero","one","two","few","many","other"];function c(e){return u.filter((t=>e.includes(t)))}const d={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function f(){const{i18n:{currentLocale:e}}=(0,s.default)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),d}}),[e])}function p(){const e=f();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=n.select(t),o=n.pluralForms.indexOf(a);return r[Math.min(o,r.length-1)]}(n,t,e)}}var h=n(87462),m=n(10412),g=n(91442);const v="ease-in-out";function b(e){let{initialState:t}=e;const[n,r]=(0,l.useState)(t??!1),a=(0,l.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const y={display:"none",overflow:"hidden",height:"0px"},w={display:"block",overflow:"visible",height:"auto"};function x(e,t){const n=t?y:w;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function k(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,l.useRef)(!1);(0,l.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,g.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??v}`,height:`${t}px`}}function i(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return x(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=y.height,e.style.overflow=y.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function _(e){if(!m.default.canUseDOM)return e?y:w}function E(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:o,className:i,disableSSRStyle:s}=e;const u=(0,l.useRef)(null);return k({collapsibleRef:u,collapsed:n,animation:a}),l.createElement(t,{ref:u,style:s?void 0:_(n),onTransitionEnd:e=>{"height"===e.propertyName&&(x(u.current,n),o?.(n))},className:i},r)}function S(e){let{collapsed:t,...n}=e;const[r,a]=(0,l.useState)(!t),[o,i]=(0,l.useState)(t);return(0,l.useLayoutEffect)((()=>{t||a(!0)}),[t]),(0,l.useLayoutEffect)((()=>{r&&i(t)}),[r,t]),r?l.createElement(E,(0,h.Z)({},n,{collapsed:o})):null}function C(e){let{lazy:t,...n}=e;const r=t?S:E;return l.createElement(r,n)}var T=n(35281),O=n(902),D=n(10833),P=n(92949),N=n(13102),I=n(87524),A=n(95999);const L=()=>(0,A.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function R(e){const t={};return Object.values(e).forEach((e=>{const n=function(e){return e[0].toUpperCase()}(e.label);t[n]??=[],t[n].push(e)})),Object.entries(t).sort(((e,t)=>{let[n]=e,[r]=t;return n.localeCompare(r)})).map((e=>{let[t,n]=e;return{letter:t,tags:n.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}var j=n(91980);const M="q";function F(){return(0,j.Nc)(M)}function B(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,s.default)(),{algolia:{searchPagePath:n}}=t;return(0,l.useCallback)((t=>`${e}${n}?${M}=${encodeURIComponent(t)}`),[e,n])}var z=n(42489);function $(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var U=n(67392),H=n(66412),V=n(60373);function q(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=l.Children.toArray(e),n=t.find((e=>l.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=l.createElement(l.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n?.props.children,rest:r}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var W=n(55225),G=n(69690)},91338:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AnnouncementBarProvider:()=>h.pl,BlogPostProvider:()=>d,Collapsible:()=>r.Collapsible,ColorModeProvider:()=>k.S,DEFAULT_SEARCH_TAG:()=>S.HX,DocProvider:()=>l.b,DocSidebarItemsExpandedStateProvider:()=>a.D,DocsPreferredVersionContextProvider:()=>p.L5,DocsSidebarProvider:()=>i.b,DocsVersionProvider:()=>o.q,ErrorBoundaryError:()=>r.ErrorBoundaryError,ErrorBoundaryTryAgainButton:()=>r.ErrorBoundaryTryAgainButton,ErrorCauseBoundary:()=>r.ErrorCauseBoundary,HtmlClassNameProvider:()=>r.HtmlClassNameProvider,NavbarProvider:()=>B,NavbarSecondaryMenuFiller:()=>r.NavbarSecondaryMenuFiller,PageMetadata:()=>r.PageMetadata,PluginHtmlClassNameProvider:()=>j.VC,ReactContextError:()=>r.ReactContextError,ScrollControllerProvider:()=>L.OC,SkipToContentFallbackId:()=>r.SkipToContentFallbackId,SkipToContentLink:()=>r.SkipToContentLink,ThemeClassNames:()=>r.ThemeClassNames,composeProviders:()=>r.composeProviders,containsLineNumbers:()=>E.nt,createStorageSlot:()=>r.createStorageSlot,docVersionSearchTag:()=>S.os,duplicates:()=>r.duplicates,filterDocCardListItems:()=>r.filterDocCardListItems,findFirstCategoryLink:()=>C.Wl,findSidebarCategory:()=>C.em,getPrismCssVariables:()=>E.QC,isActiveSidebarItem:()=>C._F,isDocsPluginEnabled:()=>C.cE,isMultiColumnFooterLinks:()=>r.isMultiColumnFooterLinks,isRegexpStringMatch:()=>r.isRegexpStringMatch,isSamePath:()=>R.Mg,keyboardFocusedClassName:()=>U.h,listStorageKeys:()=>r.listStorageKeys,listTagsByLetters:()=>r.listTagsByLetters,parseCodeBlockTitle:()=>E.bc,parseLanguage:()=>E.Vo,parseLines:()=>E.nZ,prefersReducedMotion:()=>r.prefersReducedMotion,processAdmonitionProps:()=>r.processAdmonitionProps,splitNavbarItems:()=>F,translateTagsPageTitle:()=>r.translateTagsPageTitle,uniq:()=>r.uniq,useAlternatePageUtils:()=>_.l,useAnnouncementBar:()=>h.nT,useBackToTopButton:()=>G.a,useBlogPost:()=>f,useCodeWordWrap:()=>W,useCollapsible:()=>r.useCollapsible,useColorMode:()=>r.useColorMode,useContextualSearchFilters:()=>r.useContextualSearchFilters,useCurrentSidebarCategory:()=>r.useCurrentSidebarCategory,useDoc:()=>l.k,useDocById:()=>C.xz,useDocRouteMetadata:()=>C.hI,useDocSidebarItemsExpandedState:()=>a.f,useDocsPreferredVersion:()=>r.useDocsPreferredVersion,useDocsPreferredVersionByPluginId:()=>p.Oh,useDocsSidebar:()=>i.V,useDocsVersion:()=>o.E,useDocsVersionCandidates:()=>C.lO,useEvent:()=>r.useEvent,useFilteredAndTreeifiedTOC:()=>A.b,useHideableNavbar:()=>$,useHistoryPopHandler:()=>I.Rb,useHistorySelector:()=>I.xL,useHomePageRoute:()=>R.Ns,useIsomorphicLayoutEffect:()=>r.useIsomorphicLayoutEffect,useKeyboardNavigation:()=>U.t,useLayoutDoc:()=>C.vY,useLayoutDocsSidebar:()=>C.oz,useLocalPathname:()=>N,useLocationChange:()=>O.S,useLockBodyScroll:()=>H.N,useNavbarMobileSidebar:()=>g.e,useNavbarSecondaryMenu:()=>x,usePluralForm:()=>r.usePluralForm,usePrevious:()=>r.usePrevious,usePrismTheme:()=>r.usePrismTheme,useQueryStringValue:()=>I._X,useScrollController:()=>L.sG,useScrollPosition:()=>L.RF,useScrollPositionBlocker:()=>L.o5,useSearchLinkCreator:()=>r.useSearchLinkCreator,useSearchQueryString:()=>r.useSearchQueryString,useSidebarBreadcrumbs:()=>C.s1,useSmoothScrollTo:()=>L.Ct,useStorageSlot:()=>r.useStorageSlot,useTOCHighlight:()=>z.S,useTabs:()=>m.Y,useThemeConfig:()=>r.useThemeConfig,useTitleFormatter:()=>T.p,useTreeifiedTOC:()=>A.a,useWindowSize:()=>r.useWindowSize});var r=n(82818),a=n(14353),o=n(74477),i=n(1116),l=n(65130),s=n(67294),u=n(902);const c=s.createContext(null);function d(e){let{children:t,content:n,isBlogPostPage:r=!1}=e;const a=function(e){let{content:t,isBlogPostPage:n}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:n})),[t,n])}({content:n,isBlogPostPage:r});return s.createElement(c.Provider,{value:a},t)}function f(){const e=(0,s.useContext)(c);if(null===e)throw new u.i6("BlogPostProvider");return e}var p=n(60373),h=n(59689),m=n(70989),g=n(93163),v=n(13102);const b=s.createContext(null);function y(e){let{children:t}=e;const n=function(){const e=(0,g.e)(),t=(0,v.HY)(),[n,r]=(0,s.useState)(!1),a=null!==t.component,o=(0,u.D9)(a);return(0,s.useEffect)((()=>{a&&!o&&r(!0)}),[a,o]),(0,s.useEffect)((()=>{a?e.shown||r(!0):r(!1)}),[e.shown,a]),(0,s.useMemo)((()=>[n,r]),[n])}();return s.createElement(b.Provider,{value:n},t)}function w(e){if(e.component){const t=e.component;return s.createElement(t,e.props)}}function x(){const e=(0,s.useContext)(b);if(!e)throw new u.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,r=(0,s.useCallback)((()=>n(!1)),[n]),a=(0,v.HY)();return(0,s.useMemo)((()=>({shown:t,hide:r,content:w(a)})),[r,a,t])}var k=n(92949),_=n(94711),E=n(37016),S=n(43320),C=n(53438),T=n(82128),O=n(85936),D=n(16550),P=n(52263);function N(){const{siteConfig:{baseUrl:e}}=(0,P.default)(),{pathname:t}=(0,D.TH)();return t.replace(e,"/")}var I=n(91980),A=n(39665),L=n(12466),R=n(48596),j=n(10833);const M="right";function F(e){function t(e){return"left"===(e.position??M)}return[e.filter(t),e.filter((e=>!t(e)))]}function B(e){let{children:t}=e;return s.createElement(v.n2,null,s.createElement(g.M,null,s.createElement(y,null,t)))}var z=n(96841);function $(e){const[t,n]=(0,s.useState)(e),r=(0,s.useRef)(!1),a=(0,s.useRef)(0),o=(0,s.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,o)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0)return r.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}var U=n(19727),H=n(69800);const V={attributes:!0,characterData:!0,childList:!0,subtree:!0};function q(e,t){const[n,r]=(0,s.useState)(),a=(0,s.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=V);const r=(0,u.zX)(t),a=(0,u.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,a),()=>t.disconnect()}),[e,r,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function W(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!1),a=(0,s.useRef)(null),o=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");r(n)}),[a]);return q(a,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:o}}var G=n(2730)},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},37016:(e,t,n)=>{"use strict";n.d(t,{QC:()=>p,Vo:()=>d,bc:()=>u,nZ:()=>f,nt:()=>c});var r=n(87594),a=n.n(r);const o=/title=(?["'])(?.*?)\1/,i=/\{(?<range>[\d,-]+)\}/,l={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function s(e,t){const n=e.map((e=>{const{start:n,end:r}=l[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function u(e){return e?.match(o)?.groups.title??""}function c(e){return Boolean(e?.includes("showLineNumbers"))}function d(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}function f(e,t){let n=e.replace(/\n$/,"");const{language:r,magicComments:o,metastring:u}=t;if(u&&i.test(u)){const e=u.match(i).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${u}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,r=a()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(r),code:n}}if(void 0===r)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return s(["js","jsBlock"],t);case"jsx":case"tsx":return s(["js","jsBlock","jsx"],t);case"html":return s(["js","jsBlock","html"],t);case"python":case"py":case"bash":return s(["bash"],t);case"markdown":case"md":return s(["html","jsx","bash"],t);default:return s(Object.keys(l),t)}}(r,o),d=n.split("\n"),f=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),p=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),h=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let a=0;a<d.length;){const e=d[a].match(c);if(!e){a+=1;continue}const t=e.slice(1).find((e=>void 0!==e));p[t]?f[p[t]].range+=`${a},`:h[t]?f[h[t]].start=a:m[t]&&(f[m[t]].range+=`${f[m[t]].start}-${a-1},`),d.splice(a,1)}n=d.join("\n");const g={};return Object.entries(f).forEach((e=>{let[t,{range:n}]=e;a()(n).forEach((e=>{g[e]??=[],g[e].push(t)}))})),{lineClassNames:g,code:n}}function p(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[r,a]=e;const o=t[r];o&&"string"==typeof a&&(n[o]=a)})),n}},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,Wl:()=>m,_F:()=>y,cE:()=>f,em:()=>h,hI:()=>S,jA:()=>g,lO:()=>k,oz:()=>_,s1:()=>x,vY:()=>E,xz:()=>p});var r=n(67294),a=n(16550),o=n(18790),i=n(80143),l=n(60373),s=n(74477),u=n(1116),c=n(67392),d=n(48596);const f=!!i.useAllDocsData;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=h(n.items,t);if(e)return e}}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const v=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||b(e.items,t))}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.useActivePlugin)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.useActiveDocContext)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.useLatestVersion)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function _(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function C(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Cw:()=>s,QW:()=>c});var r=n(87462),a=n(67294),o=n(95999),i=n(18780);const l={errorBoundaryError:"errorBoundaryError_a6uf"};function s(e){return a.createElement("button",(0,r.Z)({type:"button"},e),a.createElement(o.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return a.createElement("p",{className:l.errorBoundaryError},n)}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(52263);function a(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>u,xL:()=>s});var r=n(67294),a=n(16550),o=n(61688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function u(e){return s((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=u(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(67294),a=n(86010),o=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(82128);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.default)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>a,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(67294);const a=n(10412).default.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l 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 s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(67294),a=n(723),o=n(52263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.default)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f,sG:()=>u});var r=n(67294),a=n(10412),o=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.default.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(80143),a=n(52263),o=n(60373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.default)(),t=(0,r.useAllDocsData)(),n=(0,r.useActivePluginAndVersion)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>f,u:()=>s});var r=n(87462),a=n(67294),o=n(16550),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function u(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function c(){const e=(0,a.useRef)(null),{action:t}=(0,o.k6)(),n=(0,a.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(s);t&&u(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&u(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({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 f(e){const t=e.children??d,{containerRef:n,onClick:o}=c();return a.createElement("div",{ref:n,role:"region","aria-label":d},a.createElement("a",(0,r.Z)({},e,{href:`#${s}`,onClick:o}),t))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c,_f:()=>f});var r=n(67294),a=n(61688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function f(e){void 0===e&&(e=o);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},70989:(e,t,n)=>{"use strict";n.d(t,{Y:()=>f});var r=n(67294),a=n(16550),o=n(91980),i=n(67392),l=n(50012);function s(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function u(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??s(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function c(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const i=(0,a.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(i.location.search);t.set(l,e),i.replace({...i.location,search:t.toString()})}),[l,i])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=u(e),[i,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!c({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[f,p]=d({queryString:n,groupId:a}),[h,m]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,l.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),g=(()=>{const e=f??h;return c({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{g&&s(g)}),[g]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!c({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),p(e),m(e)}),[p,m,o]),tabValues:o}}},39665:(e,t,n)=>{"use strict";n.d(t,{a:()=>o,b:()=>l});var r=n(67294);function a(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t}));const r=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):r.push(a)})),r}function o(e){return(0,r.useMemo)((()=>a(e)),[e])}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:r}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:r});return function(e){return e.level>=n&&e.level<=r}(e)?[{...e,children:t}]:t}))}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,r.useMemo)((()=>i({toc:a(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(52263),a=n(16550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.default)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),a=n(16550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.default)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},90022:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fetchIndexes:()=>l,legacyFetchIndexes:()=>s});var r=n(31336),a=n.n(r),o=n(61029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=s(e,t),i.set(n,r)),r}async function s(e,t){{const n=`${e}${o.searchIndexUrl.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}}},98202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SearchSourceFactory:()=>s});var r=n(31336),a=n.n(r);var o=n(61029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.language);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>o;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){o=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.language)if("en"===i)o.removeDefaultStopWordFilter||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.r(t),n.d(t,{getStemmedPositions:()=>r})},67133:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`<mark>${r(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&o.push(a(e.substr(l),t));break}}return 0===o.length?n?`<mark>${r(e)}</mark>`:r(e):o.join("")}n.r(t),n.d(t,{highlightStemmed:()=>s,splitIntoChunks:()=>u});const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,r){void 0===r&&(r=l.searchResultContextMaxLength);const{chunkIndex:a,chunks:o}=u(e,t,n),i=o.slice(0,a),s=o[a],c=[s.html],d=o.slice(a+1);let f=s.textLength,p=0,h=0,m=!1,g=!1;for(;f<r;)if((p<=h||0===d.length)&&i.length>0){const e=i.pop();f+e.textLength<=r?(c.unshift(e.html),p+=e.textLength,f+=e.textLength):(m=!0,i.length=0)}else{if(!(d.length>0))break;{const e=d.shift();f+e.textLength<=r?(c.push(e.html),h+=e.textLength,f+=e.textLength):(g=!0,d.length=0)}}return(m||i.length>0)&&c.unshift("\u2026"),(g||d.length>0)&&c.push("\u2026"),c.join("")}function u(e,t,n){const o=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),s=c+d,o.push({html:a(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}},61029:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Mark:()=>i,docsPluginIdForPreferredVersion:()=>h,explicitSearchResultPath:()=>c,hideSearchBarWithNoSearchContext:()=>v,indexDocs:()=>m,language:()=>r,removeDefaultStemmer:()=>o,removeDefaultStopWordFilter:()=>a,searchBarPosition:()=>p,searchBarShortcut:()=>d,searchBarShortcutHint:()=>f,searchContextByPaths:()=>g,searchIndexUrl:()=>l,searchResultContextMaxLength:()=>u,searchResultLimits:()=>s});n(31336);const r=["en"],a=!1,o=!1,i=null,l="search-index{dir}.json?_=c96eb6ec",s=8,u=50,c=!1,d=!0,f=!0,p="right",h=void 0,m=!0,g=null,v=!1},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function a(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}n.r(t),n.d(t,{clsx:()=>a,default:()=>o});const o=a},20640:(e,t,n)=>{"use strict";var r=n(11742),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,i,l,s,u,c=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),l=document.createRange(),s=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=a[t.format]||a.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),l.selectNodeContents(u),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");c=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),u&&document.body.removeChild(u),i()}return c}},38252:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!=a--;){var i=o[a];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},99376:(e,t)=>{var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;for(var r=n(e),a=r.length,o=0;o<a;o++)if(!(r[o]in t))return!1;for(o=0;o<a;o++)if(e[r[o]]!==t[r[o]])return!1;return a===n(t).length}},42358:(e,t,n)=>{"use strict";n.d(t,{lX:()=>_,q_:()=>D,ob:()=>m,PP:()=>N,Ep:()=>h,Hp:()=>g});var r=n(87462);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()}const 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--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var u=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(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 m(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",x="hashchange";function k(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),b||(0,u.Z)(!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,l=i.forceRefresh,s=void 0!==l&&l,d=i.getUserConfirmation,g=void 0===d?y:d,_=i.keyLength,E=void 0===_?6:_,S=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return S&&(o=f(o,S)),m(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var O=v();function D(e){(0,r.Z)($,e),$.length=n.length,O.notifyListeners($.location,$.action)}function P(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||A(C(e.state))}function N(){A(C(k()))}var I=!1;function A(e){if(I)I=!1,D();else{O.confirmTransitionTo(e,"POP",g,(function(t){t?D({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(I=!0,M(a))}(e)}))}}var L=C(k()),R=[L.key];function j(e){return S+h(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,P),o&&window.addEventListener(x,N)):0===F&&(window.removeEventListener(w,P),o&&window.removeEventListener(x,N))}var z=!1;var $={length:n.length,action:"POP",location:L,createHref:j,push:function(e,t){var r="PUSH",o=m(e,t,T(),$.location);O.confirmTransitionTo(o,r,g,(function(e){if(e){var t=j(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),s)window.location.href=t;else{var u=R.indexOf($.location.key),c=R.slice(0,u+1);c.push(o.key),R=c,D({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=m(e,t,T(),$.location);O.confirmTransitionTo(o,r,g,(function(e){if(e){var t=j(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),s)window.location.replace(t);else{var u=R.indexOf($.location.key);-1!==u&&(R[u]=o.key),D({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=O.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var E="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function O(e){window.location.replace(C(window.location.href)+"#"+e)}function D(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?y:a,i=n.hashType,l=void 0===i?"slash":i,s=e.basename?p(c(e.basename)):"",d=S[l],g=d.encodePath,w=d.decodePath;function x(){var e=w(T());return s&&(e=f(e,s)),m(e)}var k=v();function _(e){(0,r.Z)(z,e),z.length=t.length,k.notifyListeners(z.location,z.action)}var D=!1,P=null;function N(){var e,t,n=T(),r=g(n);if(n!==r)O(r);else{var a=x(),i=z.location;if(!D&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(P===h(a))return;P=null,function(e){if(D)D=!1,_();else{var t="POP";k.confirmTransitionTo(e,t,o,(function(n){n?_({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(h(t));-1===n&&(n=0);var r=R.lastIndexOf(h(e));-1===r&&(r=0);var a=n-r;a&&(D=!0,j(a))}(e)}))}}(a)}}var I=T(),A=g(I);I!==A&&O(A);var L=x(),R=[h(L)];function j(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(E,N):0===M&&window.removeEventListener(E,N)}var B=!1;var z={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(s+h(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,z.location);k.confirmTransitionTo(r,n,o,(function(e){if(e){var t=h(r),a=g(s+t);if(T()!==a){P=t,function(e){window.location.hash=e}(a);var o=R.lastIndexOf(h(z.location)),i=R.slice(0,o+1);i.push(t),R=i,_({action:n,location:r})}else _()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,z.location);k.confirmTransitionTo(r,n,o,(function(e){if(e){var t=h(r),a=g(s+t);T()!==a&&(P=t,O(a));var o=R.indexOf(h(z.location));-1!==o&&(R[o]=t),_({action:n,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=k.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=k.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function P(e,t,n){return Math.min(Math.max(e,t),n)}function N(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=v();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function f(){return Math.random().toString(36).substr(2,u)}var p=P(l,0,o.length-1),g=o.map((function(e){return m(e,void 0,"string"==typeof e?f():e.key||f())})),b=h;function y(e){var t=P(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",a=m(e,t,f(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,f(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),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,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var v=i[g];if(!(o[v]||r&&r[v]||m&&m[v]||l&&l[v])){var b=f(n,v);try{u(t,v,b)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new 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=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},36808:(e,t,n)=>{var r,a;!function(o){if(void 0===(a="function"==typeof(r=o)?r.call(t,n,t,e):r)||(e.exports=a),!0,e.exports=o(),!!0){var i=window.Cookies,l=window.Cookies=o();l.noConflict=function(){return window.Cookies=i,l}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function a(){}function o(t,n,o){if("undefined"!=typeof document){"number"==typeof(o=e({path:"/"},a.defaults,o)).expires&&(o.expires=new Date(1*new Date+864e5*o.expires)),o.expires=o.expires?o.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(u){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var s in o)o[s]&&(l+="; "+s,!0!==o[s]&&(l+="="+o[s].split(";")[0]));return document.cookie=t+"="+n+l}}function i(e,n){if("undefined"!=typeof document){for(var a={},o=document.cookie?document.cookie.split("; "):[],i=0;i<o.length;i++){var l=o[i].split("="),s=l.slice(1).join("=");n||'"'!==s.charAt(0)||(s=s.slice(1,-1));try{var u=t(l[0]);if(s=(r.read||r)(s,u)||t(s),n)try{s=JSON.parse(s)}catch(c){}if(a[u]=s,e===u)break}catch(c){}}return e?a[e]:a}}return a.set=o,a.get=function(e){return i(e,!1)},a.getJSON=function(e){return i(e,!0)},a.remove=function(t,n){o(t,"",e(n,{expires:-1}))},a.defaults={},a.withConverter=n,a}((function(){}))}))},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),a=n(80401),o=n(57667),i=n(21327),l=n(81866);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},38407:(e,t,n)=>{var r=n(27040),a=n(14125),o=n(82117),i=n(67518),l=n(54705);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),a=n(11285),o=n(96e3),i=n(49916),l=n(95265);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),a=n(90619),o=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=a,i.prototype.has=o,e.exports=i},46384:(e,t,n)=>{var r=n(38407),a=n(37465),o=n(63779),i=n(67599),l=n(44758),s=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=l,u.prototype.set=s,e.exports=u},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var a=-1,o=null==e?0:e.length;++a<o;){var i=e[a];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}},14636:(e,t,n)=>{var r=n(22545),a=n(35694),o=n(1469),i=n(44144),l=n(65776),s=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&a(e),d=!n&&!c&&i(e),f=!n&&!c&&!d&&s(e),p=n||c||d||f,h=p?r(e.length,String):[],m=h.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||l(g,m))||h.push(g);return h}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},34865:(e,t,n)=>{var r=n(89465),a=n(77813),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];o.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,a){return r(e,(function(e,r,o){t(a,e,n(e),o)})),a}},44037:(e,t,n)=>{var r=n(98363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},63886:(e,t,n)=>{var r=n(98363),a=n(81704);e.exports=function(e,t){return e&&r(t,a(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:(e,t,n)=>{var r=n(46384),a=n(77412),o=n(34865),i=n(44037),l=n(63886),s=n(64626),u=n(278),c=n(18805),d=n(1911),f=n(58234),p=n(46904),h=n(64160),m=n(43824),g=n(29148),v=n(38517),b=n(1469),y=n(44144),w=n(56688),x=n(13218),k=n(72928),_=n(3674),E=n(81704),S="[object Arguments]",C="[object Function]",T="[object Object]",O={};O[S]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[T]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[C]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,D,P,N,I){var A,L=1&n,R=2&n,j=4&n;if(D&&(A=N?D(t,P,N,I):D(t)),void 0!==A)return A;if(!x(t))return t;var M=b(t);if(M){if(A=m(t),!L)return u(t,A)}else{var F=h(t),B=F==C||"[object GeneratorFunction]"==F;if(y(t))return s(t,L);if(F==T||F==S||B&&!N){if(A=R||B?{}:v(t),!L)return R?d(t,l(A,t)):c(t,i(A,t))}else{if(!O[F])return N?t:{};A=g(t,F,L)}}I||(I=new r);var z=I.get(t);if(z)return z;I.set(t,A),k(t)?t.forEach((function(r){A.add(e(r,n,D,r,t,I))})):w(t)&&t.forEach((function(r,a){A.set(a,e(r,n,D,a,t,I))}));var $=M?void 0:(j?R?p:f:R?E:_)(t);return a($||t,(function(r,a){$&&(r=t[a=r]),o(A,a,e(r,n,D,a,t,I))})),A}},3118:(e,t,n)=>{var r=n(13218),a=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},89881:(e,t,n)=>{var r=n(47816),a=n(99291)(r);e.exports=a},21078:(e,t,n)=>{var r=n(62488),a=n(37285);e.exports=function e(t,n,o,i,l){var s=-1,u=t.length;for(o||(o=a),l||(l=[]);++s<u;){var c=t[s];n>0&&o(c)?n>1?e(c,n-1,o,i,l):r(l,c):i||(l[l.length]=c)}return l}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},97786:(e,t,n)=>{var r=n(71811),a=n(40327);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[a(t[n++])];return n&&n==o?e:void 0}},68866:(e,t,n)=>{var r=n(62488),a=n(1469);e.exports=function(e,t,n){var o=t(e);return a(e)?o:r(o,n(e))}},44239:(e,t,n)=>{var r=n(62705),a=n(89607),o=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):o(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},9454:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),a=n(37005);e.exports=function e(t,n,o,i,l){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,o,i,e,l))}},2492:(e,t,n)=>{var r=n(46384),a=n(67114),o=n(18351),i=n(16096),l=n(64160),s=n(1469),u=n(44144),c=n(36719),d="[object Arguments]",f="[object Array]",p="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,v){var b=s(e),y=s(t),w=b?f:l(e),x=y?f:l(t),k=(w=w==d?p:w)==p,_=(x=x==d?p:x)==p,E=w==x;if(E&&u(e)){if(!u(t))return!1;b=!0,k=!1}if(E&&!k)return v||(v=new r),b||c(e)?a(e,t,n,m,g,v):o(e,t,w,n,m,g,v);if(!(1&n)){var S=k&&h.call(e,"__wrapped__"),C=_&&h.call(t,"__wrapped__");if(S||C){var T=S?e.value():e,O=C?t.value():t;return v||(v=new r),g(T,O,n,m,v)}}return!!E&&(v||(v=new r),i(e,t,n,m,g,v))}},25588:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),a=n(90939);e.exports=function(e,t,n,o){var i=n.length,l=i,s=!o;if(null==e)return!l;for(e=Object(e);i--;){var u=n[i];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<l;){var c=(u=n[i])[0],d=e[c],f=u[1];if(s&&u[2]){if(void 0===d&&!(c in e))return!1}else{var p=new r;if(o)var h=o(d,f,c,e,t,p);if(!(void 0===h?a(f,d,3,o,p):h))return!1}}return!0}},28458:(e,t,n)=>{var r=n(23560),a=n(15346),o=n(13218),i=n(80346),l=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,c=s.toString,d=u.hasOwnProperty,f=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||a(e))&&(r(e)?f:l).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),a=n(41780),o=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&a(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),a=n(16432),o=n(6557),i=n(1469),l=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):l(e)}},280:(e,t,n)=>{var r=n(25726),a=n(86916),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),a=n(25726),o=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=a(e),n=[];for(var l in e)("constructor"!=l||!t&&i.call(e,l))&&n.push(l);return n}},91573:(e,t,n)=>{var r=n(2958),a=n(1499),o=n(42634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),a=n(27361),o=n(79095),i=n(15403),l=n(89162),s=n(42634),u=n(40327);e.exports=function(e,t){return i(e)&&l(t)?s(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?o(n,e):r(t,i,3)}}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},56560:(e,t,n)=>{var r=n(75703),a=n(38777),o=n(6557),i=a?function(e,t){return a(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=i},14259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),a=n(29932),o=n(1469),i=n(33448),l=r?r.prototype:void 0,s=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return a(t,e)+"";if(i(t))return s?s.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},57406:(e,t,n)=>{var r=n(71811),a=n(10928),o=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=o(e,t))||delete e[i(a(t))]}},74757:e=>{e.exports=function(e,t){return e.has(t)}},71811:(e,t,n)=>{var r=n(1469),a=n(15403),o=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:o(i(e))}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a?r.Buffer:void 0,l=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),a=r?r.prototype:void 0,o=a?a.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),a=n(89465);e.exports=function(e,t,n,o){var i=!n;n||(n={});for(var l=-1,s=t.length;++l<s;){var u=t[l],c=o?o(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),i?a(n,u,c):r(n,u,c)}return n}},18805:(e,t,n)=>{var r=n(98363),a=n(99551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(98363),a=n(51442);e.exports=function(e,t){return r(e,a(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),a=n(81119),o=n(67206),i=n(1469);e.exports=function(e,t){return function(n,l){var s=i(n)?r:a,u=t?t():{};return s(n,e,o(l,2),u)}}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,a){if(null==n)return n;if(!r(n))return e(n,a);for(var o=n.length,i=t?o:-1,l=Object(n);(t?i--:++i<o)&&!1!==a(l[i],i,l););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),l=i.length;l--;){var s=i[e?l:++a];if(!1===n(o[s],s,o))break}return t}}},60696:(e,t,n)=>{var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:(e,t,n)=>{var r=n(10852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=a},67114:(e,t,n)=>{var r=n(88668),a=n(82908),o=n(74757);e.exports=function(e,t,n,i,l,s){var u=1&n,c=e.length,d=t.length;if(c!=d&&!(u&&d>c))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,m=!0,g=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h<c;){var v=e[h],b=t[h];if(i)var y=u?i(b,v,h,t,e,s):i(v,b,h,e,t,s);if(void 0!==y){if(y)continue;m=!1;break}if(g){if(!a(t,(function(e,t){if(!o(g,t)&&(v===e||l(v,e,n,i,s)))return g.push(t)}))){m=!1;break}}else if(v!==b&&!l(v,b,n,i,s)){m=!1;break}}return s.delete(e),s.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),a=n(11149),o=n(77813),i=n(67114),l=n(68776),s=n(21814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,d,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+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 p=l;case"[object Set]":var h=1&r;if(p||(p=s),e.size!=t.size&&!h)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(p(e),p(t),r,u,d,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,i,l){var s=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!s)return!1;for(var d=c;d--;){var f=u[d];if(!(s?f in t:a.call(t,f)))return!1}var p=l.get(e),h=l.get(t);if(p&&h)return p==t&&h==e;var m=!0;l.set(e,t),l.set(t,e);for(var g=s;++d<c;){var v=e[f=u[d]],b=t[f];if(o)var y=s?o(b,v,f,t,e,l):o(v,b,f,e,t,l);if(!(void 0===y?v===b||i(v,b,n,o,l):y)){m=!1;break}g||(g="constructor"==f)}if(m&&!g){var w=e.constructor,x=t.constructor;w==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(m=!1)}return l.delete(e),l.delete(t),m}},99021:(e,t,n)=>{var r=n(85564),a=n(45357),o=n(30061);e.exports=function(e){return o(a(e,void 0,r),e+"")}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),a=n(99551),o=n(3674);e.exports=function(e){return r(e,o,a)}},46904:(e,t,n)=>{var r=n(68866),a=n(51442),o=n(81704);e.exports=function(e){return r(e,o,a)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var o=t[n],i=e[o];t[n]=[o,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),a=n(47801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),a=Object.prototype,o=a.hasOwnProperty,i=a.toString,l=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,l),n=e[l];try{e[l]=void 0;var r=!0}catch(s){}var a=i.call(e);return r&&(t?e[l]=n:delete e[l]),a}},99551:(e,t,n)=>{var r=n(34963),a=n(70479),o=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,l=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return o.call(e,t)})))}:a;e.exports=l},51442:(e,t,n)=>{var r=n(62488),a=n(85924),o=n(99551),i=n(70479),l=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=a(e);return t}:i;e.exports=l},64160:(e,t,n)=>{var r=n(18552),a=n(57071),o=n(53818),i=n(58525),l=n(70577),s=n(44239),u=n(80346),c="[object Map]",d="[object Promise]",f="[object Set]",p="[object WeakMap]",h="[object DataView]",m=u(r),g=u(a),v=u(o),b=u(i),y=u(l),w=s;(r&&w(new r(new ArrayBuffer(1)))!=h||a&&w(new a)!=c||o&&w(o.resolve())!=d||i&&w(new i)!=f||l&&w(new l)!=p)&&(w=function(e){var t=s(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return h;case g:return c;case v:return d;case b:return f;case y:return p}return t}),e.exports=w},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),a=n(35694),o=n(1469),i=n(65776),l=n(41780),s=n(40327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,d=!1;++u<c;){var f=s(t[u]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++u!=c?d:!!(c=null==e?0:e.length)&&l(c)&&i(f,c)&&(o(e)||a(e))}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),a=n(57157),o=n(93147),i=n(40419),l=n(77133);e.exports=function(e,t,n){var s=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return a(e,n);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 l(e,n);case"[object Map]":case"[object Set]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return o(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),a=n(85924),o=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(a(e))}},37285:(e,t,n)=>{var r=n(62705),a=n(35694),o=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||a(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},15403:(e,t,n)=>{var r=n(1469),a=n(33448),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||(i.test(e)||!o.test(e)||null!=t&&e in Object(t))}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,a=n(14429),o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),a=n(38407),o=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||a),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a&&r.process,l=function(){try{var e=o&&o.require&&o.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(t){}}();e.exports=l},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),a=Math.max;e.exports=function(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var o=arguments,i=-1,l=a(o.length-t,0),s=Array(l);++i<l;)s[i]=o[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=o[i];return u[t]=n(s),r(e,this,u)}}},40292:(e,t,n)=>{var r=n(97786),a=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,a(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),a="object"==typeof self&&self&&self.Object===Object&&self,o=r||a||Function("return this")();e.exports=o},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),a=n(21275)(r);e.exports=a},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var a=t(),o=16-(a-r);if(r=a,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),a=n(57071),o=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(i)}return n.set(e,t),this.size=n.size,this}},55514:(e,t,n)=>{var r=n(24523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(o,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},75703:e=>{e.exports=function(e){return function(){return e}}},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},7739:(e,t,n)=>{var r=n(89465),a=n(55189),o=Object.prototype.hasOwnProperty,i=a((function(e,t,n){o.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},35694:(e,t,n)=>{var r=n(9454),a=n(37005),o=Object.prototype,i=o.hasOwnProperty,l=o.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=s},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),a=n(41780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=n(95062),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,l=i&&i.exports===o?r.Buffer:void 0,s=(l?l.isBuffer:void 0)||a;e.exports=s},23560:(e,t,n)=>{var r=n(44239),a=n(13218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),a=n(7518),o=n(31167),i=o&&o.isMap,l=i?a(i):r;e.exports=l},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),a=n(85924),o=n(37005),i=Function.prototype,l=Object.prototype,s=i.toString,u=l.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=a(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==c}},72928:(e,t,n)=>{var r=n(29221),a=n(7518),o=n(31167),i=o&&o.isSet,l=i?a(i):r;e.exports=l},33448:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),a=n(7518),o=n(31167),i=o&&o.isTypedArray,l=i?a(i):r;e.exports=l},3674:(e,t,n)=>{var r=n(14636),a=n(280),o=n(98612);e.exports=function(e){return o(e)?r(e):a(e)}},81704:(e,t,n)=>{var r=n(14636),a=n(10313),o=n(98612);e.exports=function(e){return o(e)?r(e,!0):a(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:(e,t,n)=>{var r=n(83369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},57557:(e,t,n)=>{var r=n(29932),a=n(85990),o=n(57406),i=n(71811),l=n(98363),s=n(60696),u=n(99021),c=n(46904),d=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=i(t,e),u||(u=t.length>1),t})),l(e,c(e),n),u&&(n=a(n,7,s));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},39601:(e,t,n)=>{var r=n(40371),a=n(79152),o=n(15403),i=n(40327);e.exports=function(e){return o(e)?r(i(e)):a(e)}},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},31336:(e,t,n)=>{var r,a;!function(){var o,i,l,s,u,c,d,f,p,h,m,g,v,b,y,w,x,k,_,E,S,C,T,O,D,P,N,I,A,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var a=n[r],o=e[a];if(Array.isArray(o))t[a]=o.slice();else{if("string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o)throw new TypeError("clone is not deep and does not support nested objects");t[a]=o}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,a=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var o=0;o<r.length;o++){var i=r[o];i in n.elements&&a.push(i)}return new R.Set(a)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var a=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(a))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,a=[],o=0,i=0;o<=r;o++){var l=o-i;if(n.charAt(o).match(R.tokenizer.separator)||o==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=a.length,a.push(new R.Token(n.slice(i,o),s))}i=o+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],a=[],o=0;o<e.length;o++){var i=r(e[o],o,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)a.push(i[l]);else a.push(i)}e=a}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,a=Math.floor(r/2),o=this.elements[2*a];r>1&&(o<e&&(t=a),o>e&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:o<e?2*(a+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,a=n.length,o=r.length,i=0,l=0,s=0,u=0;s<a&&u<o;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),v=new RegExp(p),b=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,k=/.$/,_=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),S=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,O=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,D=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,P=/^(.+?)(s|t)(ion)$/,N=/^(.+?)e$/,I=/ll$/,A=new RegExp("^"+u+s+"[^aeiouwxy]$"),L=function(e){var t,n,r,a,o,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),o=y,(a=b).test(e)?e=e.replace(a,"$1$2"):o.test(e)&&(e=e.replace(o,"$1$2")),o=x,(a=w).test(e)){var c=a.exec(e);(a=h).test(c[1])&&(a=k,e=e.replace(a,""))}else o.test(e)&&(t=(c=o.exec(e))[1],(o=v).test(t)&&(s=E,u=S,(o=_).test(e=t)?e+="e":s.test(e)?(a=k,e=e.replace(a,"")):u.test(e)&&(e+="e")));return(a=C).test(e)&&(e=(t=(c=a.exec(e))[1])+"i"),(a=T).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+i[n])),(a=O).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+l[n])),o=P,(a=D).test(e)?(t=(c=a.exec(e))[1],(a=m).test(t)&&(e=t)):o.test(e)&&(t=(c=o.exec(e))[1]+c[2],(o=m).test(t)&&(e=t)),(a=N).test(e)&&(t=(c=a.exec(e))[1],o=g,s=A,((a=m).test(t)||o.test(t)&&!s.test(t))&&(e=t)),o=m,(a=I).test(e)&&o.test(e)&&(a=k,e=e.replace(a,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var a=r.pop();if(a.str.length>0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new R.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r<a;r++){var o=e[r],i=r==a-1;if("*"==o)t.edges[o]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[o]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),a=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<a;o++){var i=r[o];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var a=t[r];e=e+a+this.edges[a].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var a=Object.keys(n.qNode.edges),o=a.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<o;s++)for(var u=a[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var a=new R.TokenSet,o=e[r];t.edges[o]=a,this.uncheckedNodes.push({parent:t,char:o,child:a}),t=a}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){o[N=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var v=h[g],b=this.invertedIndex[v],y=b._index;for(m=0;m<s.fields.length;m++){var w=b[N=s.fields[m]],x=Object.keys(w),k=v+"/"+N,_=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(_),void 0===o[N]&&(o[N]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[N].upsert(y,s.boost,(function(e,t){return e+t})),!a[k]){for(var E=0;E<x.length;E++){var S,C=x[E],T=new R.FieldRef(C,N),O=w[C];void 0===(S=n[T])?n[T]=new R.MatchData(v,N,O):S.add(v,N,O)}a[k]=!0}}else void 0===i[N]&&(i[N]=R.Set.empty),i[N]=i[N].union(_)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){o[N=s.fields[m]]=o[N].intersect(c)}}var D=R.Set.complete,P=R.Set.empty;for(l=0;l<this.fields.length;l++){var N;o[N=this.fields[l]]&&(D=D.intersect(o[N])),i[N]&&(P=P.union(i[N]))}var I=Object.keys(n),A=[],L=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(l=0;l<I.length;l++){T=I[l];var j=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<I.length;l++){var M=(j=R.FieldRef.fromString(I[l])).docRef;if(D.contains(M)&&!P.contains(M)){var F,B=this.fieldVectors[j],z=r[j.fieldName].similarity(B);if(void 0!==(F=L[M]))F.score+=z,F.matchData.combine(n[j]);else{var $={ref:M,score:z,matchData:n[j]};L[M]=$,A.push($)}}}return A.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,a=Object.create(null),o=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<o.length;s++){var d,f=(d=o[s])[0],p=d[1];i.insert(f),a[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=a,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a<r.length;a++){var o=r[a],i=this._fields[o].extractor,l=i?i(e):e[o],s=this.tokenizer(l,{fields:[o]}),u=this.pipeline.run(s),c=new R.FieldRef(n,o),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][o][n]&&(this.invertedIndex[p][o][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var v=this.metadataWhitelist[g],b=p.metadata[v];null==this.invertedIndex[p][o][n][v]&&(this.invertedIndex[p][o][n][v]=[]),this.invertedIndex[p][o][n][v].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},a=0;a<t;a++){var o=R.FieldRef.fromString(e[a]),i=o.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[o]}var l=Object.keys(this._fields);for(a=0;a<l.length;a++){var s=l[a];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),a=0;a<n;a++){for(var o=R.FieldRef.fromString(t[a]),i=o.fieldName,l=this.fieldLengths[o],s=new R.Vector,u=this.fieldTermFrequencies[o],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[o.docRef].boost||1,h=0;h<d;h++){var m,g,v,b=c[h],y=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+y),g*=f,g*=p,v=Math.round(1e3*g)/1e3,s.insert(w,v)}e[o]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),a=Object.keys(n||{}),o=0;o<a.length;o++){var i=a[o];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],a=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var o=0;o<a.length;o++){var i=a[o],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),a=0;a<r.length;a++){var o=r[a];o in this.metadata[e][t]?this.metadata[e][t][o]=this.metadata[e][t][o].concat(n[o]):this.metadata[e][t][o]=n[o]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},27861:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={icon:"icon_S7Kx",s:"s_AZDZ",m:"m_thRi",l:"l_WHPt",fill:"fill_hNhN",stroke:"stroke_N8dm"}},10153:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={backdrop:"backdrop_Ifvc",navWrapper:"navWrapper_ybYI",nav:"nav_cMpg",visible:"visible_ynAX",wrapper:"wrapper_SWrM",fullscreenButton:"fullscreenButton_Bocn",active:"active_qZD5"}},8633:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={toggle:"toggle_K23S",toggleButton:"toggleButton_dl49",darkToggleIcon:"darkToggleIcon_lKkA",lightToggleIcon:"lightToggleIcon_K4TL",toggleButtonDisabled:"toggleButtonDisabled_AAS_"}},79762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={firstRow:"firstRow_ar1q",secondRow:"secondRow__ww3",backToTop:"backToTop_wDfN",footerLink:"footerLink_sh7M"}},90826:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={colorModeToggle:"colorModeToggle_GSaI",rightSection:"rightSection_CLeF",iconButtonGroup:"iconButtonGroup_ktNv"}},83244:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={dropdownNavbarItem:"dropdownNavbarItem_o23I"}},31259:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={modal:"modal_kLVz",closeButton:"closeButton_Rr0e",header:"header_QwCa"}},61699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ONDG",empty:"empty_a7qb",title:"title_uwS_",item:"item_RHYF",itemTitle:"itemTitle_jtAv"}},9592:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_xZfc",textField:"textField_af43"}},1443:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_N57j"}},18589:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_Ooa0",level1:"level1_fpUf",icon:"icon_sZn2",fill:"fill_fkan",stroke:"stroke_j3wH"}},86620:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_JWD1"}},38076:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_EFVO"}},20550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ltHz",noResults:"noResults_mD2O",groups:"groups_p1lF",divider:"divider_eGUz",topBar:"topBar_Dtew"}},22473:(e,t,n)=>{"use strict";n.r(t)},11057:(e,t,n)=>{"use strict";n.r(t)},93878:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},97087:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={navbarHideable:"navbarHideable_OoEf",navbarHidden:"navbarHidden_zoxl"}},88822:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={linkContent:"linkContent__x3v",externalLinkIcon:"externalLinkIcon_Qfue"}},65787:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={themedImage:"themedImage_kfRS","themedImage--light":"themedImage--light_BL8e","themedImage--dark":"themedImage--dark_OvIx"}},36459:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_QACb"}},97142:(e,t)=>{"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var a=n?e.msh.sheet:e.sh.sheet,o=a.insertRule(r,a.cssRules.length),i=(a.cssRules||a.rules)[o];if(i.index=o,n){var l=(i.cssRules||i.rules)[0];i.style=l.style,i.styleMap=l.styleMap}return i})}},52099:(e,t,n)=>{"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,a=this.rule.style;for(n in r)void 0===e[n]&&a.removeProperty(n);for(n in e)e[n]!==r[n]&&a.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},a.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var a=t[r];for(var o in a)a[o].del()}for(var r in e)if(void 0===t[r])for(var o in e[r]){(s=new n(o,r)).diff(e[r][o]),e[r][o]=s}else{var i=t[r],l=e[r];for(var o in i)l[o]||i[o].del();for(var o in l){var s;(s=i[o])?(s.diff(l[o]),l[o]=s):((s=new n(o,r)).diff(l[o]),l[o]=s)}}this.tree=e},e.VRule=n,e.VSheet=a}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function a(){this.tree={}}}},87749:(e,t)=>{t.z=function e(t,n,r,a){var o,i,l={},s=!1;for(o in n)"object"!=typeof(i=n[o])&&(s=!0,l[o]=i);for(o in s&&(t[a]||(t[a]={}),t[a][r]=l),n)if("object"==typeof(i=n[o]))if("@"===o[0])e(t,i,r,o);else{var u=o.indexOf("&")>-1,c=r.split(",");if(u)for(var d=0;d<c.length;d++)c[d]=o.replace(/&/g,c[d]);else for(d=0;d<c.length;d++)c[d]=c[d]+" "+o;e(t,i,c.join(","),a)}}},39662:(e,t)=>{t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:(e,t)=>{"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"==typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var a,o,i="",l=[];for(a in t)(o=t[a])instanceof Object&&!(o instanceof Array)?l.push(a):i+=r.decl(a,o,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var s=0;s<l.length;s++)"@"===(a=l[s])[0]&&"@font-face"!==a?r.putAt(e,t[a],a):r.put(r.selector(e,a),t[a],n)},r.putAt=r.put,r}},74865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},87594:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,a,o]=t;if(r&&o){r=parseInt(r),o=parseInt(o);const e=r<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=r;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=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(o=r.util.objId(t),n[o])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":return o=r.util.objId(t),n[o]?n[o]:(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};return r.hooks.run("before-tokenize",o),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 r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},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(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,v=!!m.lookbehind,b=!!m.greedy,y=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,k=l.next,_=c;k!==t.tail&&!(d&&_>=d.reach);_+=k.value.length,k=k.next){var E=k.value;if(t.length>e.length)return;if(!(E instanceof a)){var S,C=1;if(b){if(!(S=o(x,_,e,v))||S.index>=e.length)break;var T=S.index,O=S.index+S[0].length,D=_;for(D+=k.value.length;T>=D;)D+=(k=k.next).value.length;if(_=D-=k.value.length,k.value instanceof a)continue;for(var P=k;P!==t.tail&&(D<O||"string"==typeof P.value);P=P.next)C++,D+=P.value.length;C--,E=e.slice(_,D),S.index-=_}else if(!(S=o(x,0,E,v)))continue;T=S.index;var N=S[0],I=E.slice(0,T),A=E.slice(T+N.length),L=_+E.length;d&&L>d.reach&&(d.reach=L);var R=k.prev;if(I&&(R=s(t,R,I),_+=I.length),u(t,R,C),k=s(t,R,new a(f,g?r.tokenize(N,g):N,y,N)),A&&s(t,k,A),C>1){var j={cause:f+","+h,reach:L};i(e,t,n,k.prev,_,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(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}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}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.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:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<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){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),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;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=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(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 p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=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(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),h=[];if(s&&h.push(s),h.push(d),p){var m=[p];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){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];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),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 e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<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(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){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),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),a=n(39642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},16500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),h=c;a(h);){for(var m in f={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in h=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(27418),o=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[: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]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(m,e)||!p.call(h,e)&&(f.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=60103,_=60106,E=60107,S=60108,C=60114,T=60109,O=60110,D=60112,P=60113,N=60120,I=60115,A=60116,L=60121,R=60128,j=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;k=B("react.element"),_=B("react.portal"),E=B("react.fragment"),S=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),O=B("react.context"),D=B("react.forward_ref"),P=B("react.suspense"),N=B("react.suspense_list"),I=B("react.memo"),A=B("react.lazy"),L=B("react.block"),B("react.scope"),R=B("react.opaque.id"),j=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,$="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=$&&e[$]||e["@@iterator"])?e:null}function H(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var V=!1;function q(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function W(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=q(e.type,!1);case 11:return e=q(e.type.render,!1);case 22:return e=q(e.type._render,!1);case 1:return e=q(e.type,!0);default:return""}}function G(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case _:return"Portal";case C:return"Profiler";case S:return"StrictMode";case P:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return G(e.type);case L:return G(e._render);case A:t=e._payload,e=e._init;try{return G(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var 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(n=""+Z(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ue(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,me,ge=(me=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return me(e,t)}))}:me);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function xe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var ke=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(ke[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Oe=null;function De(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Pe(e){Te?Oe?Oe.push(e):Oe=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Oe;if(Oe=Te=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Ie(e,t){return e(t)}function Ae(e,t,n,r,a){return e(t,n,r,a)}function Le(){}var Re=Ie,je=!1,Me=!1;function Fe(){null===Te&&null===Oe||(Le(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){ze=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(me){ze=!1}function Ue(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var He=!1,Ve=null,qe=!1,We=null,Ge={onError:function(e){He=!0,Ve=e}};function Ze(e,t,n,r,a,o,i,l,s){He=!1,Ve=null,Ue.apply(Ge,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Qe(e)!==e)throw Error(i(188))}function Ke(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(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 Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function mt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){vt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&vt(it)&&(it=null),null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),ut.forEach(bt),ct.forEach(bt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function xt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function kt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:kt("Animation","AnimationEnd"),animationiteration:kt("Animation","AnimationIteration"),animationstart:kt("Animation","AnimationStart"),transitionend:kt("Transition","TransitionEnd")},Et={},St={};function Ct(e){if(Et[e])return Et[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return Et[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var Tt=Ct("animationend"),Ot=Ct("animationiteration"),Dt=Ct("animationstart"),Pt=Ct("transitionend"),Nt=new Map,It=new Map,At=["abort","abort",Tt,"animationEnd",Ot,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),It.set(r,t),Nt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Rt=8;function jt(e){if(0!=(1&e))return Rt=15,1;if(0!=(2&e))return Rt=14,2;if(0!=(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!=(32&e)?(Rt=11,32):0!==(t=192&e)?(Rt=10,t):0!=(256&e)?(Rt=9,256):0!==(t=3584&e)?(Rt=8,t):0!=(4096&e)?(Rt=7,4096):0!==(t=4186112&e)?(Rt=6,t):0!==(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!=(134217728&e)?(Rt=3,134217728):0!==(t=805306368&e)?(Rt=2,t):0!=(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Rt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=jt(s),a=Rt):0!==(l&=o)&&(r=jt(l),a=Rt)}else 0!==(o=n&~i)?(r=jt(o),a=Rt):0!==l&&(r=jt(l),a=Rt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(jt(t),a<=Rt)return t;Rt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Ht(t)),r|=e[n],t&=~a;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/qt|0)|0},Vt=Math.log,qt=Math.LN2;var Wt=o.unstable_UserBlockingPriority,Gt=o.unstable_runWithPriority,Zt=!0;function Qt(e,t,n,r){je||Le();var a=Xt,o=je;je=!0;try{Ae(a,e,t,n,r)}finally{(je=o)||Fe()}}function Yt(e,t,n,r){Gt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Zt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Kt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=mt(it,e,t,n,r,a),!0;case"dragenter":return lt=mt(lt,e,t,n,r,a),!0;case"mouseover":return st=mt(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,mt(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,mt(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Lr(e,t,r,null,n)}}}function Kt(e,t,n,r){var a=Se(r);if(null!==(a=ta(a))){var o=Qe(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ye(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Lr(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.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 tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(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)?an:on,this.isPropagationStopped=on,this}return a(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=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),hn=ln(pn),mn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,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!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(mn),vn=ln(a({},mn,{dataTransfer:0})),bn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=ln(wn),kn=ln(a({},dn,{data:0})),_n={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var On=a({},pn,{key:function(e){if(e.key){var t=_n[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=ln(On),Pn=ln(a({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),In=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),An=a({},mn,{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}),Ln=ln(An),Rn=[9,13,27,32],jn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!jn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),$n=!1;function Un(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Pe(r),0<(t=jr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Qn=null;function Yn(e){Or(e,0)}function Xn(e){if(X(ra(e)))return e}function Kn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Zn&&(Zn.detachEvent("onpropertychange",ar),Qn=Zn=null)}function ar(e){if("value"===e.propertyName&&Xn(Qn)){var t=[];if(Gn(t,Qn,e,Se(e)),e=Yn,je)e(t);else{je=!0;try{Ie(e,t)}finally{je=!1,Fe()}}}}function or(e,t,n){"focusin"===e?(rr(),Qn=n,(Zn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Qn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(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=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function mr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,br=null,yr=null,wr=null,xr=!1;function kr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==br||br!==K(r)||("selectionStart"in(r=br)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=jr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(At,2);for(var _r="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Er=0;Er<_r.length;Er++)It.set(_r[Er],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Ze.apply(this,arguments),He){if(!He)throw Error(i(198));var c=Ve;He=!1,Ve=null,qe||(qe=!0,We=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(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;Tr(a,l,u),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;Tr(a,l,u),o=s}}}if(qe)throw e=We,qe=!1,We=null,e}function Dr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Ar(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Cr.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ar(o,e,a,t),i.add(l))}function Ar(e,t,n,r){var a=It.get(t);switch(void 0===a?2:a){case 0:a=Qt;break;case 1:a=Yt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!ze||"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 Lr(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||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Re(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=o,a=Se(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Dn;break;case"focusin":u="focus",s=bn;break;case"focusout":u="blur",s=bn;break;case"beforeblur":case"afterblur":s=bn;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=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case Ot:case Dt:s=yn;break;case Pt:s=In;break;case"scroll":s=hn;break;case"wheel":s=Ln;break;case"copy":case"cut":case"paste":s=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Be(h,f))&&c.push(Rr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=Qe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(m,h+"leave",s,n,a)).target=d,l.relatedTarget=p,m=null,ta(a)===r&&((c=new c(f,h+"enter",u,n,a)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Mr(p))h++;for(p=0,m=f;m;m=Mr(m))p++;for(;0<h-p;)c=Mr(c),h--;for(;0<p-h;)f=Mr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Mr(c),f=Mr(f)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Kn;else if(Wn(l))if(Jn)g=sr;else{g=ir;var v=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Gn(i,g,n,a):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&ae(l,"number",l.value)),v=r?ra(r):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(br=v,yr=r,wr=null);break;case"focusout":wr=yr=br=null;break;case"mousedown":xr=!0;break;case"contextmenu":case"mouseup":case"dragend":xr=!1,kr(i,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":kr(i,n,a)}var b;if(jn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(b=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Vn=!0)),0<(v=jr(r,y)).length&&(y=new kn(y,e,null,n,a),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=Hn(n))&&(y.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:($n=!0,zn);case"textInput":return(e=t.data)===zn&&$n?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!jn&&Un(e,t)?(e=nn(),tn=en=Jt=null,Vn=!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 Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=jr(r,"onBeforeInput")).length&&(a=new kn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Or(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Be(e,n))&&r.unshift(Rr(e,o,a)),null!=(o=Be(e,t))&&r.push(Rr(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(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(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Be(n,o))&&i.unshift(Rr(n,s,l)):a||null!=(s=Be(n,o))&&i.push(Rr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,$r=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,qr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Gr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Zr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0;var Yr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Yr,Kr="__reactProps$"+Yr,Jr="__reactContainer$"+Yr,ea="__reactEvents$"+Yr;function ta(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Zr(e);null!==e;){if(n=e[Xr])return n;e=Zr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Kr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ha=da;function ma(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function va(){ua(pa),ua(fa)}function ba(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,G(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ha=fa.current,ca(fa,e),ca(pa,pa.current),!0}function xa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var ka=null,_a=null,Ea=o.unstable_runWithPriority,Sa=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Oa=o.unstable_requestPaint,Da=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Na=o.unstable_ImmediatePriority,Ia=o.unstable_UserBlockingPriority,Aa=o.unstable_NormalPriority,La=o.unstable_LowPriority,Ra=o.unstable_IdlePriority,ja={},Ma=void 0!==Oa?Oa:function(){},Fa=null,Ba=null,za=!1,$a=Da(),Ua=1e4>$a?Da:function(){return Da()-$a};function Ha(){switch(Pa()){case Na:return 99;case Ia:return 98;case Aa:return 97;case La:return 96;case Ra:return 95;default:throw Error(i(332))}}function Va(e){switch(e){case 99:return Na;case 98:return Ia;case 97:return Aa;case 96:return La;case 95:return Ra;default:throw Error(i(332))}}function qa(e,t){return e=Va(e),Ea(e,t)}function Wa(e,t,n){return e=Va(e),Sa(e,t,n)}function Ga(){if(null!==Ba){var e=Ba;Ba=null,Ca(e)}Za()}function Za(){if(!za&&null!==Fa){za=!0;var e=0;try{var t=Fa;qa(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fa=null}catch(n){throw null!==Fa&&(Fa=Fa.slice(e+1)),Sa(Na,Ga),n}finally{za=!1}}}var Qa=x.ReactCurrentBatchConfig;function Ya(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=sa(null),Ka=null,Ja=null,eo=null;function to(){eo=Ja=Ka=null}function no(e){var t=Xa.current;ua(Xa),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Ka=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ji=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Ka)throw Error(i(308));Ja=t,Ka.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(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={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,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;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,m=i;switch(s=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){f=h.call(p,f,s);break e}f=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(s="function"==typeof(h=m.payload)?h.call(p,f,s):h))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,$l|=l,e.lanes=l,e.memoizedState=f}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var mo=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var vo={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),hs(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),hs(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),hs(e,r,n)}};function bo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ha:fa.current,o=(r=null!=(r=t.contextTypes))?ma(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=vo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(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&&vo.enqueueReplaceState(t,t.state,null)}function xo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=mo,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ha:fa.current,a.context=ma(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&vo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var ko=Array.isArray;function _o(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===mo&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Eo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function So(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Ws(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=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=_o(e,t,n),r.return=e,r):((r=Gs(n.type,n.key,n.props,null,e.mode,r)).ref=_o(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Gs(t.type,t.key,t.props,null,e.mode,n)).ref=_o(e,null,t),n.return=e,n;case _:return(t=Xs(t,e.mode,n)).return=e,t}if(ko(t)||U(t))return(t=Zs(t,e.mode,n,null)).return=e,t;Eo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?n.type===E?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case _:return n.key===a?c(e,t,n,r):null}if(ko(n)||U(n))return null!==a?null:d(e,t,n,r,null);Eo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case _:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(ko(r)||U(r))return d(t,e=e.get(n)||null,r,a,null);Eo(t,r)}return null}function m(a,i,l,s){for(var u=null,c=null,d=i,m=i=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=p(a,d,l[m],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(a,d),i=o(v,i,m),null===c?u=v:c.sibling=v,c=v,d=g}if(m===l.length)return n(a,d),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 u}for(d=r(a,d);m<l.length;m++)null!==(g=h(d,a,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),i=o(g,i,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=U(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,m=l,g=l=0,v=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(v=m,m=null):v=m.sibling;var y=p(a,m,b.value,u);if(null===y){null===m&&(m=v);break}e&&m&&null===y.alternate&&t(a,m),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,m=v}if(b.done)return n(a,m),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return c}for(m=r(a,m);!b.done;g++,b=s.next())null!==(b=h(m,a,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===E&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case k:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===E){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=_o(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===E?((r=Zs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Gs(o.type,o.key,o.props,null,e.mode,s)).ref=_o(e,r,o),s.return=e,e=s)}return l(e);case _:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ys(o,e.mode,s)).return=e,e=r),l(e);if(ko(o))return m(e,r,o,s);if(U(o))return g(e,r,o,s);if(c&&Eo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,G(e.type)||"Component"))}return n(e,r)}}var Co=So(!0),To=So(!1),Oo={},Do=sa(Oo),Po=sa(Oo),No=sa(Oo);function Io(e){if(e===Oo)throw Error(i(174));return e}function Ao(e,t){switch(ca(No,t),ca(Po,e),ca(Do,Oo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Do),ca(Do,t)}function Lo(){ua(Do),ua(Po),ua(No)}function Ro(e){Io(No.current);var t=Io(Do.current),n=pe(t,e.type);t!==n&&(ca(Po,e),ca(Do,n))}function jo(e){Po.current===e&&(ua(Do),ua(Po))}var Mo=sa(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bo=null,zo=null,$o=!1;function Uo(e,t){var n=Vs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ho(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Vo(e){if($o){var t=zo;if(t){var n=t;if(!Ho(e,t)){if(!(t=Gr(n.nextSibling))||!Ho(e,t))return e.flags=-1025&e.flags|2,$o=!1,void(Bo=e);Uo(Bo,n)}Bo=e,zo=Gr(t.firstChild)}else e.flags=-1025&e.flags|2,$o=!1,Bo=e}}function qo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Bo=e}function Wo(e){if(e!==Bo)return!1;if(!$o)return qo(e),$o=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=zo;t;)Uo(e,t),t=Gr(t.nextSibling);if(qo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Gr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=Bo?Gr(e.stateNode.nextSibling):null;return!0}function Go(){zo=Bo=null,$o=!1}var Zo=[];function Qo(){for(var e=0;e<Zo.length;e++)Zo[e]._workInProgressVersionPrimary=null;Zo.length=0}var Yo=x.ReactCurrentDispatcher,Xo=x.ReactCurrentBatchConfig,Ko=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Ko=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Yo.current=null===e||null===e.memoizedState?Ii:Ai,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Yo.current=Li,e=n(r,a)}while(ri)}if(Yo.current=Ni,t=null!==ei&&null!==ei.next,Ko=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Ko&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,$l|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(ji=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(ji=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Ko&e)===e)&&(t._workInProgressVersionPrimary=r,Zo.push(t))),e)return n(t._source);throw Zo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Al;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Yo.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,h=p.getSnapshot,m=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-Ht(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Pi.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function hi(e,t,n){return pi(si(),e,t,n)}function mi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Pi.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},li().memoizedState=e}function bi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function xi(e,t){return yi(516,4,e,t)}function ki(e,t){return wi(516,4,e,t)}function _i(e,t){return wi(4,2,e,t)}function Ei(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,Ei.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Di(e,t){var n=Ha();qa(98>n?98:n,(function(){e(!0)})),qa(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Pi(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}hs(e,a,r)}}var Ni={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:xi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,Ei.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,Jo,e),[r.memoizedState,e]},useRef:vi,useState:mi,useDebugValue:Ci,useDeferredValue:function(e){var t=mi(e),n=t[0],r=t[1];return xi((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=mi(!1),t=e[0];return vi(e=Di.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if($o){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(i(355))})),n=mi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return mi(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ai={readContext:oo,useCallback:Ti,useContext:oo,useEffect:ki,useImperativeHandle:Si,useLayoutEffect:_i,useMemo:Oi,useReducer:ci,useRef:bi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return ki((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Li={readContext:oo,useCallback:Ti,useContext:oo,useEffect:ki,useImperativeHandle:Si,useLayoutEffect:_i,useMemo:Oi,useReducer:di,useRef:bi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return ki((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ri=x.ReactCurrentOwner,ji=!1;function Mi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Fi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||ji?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Bi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||qs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Ws(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(ji=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(ji=!0)}return Hi(e,t,n,r,o)}function $i(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},ks(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},ks(t,e),null;t.memoizedState={baseLanes:0},ks(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,ks(t,r);return Mi(e,t,a,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,a){var o=ga(n)?ha:fa.current;return o=ma(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||ji?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Vi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),xo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ma(t,u=ga(n)?ha:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||bo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ya(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ma(t,s=ga(n)?ha:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var h=t.memoizedState;l!==d||f!==h||pa.current||io?("function"==typeof p&&(go(t,n,p,r),h=t.memoizedState),(u=io||bo(t,n,u,r,f,h,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return qi(e,t,n,r,o,a)}function qi(e,t,n,r,a,o){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&xa(t,n,!1),ol(e,t,o);r=t.stateNode,Ri.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Mi(e,t,l,o),t.memoizedState=r.state,a&&xa(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?ba(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ba(0,t.context,!1),Ao(e,t.containerInfo)}var Gi,Zi,Qi,Yi,Xi={dehydrated:null,retryLane:0};function Ki(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Mo,1&o),null===e?(void 0!==a.fallback&&Vo(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Qs({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Qs(t,a,0,null),n=Zs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Ws(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Ws(i,l),null!==e?r=Ws(e,r):(r=Zs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(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,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Fo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),$l|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ws(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ws(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$o)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&va(),null;case 3:return Lo(),ua(pa),ua(fa),Qo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Zi(t),null;case 5:jo(t);var o=Io(No.current);if(n=t.type,null!==e&&null!=t.stateNode)Qi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Io(Do.current),Wo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Kr]=l,n){case"dialog":Dr("cancel",r),Dr("close",r);break;case"iframe":case"object":case"embed":Dr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Dr(Sr[e],r);break;case"source":Dr("error",r);break;case"img":case"image":case"link":Dr("error",r),Dr("load",r);break;case"details":Dr("toggle",r);break;case"input":ee(r,l),Dr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Dr("invalid",r);break;case"textarea":se(r,l),Dr("invalid",r)}for(var u in _e(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Dr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Kr]=r,Gi(e,t,!1,!1),t.stateNode=e,u=Ee(n,r),n){case"dialog":Dr("cancel",e),Dr("close",e),o=r;break;case"iframe":case"object":case"embed":Dr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Sr.length;o++)Dr(Sr[o],e);o=r;break;case"source":Dr("error",e),o=r;break;case"img":case"image":case"link":Dr("error",e),Dr("load",e),o=r;break;case"details":Dr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Dr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Dr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Dr("invalid",e);break;default:o=r}_e(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?xe(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Dr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Br)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Io(No.current),Io(Do.current),Wo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ua(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Al||0==(134217727&$l)&&0==(134217727&Ul)||bs(Al,Rl))),(r||n)&&(t.flags|=4),null);case 4:return Lo(),Zi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Mo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&Ua()>Wl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!$o)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ua()-r.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ua(),n.sibling=null,t=Mo.current,ca(Mo,l?1&t|2:1&t),n):null;case 23:case 24:return _s(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Lo(),ua(pa),ua(fa),Qo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return jo(e),null;case 13:return ua(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Mo),null;case 4:return Lo(),null;case 10:return no(e),null;case 23:case 24:return _s(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Gi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Zi=function(){},Qi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Io(Do.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in _e(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Dr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===R?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Xl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Kl?Kl=new Set([this]):Kl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var hl="function"==typeof WeakSet?WeakSet:Set;function ml(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ya(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Ms(n,e),js(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ya(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&xt(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(_a&&"function"==typeof _a.onCommitFiberUnmount)try{_a.onCommitFiberUnmount(ka,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Ms(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(ml(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:ml(t);break;case 4:Sl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function xl(e){return 5===e.tag||3===e.tag||4===e.tag}function kl(e){e:{for(var t=e.return;null!==t;){if(xl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||xl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?_l(e,n,t):El(e,n,t)}function _l(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(_l(e,t,n),e=e.sibling;null!==e;)_l(e,t,n),e=e.sibling}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function Sl(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Kr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,a),t=Ee(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?xe(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,xt(n.containerInfo)));case 13:return null!==t.memoizedState&&(ql=Ua(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new hl),t.forEach((function(t){var r=Us.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ol(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Dl=Math.ceil,Pl=x.ReactCurrentDispatcher,Nl=x.ReactCurrentOwner,Il=0,Al=null,Ll=null,Rl=0,jl=0,Ml=sa(0),Fl=0,Bl=null,zl=0,$l=0,Ul=0,Hl=0,Vl=null,ql=0,Wl=1/0;function Gl(){Wl=Ua()+500}var Zl,Ql=null,Yl=!1,Xl=null,Kl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Il)?Ua():-1!==ls?ls:ls=Ua()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ha()?1:2;if(0===ss&&(ss=zl),0!==Qa.transition){0!==us&&(us=null!==Vl?Vl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ha(),0!=(4&Il)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function hs(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=ms(e,t)))return null;Ut(e,t,n),e===Al&&(Ul|=t,4===Fl&&bs(e,Rl));var r=Ha();1===t?0!=(8&Il)&&0==(48&Il)?ys(e):(gs(e,n),0===Il&&(Gl(),Ga())):(0==(4&Il)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Vl=e}function ms(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,jt(u);var d=Rt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Al?Rl:0),t=Rt,0===r)null!==n&&(n!==ja&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==ja&&Ca(n)}15===t?(n=ys.bind(null,e),null===Fa?(Fa=[n],Ba=Sa(Na,Za)):Fa.push(n),n=ja):14===t?n=Wa(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Wa(n,vs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vs(e){if(ls=-1,us=ss=0,0!=(48&Il))throw Error(i(327));var t=e.callbackNode;if(Rs()&&e.callbackNode!==t)return null;var n=Mt(e,e===Al?Rl:0);if(0===n)return null;var r=n,a=Il;Il|=16;var o=Cs();for(Al===e&&Rl===r||(Gl(),Es(e,r));;)try{Ds();break}catch(s){Ss(e,s)}if(to(),Pl.current=o,Il=a,null!==Ll?r=0:(Al=null,Rl=0,r=Fl),0!=(zl&Ul))Es(e,0);else if(0!==r){if(2===r&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,Es(e,0),bs(e,n),gs(e,Ua()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Is(e);break;case 3:if(bs(e,n),(62914560&n)===n&&10<(r=ql+500-Ua())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Vr(Is.bind(null,e),r);break}Is(e);break;case 4:if(bs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-Ht(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=Ua()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Dl(n/1960))-n)){e.timeoutHandle=Vr(Is.bind(null,e),n);break}Is(e);break;default:throw Error(i(329))}}return gs(e,Ua()),e.callbackNode===t?vs.bind(null,e):null}function bs(e,t){for(t&=~Hl,t&=~Ul,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Il))throw Error(i(327));if(Rs(),e===Al&&0!=(e.expiredLanes&Rl)){var t=Rl,n=Ts(e,t);0!=(zl&Ul)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,Es(e,0),bs(e,t),gs(e,Ua()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Is(e),gs(e,Ua()),null}function ws(e,t){var n=Il;Il|=1;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}}function xs(e,t){var n=Il;Il&=-2,Il|=8;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}}function ks(e,t){ca(Ml,jl),jl|=t,zl|=t}function _s(){jl=Ml.current,ua(Ml)}function Es(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,qr(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Lo(),ua(pa),ua(fa),Qo();break;case 5:jo(r);break;case 4:Lo();break;case 13:case 19:ua(Mo);break;case 10:no(r);break;case 23:case 24:_s()}n=n.return}Al=e,Ll=Ws(e.current,null),Rl=jl=zl=t,Fl=0,Bl=null,Hl=Ul=$l=0}function Ss(e,t){for(;;){var n=Ll;try{if(to(),Yo.current=Ni,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Ko=0,ti=ei=Jo=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ll=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Rl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Mo.current),f=i;do{var p;if(p=13===f.tag){var h=f.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=f.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var v=new Set;v.add(u),f.updateQueue=v}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=uo(-1,1);b.tag=2,co(l,b)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=$s.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((G(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var x=f.type,k=f.stateNode;if(0==(64&f.flags)&&("function"==typeof x.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Kl||!Kl.has(k)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ns(n)}catch(_){t=_,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function Cs(){var e=Pl.current;return Pl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Il;Il|=16;var r=Cs();for(Al===e&&Rl===t||Es(e,t);;)try{Os();break}catch(a){Ss(e,a)}if(to(),Il=n,Pl.current=r,null!==Ll)throw Error(i(261));return Al=null,Rl=0,Fl}function Os(){for(;null!==Ll;)Ps(Ll)}function Ds(){for(;null!==Ll&&!Ta();)Ps(Ll)}function Ps(e){var t=Zl(e.alternate,e,jl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Ll=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,jl)))return void(Ll=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&jl)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ll=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Fl&&(Fl=5)}function Is(e){var t=Ha();return qa(99,As.bind(null,e,t)),null}function As(e,t){do{Rs()}while(null!==es);if(0!=(48&Il))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-Ht(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Al&&(Ll=Al=null,Rl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Il,Il|=32,Nl.current=null,zr=Zt,gr(l=mr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,h=0,m=0,g=l,v=null;t:for(;;){for(var b;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===s&&++h===o&&(f=d),v===u&&++m===c&&(p=d),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;$r={focusedElem:l,selectionRange:s},Zt=!1,cs=null,ds=!1,Ql=r;do{try{Ls()}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);cs=null,Ql=r;do{try{for(l=e;null!==Ql;){var y=Ql.flags;if(16&y&&ve(Ql.stateNode,""),128&y){var w=Ql.alternate;if(null!==w){var x=w.ref;null!==x&&("function"==typeof x?x(null):x.current=null)}}switch(1038&y){case 2:kl(Ql),Ql.flags&=-3;break;case 6:kl(Ql),Ql.flags&=-3,Cl(Ql.alternate,Ql);break;case 1024:Ql.flags&=-1025;break;case 1028:Ql.flags&=-1025,Cl(Ql.alternate,Ql);break;case 4:Cl(Ql.alternate,Ql);break;case 8:Sl(l,s=Ql);var k=s.alternate;wl(s),null!==k&&wl(k)}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);if(x=$r,w=mr(),y=x.focusedElem,l=x.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(x=l.end)&&(x=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(x,y.value.length)):(x=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(x=x.getSelection(),s=y.textContent.length,k=Math.min(l.start,s),l=void 0===l.end?k:Math.min(l.end,s),!x.extend&&k>l&&(s=l,l=k,k=s),s=pr(y,k),o=pr(y,l),s&&o&&(1!==x.rangeCount||x.anchorNode!==s.node||x.anchorOffset!==s.offset||x.focusNode!==o.node||x.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),x.removeAllRanges(),k>l?(x.addRange(w),x.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),x.addRange(w))))),w=[];for(x=y;x=x.parentNode;)1===x.nodeType&&w.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(x=w[y]).element.scrollLeft=x.left,x.element.scrollTop=x.top}Zt=!!zr,$r=zr=null,e.current=n,Ql=r;do{try{for(y=e;null!==Ql;){var _=Ql.flags;if(36&_&&vl(y,Ql.alternate,Ql),128&_){w=void 0;var E=Ql.ref;if(null!==E){var S=Ql.stateNode;Ql.tag,w=S,"function"==typeof E?E(w):E.current=w}}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);Ql=null,Ma(),Il=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Ql=r;null!==Ql;)t=Ql.nextEffect,Ql.nextEffect=null,8&Ql.flags&&((_=Ql).sibling=null,_.stateNode=null),Ql=t;if(0===(r=e.pendingLanes)&&(Kl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,_a&&"function"==typeof _a.onCommitFiberRoot)try{_a.onCommitFiberRoot(ka,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ua()),Yl)throw Yl=!1,e=Xl,Xl=null,e;return 0!=(8&Il)||Ga(),null}function Ls(){for(;null!==Ql;){var e=Ql.alternate;ds||null===cs||(0!=(8&Ql.flags)?Je(Ql,cs)&&(ds=!0):13===Ql.tag&&Ol(e,Ql)&&Je(Ql,cs)&&(ds=!0));var t=Ql.flags;0!=(256&t)&&gl(e,Ql),0==(512&t)||Jl||(Jl=!0,Wa(97,(function(){return Rs(),null}))),Ql=Ql.nextEffect}}function Rs(){if(90!==ts){var e=97<ts?97:ts;return ts=90,qa(e,Fs)}return!1}function js(e,t){ns.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Rs(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Rs(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Il))throw Error(i(331));var t=Il;Il|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Il=t,Ga(),!0}function Bs(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=ms(e,1))&&(Ut(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=ms(n,1)))Ut(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function $s(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Al===e&&(Rl&n)===n&&(4===Fl||3===Fl&&(62914560&Rl)===Rl&&500>Ua()-ql?Es(e,0):Hl|=n),gs(e,t)}function Us(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ha()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=ms(e,t))&&(Ut(e,t,n),gs(e,n))}function Hs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vs(e,t,n,r){return new Hs(e,t,n,r)}function qs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ws(e,t){var n=e.alternate;return null===n?((n=Vs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)qs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case E:return Zs(n.children,a,o,t);case j:l=8,a|=16;break;case S:l=8,a|=1;break;case C:return(e=Vs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case P:return(e=Vs(13,n,t,a)).type=P,e.elementType=P,e.lanes=o,e;case N:return(e=Vs(19,n,t,a)).elementType=N,e.lanes=o,e;case M:return Qs(n,a,o,t);case F:return(e=Vs(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case O:l=9;break e;case D:l=11;break e;case I:l=14;break e;case A:l=16,r=null;break e;case L:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Vs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Zs(e,t,n,r){return(e=Vs(7,e,r,t)).lanes=n,e}function Qs(e,t,n,r){return(e=Vs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Vs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Vs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ks(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),hs(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Ks(e,t,null!=n&&!0===n.hydrate),t=Vs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}xs((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:_,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)ji=!0;else{if(0==(n&r)){switch(ji=!1,t.tag){case 3:Wi(t),Go();break;case 5:Ro(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Ao(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ki(e,t,n):(ca(Mo,1&Mo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return ol(e,t,n)}ji=0!=(16384&e.flags)}else ji=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ma(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=vo,t.stateNode=a,a._reactInternals=t,xo(t,r,e,n),t=qi(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return qs(e)?1:0;if(null!=e){if((e=e.$$typeof)===D)return 11;if(e===I)return 14}return 2}(a),e=Ya(a,e),o){case 0:t=Hi(null,t,a,e,n);break e;case 1:t=Vi(null,t,a,e,n);break e;case 11:t=Fi(null,t,a,e,n);break e;case 14:t=Bi(null,t,a,Ya(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Hi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 1:return r=t.type,a=t.pendingProps,Vi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Go(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Gr(t.stateNode.containerInfo.firstChild),Bo=t,o=$o=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Zo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Go();t=t.child}return t;case 5:return Ro(t),null===e&&Vo(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,Hr(r,a)?l=null:null!==o&&Hr(r,o)&&(t.flags|=16),Ui(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Vo(t),null;case 13:return Ki(e,t,n);case 4:return Ao(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Fi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Xa,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Ya(a=t.type,t.pendingProps),Bi(e,t,a,o=Ya(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ya(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),xo(t,r,a,n),qi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(hs(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(hs(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);hs(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));X(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ie=ws,Ae=function(e,t,n,r,a){var o=Il;Il|=4;try{return qa(98,e.bind(null,t,n,r,a))}finally{0===(Il=o)&&(Gl(),Ga())}},Le=function(){0==(49&Il)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ua())}))}Ga()}(),Rs())},Re=function(e,t){var n=Il;Il|=2;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}};var lu={Events:[na,ra,aa,Pe,Ne,Rs,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ke(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{ka=cu.inject(uu),_a=cu}catch(me){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lu,t.createPortal=iu,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Ke(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Il;if(0!=(48&n))return e(t);Il|=1;try{if(e)return qa(99,e.bind(null,t))}finally{Il=n,Ga()}},t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)},t.render=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!au(e))throw Error(i(40));return!!e._reactRootContainer&&(xs((function(){ou(null,null,e,!1,(function(){e._reactRootContainer=null,e[Jr]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return iu(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!au(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ou(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>q,ql:()=>J});var r=n(67294),a=n(45697),o=n.n(a),i=n(69590),l=n.n(i),s=n(41143),u=n.n(s),c=n(96774),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},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(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 g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),_=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=_(e,g.TITLE),n=_(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=_(e,"defaultTitle");return t||r||void 0},S=function(e){return _(e,"onChangeClientState")||function(){}},C=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)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),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}),[])},O=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()},D=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},P=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.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},I=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},A=[g.NOSCRIPT,g.SCRIPT,g.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,"'")},R=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}),"")},j=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},M=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=x[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=j(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=R(n),o=P(t);return a?"<"+e+' data-rh="true" '+a+">"+L(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return j(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){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===A.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=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=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=N(e.metaTags,y),o=N(t,v),i=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,f,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),H=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),V="undefined"!=typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=V,q.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(g.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}},G=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(","))}},Z=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;G(g.BODY,e.bodyAttributes),G(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),G(g.TITLE,t)}(c,d);var f={baseTag:W(g.BASE,n),linkTags:W(g.LINK,a),metaTags:W(g.META,o),noscriptTags:W(g.NOSCRIPT,i),scriptTags:W(g.SCRIPT,s),styleTags:W(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new 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=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:_(e,"defer"),encode:_(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:O(g.LINK,["rel","href"],e),metaTags:O(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:O(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:O(g.SCRIPT,["src","innerHTML"],e),styleTags:O(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:D(e,"prioritizeSeoTags")});q.canUseDOM?(t=o,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){Z(t,(function(){Q=null}))})):(Z(t),Q=null)):B&&(a=B(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);Y.propTypes={context:H.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],K=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(I(this.props,"helmetData"),I(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return 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 g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.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,X),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 g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.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 $||(o=new $(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},a,{context:e}))}))},t}(r.Component);J.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},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(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,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(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 g:case m:case s:return e;default:return t}}case a:return t}}}function k(e){return x(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=g,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||x(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===o},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===a},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=x},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(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 new 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},i.apply(this,arguments)}var l=n(67294),s=n(45697),u=[],c=[];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(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),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(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.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(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){v(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=m},33199:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>M,hasTranslate3DSupport:()=>h,isTouch:()=>d,make2dTransformValue:()=>f,make3dTransformValue:()=>p});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])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new 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},o.apply(this,arguments)};Object.create;Object.create;var i=n(67294),l="kvfysmfp",s="ufhsfnkm",u=".".concat(l,"{overflow:hidden;touch-action:none}.").concat(s,"{transform-origin: 0 0}"),c="undefined"==typeof window,d=function(){return!c&&("ontouchstart"in window||navigator.maxTouchPoints>0)},f=function(e){var t=e.x,n=e.y,r=e.scale;return"scale(".concat(r,") translate(").concat(t,"px, ").concat(n,"px)")},p=function(e){var t=e.x,n=e.y,r=e.scale;return"scale3d(".concat(r,",").concat(r,", 1) translate3d(").concat(t,"px, ").concat(n,"px, 0)")},h=function(){var e=!c&&window.CSS;return e&&e.supports&&e.supports("transform","translate3d(0,0,0)")},m=Math.min,g=Math.max;function v(e){var t=e.containerDimension,n=e.childDimension,r=e.padding,a=e.centerContained,o=n-t;return o+2*r<=0&&a?[o/2,o/2]:[m(o+r,0)-r,g(0,o+r)]}var b=function(e,t){return t?"".concat(e," ").concat(t):e},y=Math.abs,w=Math.min,x=Math.sqrt,k="undefined"==typeof window,_=!k&&/(Mac)/i.test(navigator.platform),E=function(e){return"drag"===e},S=function(e){return"zoom"===e},C=function(e){e.stopPropagation(),e.preventDefault()},T=function(e,t){var n=e.x-t.x,r=e.y-t.y;return x(n*n+r*r)},O=function(e){return-Math.cos(e*Math.PI)/2+.5},D=function(e){return{x:e.pageX,y:e.pageY}},P=function(e){return Array.from(e).map(D)},N=function(e,t){return e+t},I=function(e,t,n){return n<e?e:n>t?t:n},A=function(e){return!(e.ctrlKey||e.metaKey)},L=function(){},R={x:0,y:0},j=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._prevDragMovePoint=null,t._containerObserver=null,t._fingers=0,t._firstMove=!0,t._initialOffset=o({},R),t._interaction=null,t._isDoubleTap=!1,t._isOffsetsSet=!1,t._lastDragPosition=null,t._lastScale=1,t._lastTouchStart=0,t._lastZoomCenter=null,t._listenMouseMove=!1,t._nthZoom=0,t._offset=o({},R),t._startOffset=o({},R),t._startTouches=null,t._updatePlaned=!1,t._wheelTimeOut=null,t._zoomFactor=1,t._initialZoomFactor=1,t._draggingPoint=o({},R),t._ignoreNextClick=!1,t._containerRef=i.createRef(),t._handleClick=function(e){t._ignoreNextClick&&(t._ignoreNextClick=!1,e.stopPropagation())},t._onResize=function(){var e;(null===(e=t._containerRef)||void 0===e?void 0:e.current)&&(t._updateInitialZoomFactor(),t._setupOffsets(),t._update())},t._handlerOnTouchEnd=t._handlerIfEnable((function(e){t._fingers=e.touches.length,t.props.shouldCancelHandledTouchEndEvents&&(S(t._interaction)||E(t._interaction)&&(t._startOffset.x!==t._offset.x||t._startOffset.y!==t._offset.y))&&C(e),E(t._interaction)&&!t._enoughToDrag()&&t._handleClick(e),t._updateInteraction(e)})),t._handlerOnTouchStart=t._handlerIfEnable((function(e){t._firstMove=!0,t._fingers=e.touches.length,t._detectDoubleTap(e)})),t._handlerOnTouchMove=t._handlerIfEnable((function(e){var n,r,a;t._isDoubleTap||(t._collectInertia(e),t._firstMove?(t._updateInteraction(e),t._interaction&&C(e),t._startOffset=o({},t._offset),t._startTouches=P(e.touches)):(S(t._interaction)?t._startTouches&&2===t._startTouches.length&&2===e.touches.length&&t._handleZoom(e,(n=t._startTouches,r=P(e.touches),a=T(n[0],n[1]),T(r[0],r[1])/a)):E(t._interaction)&&t._handleDrag(e),t._interaction&&(C(e),t._update())),t._firstMove=!1)})),t._handlerWheel=function(e){if(!t.props.shouldInterceptWheel(e)){C(e);var n=e.pageX,r=e.pageY,a=e.deltaY,o=e.deltaMode,i=1;(function(e){return _&&e.ctrlKey}(e)||1===o)&&(i=15);var l={touches:[{pageX:n,pageY:r}]},s=t._getOffsetByFirstTouch(l),u=a*i;t._stopAnimation(),t._scaleTo(t._zoomFactor-u/t.props.wheelScaleFactor,s),t._update(),clearTimeout(t._wheelTimeOut),t._wheelTimeOut=setTimeout((function(){return t._sanitize()}),100)}},t._handlers=t.props.isTouch()?[["touchstart",t._handlerOnTouchStart],["touchend",t._handlerOnTouchEnd],["touchmove",t._handlerOnTouchMove]]:[["mousemove",t.simulate(t._handlerOnTouchMove),t.props._document],["mouseup",t.simulate(t._handlerOnTouchEnd),t.props._document],["mousedown",t.simulate(t._handlerOnTouchStart)],["click",t._handleClick],["wheel",t._handlerWheel]],t}return a(t,e),t.prototype._handleDragStart=function(e){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(e)},t.prototype._handleDrag=function(e){var t=this._getOffsetByFirstTouch(e);this._enoughToDrag()?this._drag(t,this._lastDragPosition):this._virtualDrag(t,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=t},t.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},t.prototype._realizeInertia=function(){var e=this,t=this.props,n=t.inertiaFriction;if(t.inertia&&this._velocity){var r=this._velocity,a=r.x,i=r.y;if(a||i){this._stopAnimation(),this._resetInertia();this._animate((function(){if(i*=n,!(a*=n)&&!i)return e._stopAnimation();var t,r,l=o({},e._offset);if(e._addOffset({x:a,y:i}),e._offset=e._sanitizeOffset(e._offset),t=l,r=e._offset,t.x===r.x&&t.y===r.y)return e._stopAnimation();e._update({isAnimation:!0})}),{duration:9999})}}},t.prototype._collectInertia=function(e){var t=e.touches;if(this.props.inertia){var n,r,a=P(t)[0],o=this._prevDragMovePoint;o&&(this._velocity=(n=a,{x:(r=o).x-n.x,y:r.y-n.y})),this._prevDragMovePoint=a}},t.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},t.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},t.prototype._handleZoom=function(e,t){var n,r={x:(n=this._getOffsetTouches(e)).map((function(e){return e.x})).reduce(N,0)/n.length,y:n.map((function(e){return e.y})).reduce(N,0)/n.length},a=t/this._lastScale;this._lastScale=t,this._nthZoom+=1,this._nthZoom>3&&(this._scale(a,r),this._drag(r,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=r},t.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},t.prototype._handleDoubleTap=function(e){var t=this;if(!this._hasInteraction&&0!==this.props.tapZoomFactor){var n=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var r=this._zoomFactor+this.props.tapZoomFactor,a=this._zoomFactor,o=this._getOffsetByFirstTouch(e);this._isDoubleTap=!0,a>r&&(o=this._getCurrentZoomCenter()),n?this._zoomOutAnimation():this._animate((function(e){t._scaleTo(a+e*(r-a),o)}))}},t.prototype._computeInitialOffset=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=t.width,r=t.height,a=-y(n*this._getInitialZoomFactor()-e.width)/2,o=-y(r*this._getInitialZoomFactor()-e.height)/2;this._initialOffset={x:a,y:o}},t.prototype._resetOffset=function(){this._offset=o({},this._initialOffset)},t.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},t.prototype._sanitizeOffset=function(e){var t=this._getContainerRect(),n=this._getChildSize(),r=n.width,a=n.height,o=r*this._getInitialZoomFactor()*this._zoomFactor,i=a*this._getInitialZoomFactor()*this._zoomFactor,l=v({containerDimension:t.width,childDimension:o,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),s=l[0],u=l[1],c=v({containerDimension:t.height,childDimension:i,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),d=c[0],f=c[1];return{x:I(s,u,e.x),y:I(d,f,e.y)}},t.prototype.alignCenter=function(e){var t=this,n=o({duration:250,animated:!0},e),r=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=o({},this._offset),d=this._getContainerRect(),f={x:d.width/2,y:d.height/2};if(this._zoomFactor=1,this._offset={x:-(f.x-r),y:-(f.y-a)},this._scaleTo(i,f),this._stopAnimation(),!l)return this._update();var p=this._zoomFactor-u,h=this._offset.x-c.x,m=this._offset.y-c.y;this._zoomFactor=u,this._offset=o({},c);this._animate((function(e){var n=c.x+h*e,r=c.y+m*e;t._zoomFactor=u+p*e,t._offset=t._sanitizeOffset({x:n,y:r}),t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype.scaleTo=function(e){var t=this,n=o({duration:250,animated:!0},e),r=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=o({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(i,{x:r,y:a}),this._stopAnimation(),!l)return this._update();var d=this._zoomFactor-u,f=this._offset.x-c.x,p=this._offset.y-c.y;this._zoomFactor=u,this._offset=o({},c);this._animate((function(e){var n=c.x+f*e,r=c.y+p*e;t._zoomFactor=u+d*e,t._offset={x:n,y:r},t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype._scaleTo=function(e,t){this._scale(e/this._zoomFactor,t),this._offset=this._sanitizeOffset(this._offset)},t.prototype._scale=function(e,t){e=this._scaleZoomFactor(e),this._addOffset({x:(e-1)*(t.x+this._offset.x),y:(e-1)*(t.y+this._offset.y)}),this.props.onZoomUpdate()},t.prototype._scaleZoomFactor=function(e){var t=this._zoomFactor;return this._zoomFactor*=e,this._zoomFactor=I(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/t},t.prototype._canDrag=function(){return this.props.draggableUnZoomed||!((e=this._zoomFactor)>(t=1)-.01&&e<t+.01);var e,t},t.prototype._drag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this.props.lockDragAxis?y(r)>y(n)?this._addOffset({x:r,y:0}):this._addOffset({y:n,x:0}):this._addOffset({x:r,y:n}),this.props.onDragUpdate()}},t.prototype._virtualDrag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this._draggingPoint={x:r+this._draggingPoint.x,y:n+this._draggingPoint.y}}},t.prototype._addOffset=function(e){var t=this._offset,n=t.x,r=t.y;this._offset={x:n+e.x,y:r+e.y}},t.prototype._sanitize=function(){this._zoomFactor<this.props.zoomOutFactor?(this._resetInertia(),this._zoomOutAnimation()):this._isInsaneOffset()&&this._sanitizeOffsetAnimation()},t.prototype._isInsaneOffset=function(){var e=this._offset,t=this._sanitizeOffset(e);return t.x!==e.x||t.y!==e.y},t.prototype._sanitizeOffsetAnimation=function(){var e=this,t=this._sanitizeOffset(this._offset),n=o({},this._offset);this._animate((function(r){var a=n.x+r*(t.x-n.x),o=n.y+r*(t.y-n.y);e._offset={x:a,y:o},e._update()}))},t.prototype._zoomOutAnimation=function(){var e=this;if(1!==this._zoomFactor){var t=this._zoomFactor,n=this._getCurrentZoomCenter();this._animate((function(r){var a=t+r*(1-t);e._scaleTo(a,n)}))}},t.prototype._getInitialZoomFactor=function(){return this._initialZoomFactor},t.prototype._getCurrentZoomCenter=function(){var e=this._offset,t=e.x,n=e.y,r=t-this._initialOffset.x,a=n-this._initialOffset.y;return{x:-1*t-r/(1/this._zoomFactor-1),y:-1*n-a/(1/this._zoomFactor-1)}},t.prototype._getOffsetByFirstTouch=function(e){return this._getOffsetTouches(e)[0]},t.prototype._getOffsetTouches=function(e){var t=this.props._document,n=t.documentElement,r=t.body,a=this._getContainerRect(),o=a.top,i=a.left,l=n.scrollTop||r.scrollTop,s=n.scrollLeft||r.scrollLeft,u=o+l,c=i+s;return P(e.touches).map((function(e){var t=e.x,n=e.y;return{x:t-c,y:n-u}}))},t.prototype._animate=function(e,t){var n=this,r=(new Date).getTime(),a=o({timeFn:O,callback:function(){},duration:this.props.animationDuration},t),i=a.timeFn,l=a.callback,s=a.duration,u=function(){if(n._inAnimation){var t=(new Date).getTime()-r,a=t/s;t>=s?(e(1),n._stopAnimation(),l(),n._update()):(a=i(a),e(a),n._update({isAnimation:!0}),requestAnimationFrame(u))}};this._inAnimation=!0,requestAnimationFrame(u)},t.prototype._stopAnimation=function(){this._inAnimation=!1},t.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},t.prototype._getContainerRect=function(){return this._containerRef.current.getBoundingClientRect()},t.prototype._getChildSize=function(){var e=this._containerRef.current;return function(e){if(e){var t=e.offsetWidth,n=e.offsetHeight;if(t&&n)return{width:t,height:n};var r=getComputedStyle(e),a=parseFloat(r.width),o=parseFloat(r.height);if(o&&a)return{width:a,height:o}}return{width:0,height:0}}(null==e?void 0:e.firstElementChild)},t.prototype._updateInitialZoomFactor=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=e.width/t.width,r=e.height/t.height;this._initialZoomFactor=w(n,r)},t.prototype._bindEvents=function(){var e=this,t=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(t)):window.addEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).addEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.addEventListener("load",e._onResize)}))},t.prototype._unSubscribe=function(){var e=this,t=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).removeEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.removeEventListener("load",e._onResize)}))},t.prototype._update=function(e){var t=this;if(!this._updatePlaned){var n=function(){var e=t._getInitialZoomFactor()*t._zoomFactor,n=-t._offset.x/e,r=-t._offset.y/e;t.props.onUpdate({scale:e,x:n,y:r})};if(null==e?void 0:e.isAnimation)return n();this._updatePlaned=!0,requestAnimationFrame((function(){t._updatePlaned=!1,n()}))}},t.prototype._handlerIfEnable=function(e){var t=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];t.props.enabled&&e.apply(void 0,n)}},t.prototype._setInteraction=function(e,t){var n=this._interaction;n!==e&&(n&&!e&&(S(n)?this._handleZoomEnd():E(n)&&this._handleDragEnd()),S(e)?this._handleZoomStart():E(e)&&this._handleDragStart(t)),this._interaction=e},t.prototype._distanceBetweenNumbers=function(e,t){return e>t?e-t:t-e},t.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},t.prototype._updateInteraction=function(e){var t=this._fingers;return 2===t?this._setInteraction("zoom",e):1===t&&this._canDrag()?this._setInteraction("drag",e):void this._setInteraction(null,e)},t.prototype._detectDoubleTap=function(e){var t=(new Date).getTime();this._fingers>1&&(this._lastTouchStart=0),t-this._lastTouchStart<300?(C(e),this._handleDoubleTap(e),S(this._interaction)?this._handleZoomEnd():E(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,1===this._fingers&&(this._lastTouchStart=t)},t.prototype.simulate=function(e){var t=this;return function(n){var r=n.pageX,a=n.pageY,o=n.type,i="mouseup"===o;"mousedown"===o&&(n.preventDefault(),t._listenMouseMove=!0),t._listenMouseMove&&(n.touches=i?[]:[{pageX:r,pageY:a}],e(n)),i&&(t._listenMouseMove=!1)}},t.prototype.componentDidMount=function(){this._bindEvents(),this._update()},t.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},t.prototype.render=function(){var e=this.props,t=e.children,n=e.containerProps,r=i.Children.only(t),a=n||{};return i.createElement(i.Fragment,null,i.createElement("style",null,u),i.createElement("div",o({},a,{ref:this._containerRef,className:b(l,a.className)}),i.cloneElement(r,{className:b(s,r.props.className)})))},t.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:d,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:L,onDragEnd:L,onDragStart:L,onDragUpdate:L,onZoomEnd:L,onZoomStart:L,onZoomUpdate:L,setOffsetsOnce:!1,shouldInterceptWheel:A,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:k?null:window.document},t}(i.Component);const M=j},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(16550),a=n(87462),o=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(16550),a=n(75068),o=n(67294),i=n(42358),l=n(87462),s=n(63366),u=n(38776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=o.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,o.createElement("a",c)}));var g=h((function(e,t){var n=e.component,a=void 0===n?m:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||v:m.innerRef=v,o.createElement(a,m)}))})),v=function(e){return e},b=o.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,y=e.isActive,w=e.location,x=e.sensitive,k=e.strict,_=e.style,E=e.to,S=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),O=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:k}):null,D=!!(y?y(O,n):O),P="function"==typeof h?h(D):h,N="function"==typeof _?_(D):_;D&&(P=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(P,c),N=(0,l.Z)({},N,p));var I=(0,l.Z)({"aria-current":D&&a||null,className:P,style:N,to:i},C);return v!==b?I.ref=t||S:I.innerRef=S,o.createElement(g,I)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>P,F0:()=>y,LX:()=>D,TH:()=>B,k6:()=>F,l_:()=>S,rs:()=>j,s6:()=>b});var r=n(75068),a=n(67294),o=n(45697),i=n.n(o),l=n(42358),s=n(38776),u=n(87462),c=n(39658),d=n.n(c),f=(n(59864),n(63366)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(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;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new 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){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p: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(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},v=g("Router-History"),b=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(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(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(a.Component);var x={},k=1e4,_=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(x[e])return x[e];var t=d().compile(e);return _<k&&(x[e]=t,_++),t}(e)(t,{pretty:!0})}function S(e){var t=e.computedMatch,n=e.to,r=e.push,o=void 0!==r&&r;return a.createElement(b.Consumer,null,(function(e){e||(0,s.Z)(!1);var r=e.history,i=e.staticContext,c=o?r.push:r.replace,d=(0,l.ob)(t?"string"==typeof n?E(n,t.params):(0,u.Z)({},n,{pathname:E(n.pathname,t.params)}):n);return i?(c(d),null):a.createElement(w,{onMount:function(){c(d)},onUpdate:function(e,t){var n=(0,l.ob)(t.to);(0,l.Hp)(n,(0,u.Z)({},d,{key:n.key}))||c(d)},to:n})}))}var C={},T=1e4,O=0;function D(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=C[n]||(C[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return O<T&&(r[e]=o,O++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?D(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(b.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function N(e){return"/"===e.charAt(0)?e:"/"+e}function I(e,t){if(!e)return t;var n=N(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function R(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!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?D(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var M=a.useContext;function F(){return M(v)}function B(){return M(b).location}},39658:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,k="+"===y||"*"===y,_="?"===y||"*"===y,E=n[2]||c,S=v||b;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:_,repeat:k,partial:x,asterisk:!!w,pattern:S?u(S):w?".*":"[^"+s(E)+"]+?"})}}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=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},86718:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(45503));t.default=function(e){return!e.prototype?r.default(e):e}},27162:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(70655),a=r.__importStar(n(67294)),o=r.__importDefault(n(86718)),i=a.createElement,l=function(e,t,n,a){var o;return i(e,t?r.__assign(((o={})[t]=a,o),n):r.__assign(r.__assign({},a),n))};t.divWrapper=function(e,t,n,r){return i("div",null,l(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=l);var r=function(a,l,s){void 0===l&&(l=t),void 0===s&&(s=null);var u="string"==typeof a;if(u)return function(e){return r(e,a||t,l)};var c=function(t){return i(e,s,(function(e){return n(a,l,t,e)}))};return u?o.default(c):c};return r}},3:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(95364)),a=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=a),function(n){return r.default(n,e.apply(void 0,t(n)))}}},96260:(e,t,n)=>{"use strict";var r=n(70655);r.__importDefault(n(95364)).default,r.__importDefault(n(27162)).default,r.__importDefault(n(3)).default},95364:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=n(67294),o=parseInt(a.version.substr(0,a.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var l=e.render,s=e.children,u=void 0===s?l:s,c=e.component,d=e.comp,f=void 0===d?c:d;return"function"==typeof u?u.apply(void 0,r.__spreadArrays([t],n)):f?a.createElement(f,t):u instanceof Array?o?u:a.createElement.apply(void 0,r.__spreadArrays(["div",null],u)):u&&u instanceof Object?"string"==typeof u.type?u:a.cloneElement(u,Object.assign({},u.props,t)):u||null}},45503:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(a.Component);return t}},89164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createBreakpoint:()=>Ae,createGlobalState:()=>xn,createMemo:()=>o,createReducer:()=>u,createReducerContext:()=>i,createStateContext:()=>c,ensuredForwardRef:()=>ue,useAsync:()=>h,useAsyncFn:()=>p,useAsyncRetry:()=>m,useAudio:()=>y,useBattery:()=>O,useBeforeUnload:()=>D,useBoolean:()=>I,useClickAway:()=>L,useCookie:()=>M,useCopyToClipboard:()=>z,useCounter:()=>q,useCss:()=>J,useCustomCompareEffect:()=>ee,useDebounce:()=>ne,useDeepCompareEffect:()=>re,useDefault:()=>ae,useDrop:()=>oe,useDropArea:()=>ie,useEffectOnce:()=>le,useEnsuredForwardedRef:()=>se,useError:()=>he,useEvent:()=>pe,useFavicon:()=>me,useFirstMountState:()=>l,useFullscreen:()=>be,useGeolocation:()=>ye,useGetSet:()=>V,useGetSetState:()=>we,useHarmonicIntervalFn:()=>_e,useHash:()=>kn,useHover:()=>Se,useHoverDirty:()=>Ce,useIdle:()=>De,useIntersection:()=>Pe,useInterval:()=>Ne,useIsomorphicLayoutEffect:()=>Y,useKey:()=>Ie,useKeyPress:()=>Le,useKeyPressEvent:()=>Re,useLatest:()=>je,useLifecycles:()=>Me,useList:()=>Fe,useLocalStorage:()=>Be,useLocation:()=>He,useLockBodyScroll:()=>Ye,useLogger:()=>Xe,useLongPress:()=>Je,useMap:()=>et,useMeasure:()=>gn,useMedia:()=>tt,useMediaDevices:()=>nt,useMediatedState:()=>rt,useMethods:()=>at,useMotion:()=>it,useMount:()=>lt,useMountedState:()=>f,useMouse:()=>ct,useMouseHovered:()=>ft,useMouseWheel:()=>pt,useMultiStateValidator:()=>fn,useNetworkState:()=>vt,useNumber:()=>bt,useObservable:()=>yt,useOrientation:()=>xt,usePageLeave:()=>kt,usePermission:()=>_t,usePinchZoom:()=>bn,usePrevious:()=>Et,usePreviousDistinct:()=>Ct,usePromise:()=>Tt,useQueue:()=>Ot,useRaf:()=>Dt,useRafLoop:()=>Pt,useRafState:()=>ut,useRendersCount:()=>yn,useScratch:()=>Lt,useScroll:()=>Rt,useScrollbarWidth:()=>dn,useScrolling:()=>jt,useSearchParam:()=>It,useSessionStorage:()=>Mt,useSet:()=>wn,useSetState:()=>g,useShallowCompareEffect:()=>zt,useSize:()=>Vt,useSlider:()=>qt,useSpeech:()=>Gt,useStartTyping:()=>Zt,useStateList:()=>Yt,useStateValidator:()=>un,useStateWithHistory:()=>Qt,useThrottle:()=>Xt,useThrottleFn:()=>Kt,useTimeout:()=>Jt,useTimeoutFn:()=>te,useTitle:()=>tn,useToggle:()=>N,useTween:()=>rn,useUnmount:()=>st,useUnmountPromise:()=>an,useUpdate:()=>U,useUpdateEffect:()=>s,useUpsert:()=>on,useVibrate:()=>ln,useVideo:()=>sn,useWindowScroll:()=>pn,useWindowSize:()=>hn});var r=n(67294),a=n.t(r,2);const o=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}};const i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(a){var o=a.children,i=a.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},o)},n]};function l(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}const s=function(e,t){var n=l();(0,r.useEffect)((function(){if(!n)return e()}),t)};const u=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,a=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var o=(0,r.useRef)(n(t)),i=(0,r.useState)(o.current)[1],l=(0,r.useCallback)((function(t){return o.current=e(o.current,t),i(o.current),t}),[e]),u=(0,r.useRef)(a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l));return s((function(){u.current=a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l)}),[l]),[o.current,u.current]}};const c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var a=n.children,o=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==o?o:e)},a)},t]};var d=n(70655);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function p(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var a=(0,r.useRef)(0),o=f(),i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++a.current;return l.loading||s((function(e){return(0,d.__assign)((0,d.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return o()&&r===a.current&&s({value:e,loading:!1}),e}),(function(e){return o()&&r===a.current&&s({error:e,loading:!1}),e}))}),t);return[l,u]}function h(e,t){void 0===t&&(t=[]);var n=p(e,t,{loading:!0}),a=n[0],o=n[1];return(0,r.useEffect)((function(){o()}),[o]),a}const m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),a=n[0],o=n[1],i=h(e,(0,d.__spreadArrays)(t,[a])),l=i.loading,s=(0,r.useCallback)((function(){l||o((function(e){return e+1}))}),(0,d.__spreadArrays)(t,[l]));return(0,d.__assign)((0,d.__assign)({},i),{retry:s})};const g=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(e){a((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function v(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function b(e){return function(t){var n,a;a=r.isValidElement(t)?(n=t).props:t;var o=g({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=o[0],l=o[1],s=(0,r.useRef)(null),u=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},c=function(){return l({paused:!1})},f=function(){return l({playing:!0})},p=function(){return l({playing:!1})},h=function(){return l({paused:!0,playing:!1})},m=function(){var e=s.current;e&&l({muted:e.muted,volume:e.volume})},b=function(){var e=s.current;if(e){var t=e.duration,n=e.buffered;l({duration:t,buffered:v(n)})}},y=function(){var e=s.current;e&&l({time:e.currentTime})},w=function(){var e=s.current;e&&l({buffered:v(e.buffered)})};n=n?r.cloneElement(n,(0,d.__assign)((0,d.__assign)({controls:!1},a),{ref:s,onPlay:u(a.onPlay,c),onPlaying:u(a.onPlaying,f),onWaiting:u(a.onWaiting,p),onPause:u(a.onPause,h),onVolumeChange:u(a.onVolumeChange,m),onDurationChange:u(a.onDurationChange,b),onTimeUpdate:u(a.onTimeUpdate,y),onProgress:u(a.onProgress,w)})):r.createElement(e,(0,d.__assign)((0,d.__assign)({controls:!1},a),{ref:s,onPlay:u(a.onPlay,c),onPlaying:u(a.onPlaying,f),onWaiting:u(a.onWaiting,p),onPause:u(a.onPause,h),onVolumeChange:u(a.onVolumeChange,m),onDurationChange:u(a.onDurationChange,b),onTimeUpdate:u(a.onTimeUpdate,y),onProgress:u(a.onProgress,w)}));var x=!1,k={play:function(){var e=s.current;if(e&&!x){var t=e.play();if("object"==typeof t){x=!0;var n=function(){x=!1};t.then(n,n)}return t}},pause:function(){var e=s.current;if(e&&!x)return e.pause()},seek:function(e){var t=s.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=s.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,l({volume:e}))},mute:function(){var e=s.current;e&&(e.muted=!0)},unmute:function(){var e=s.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=s.current;e&&(l({volume:e.volume,muted:e.muted,paused:e.paused}),a.autoPlay&&e.paused&&k.play())}),[a.src]),[n,i,k,s]}}const y=b("audio");var w=function(){};function x(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function k(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var _="undefined"!=typeof window,E="undefined"!=typeof navigator,S=n(38252);const C=n.n(S)();var T=E?navigator:void 0;const O=T&&"function"==typeof T.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,a=function(){if(e&&r){var a={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!C(t,a)&&n(a)}};return T.getBattery().then((function(t){e&&(x(r=t,"chargingchange",a),x(r,"chargingtimechange",a),x(r,"dischargingtimechange",a),x(r,"levelchange",a),a())})),function(){e=!1,r&&(k(r,"chargingchange",a),k(r,"chargingtimechange",a),k(r,"dischargingtimechange",a),k(r,"levelchange",a))}}),[]),t}:function(){return{isSupported:!1}};const D=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!=typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return x(window,"beforeunload",n),function(){return k(window,"beforeunload",n)}}),[e,n])};var P=function(e,t){return"boolean"==typeof t?t:!e};const N=function(e){return(0,r.useReducer)(P,e)},I=N;var A=["mousedown","touchstart"];const L=function(e,t,n){void 0===n&&(n=A);var a=(0,r.useRef)(t);(0,r.useEffect)((function(){a.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&a.current(t)},r=0,o=n;r<o.length;r++){var i=o[r];x(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var a=r[e];k(document,a,t)}}}),[n,e])};var R=n(36808),j=n.n(R);const M=function(e){var t=(0,r.useState)((function(){return j().get(e)||null})),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t,n){j().set(e,t,n),a(t)}),[e]),(0,r.useCallback)((function(){j().remove(e),a(null)}),[e])]};var F=n(20640),B=n.n(F);const z=function(){var e=f(),t=g({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!=typeof t&&"number"!=typeof t){var o=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void a({value:t,error:o,noUserInteraction:!0})}if(""===t){o=new Error("Cannot copy empty string to clipboard.");return void a({value:t,error:o,noUserInteraction:!0})}r=t.toString(),n=B()(r),a({value:r,error:void 0,noUserInteraction:n})}catch(o){a({value:r,error:o,noUserInteraction:n})}}),[])]};var $=function(e){return(e+1)%1e6};function U(){return(0,r.useReducer)($,0)[1]}function H(e,t){return"function"==typeof e?e.length?e(t):e():e}function V(e){var t=(0,r.useRef)(H(e)),n=U();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=H(e,t.current),n()}]}),[])}function q(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var a=H(e);"number"!=typeof a&&console.error("initialValue has to be a number, got "+typeof e),"number"==typeof n?a=Math.max(a,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"==typeof t?a=Math.min(a,t):null!==t&&console.error("max has to be a number, got "+typeof t);var o=V(a),i=o[0],l=o[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),a=H(e,r);r!==a&&("number"==typeof n&&(a=Math.max(a,n)),"number"==typeof t&&(a=Math.min(a,t)),r!==a&&l(a))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=a);var n=H(t,i());"number"!=typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),a=n,e(n)}}}),[a,n,t])]}var W=n(40818),G=n(97142),Z=n(52099),Q=n(87749);const Y=_?r.useLayoutEffect:r.useEffect;var X=(0,W.U)();(0,G.I)(X),(0,Z.I)(X);var K=0;const J=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(K++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new X.VSheet}),[]);return Y((function(){var r={};return(0,Q.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t};const ee=function(e,t,n){var a=(0,r.useRef)(void 0);a.current&&n(t,a.current)||(a.current=t),(0,r.useEffect)(e,a.current)};function te(e,t){void 0===t&&(t=0);var n=(0,r.useRef)(!1),a=(0,r.useRef)(),o=(0,r.useRef)(e),i=(0,r.useCallback)((function(){return n.current}),[]),l=(0,r.useCallback)((function(){n.current=!1,a.current&&clearTimeout(a.current),a.current=setTimeout((function(){n.current=!0,o.current()}),t)}),[t]),s=(0,r.useCallback)((function(){n.current=null,a.current&&clearTimeout(a.current)}),[]);return(0,r.useEffect)((function(){o.current=e}),[e]),(0,r.useEffect)((function(){return l(),s}),[t]),[i,s,l]}function ne(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var a=te(e,t),o=a[0],i=a[1],l=a[2];return(0,r.useEffect)(l,n),[o,i]}const re=function(e,t){ee(e,t,C)};const ae=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return null==a?[e,o]:[a,o]};const oe=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,a=e.onText,o=e.onUri,i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useCallback)(s,[]),c=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||w)(r,n);else if(t.files&&t.files.length)(e.onFiles||w)(Array.from(t.files),n);else if(n.clipboardData){var a=n.clipboardData.getData("text");(e.onText||w)(a,n)}}}(e)}),[n,a,o]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),u(!0)},t=function(e){e.preventDefault(),u(!0)},n=function(){u(!1)},r=function(){u(!1)},o=function(e){e.preventDefault(),u(!1),c(e.dataTransfer,e)},i=function(e){c(e.clipboardData,e)};return x(document,"dragover",e),x(document,"dragenter",t),x(document,"dragleave",n),x(document,"dragexit",r),x(document,"drop",o),a&&x(document,"paste",i),function(){k(document,"dragover",e),k(document,"dragenter",t),k(document,"dragleave",n),k(document,"dragexit",r),k(document,"drop",o),k(document,"paste",i)}}),(0,d.__spreadArrays)([c],t)),{over:l}};const ie=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,a=e.onUri,o=f(),i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var a=n.getData("text/uri-list");a?(e.onUri||w)(a,r):n.files&&n.files.length?(e.onFiles||w)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||w)(n,r)}))}}(e,o())}),[t,n,a]),c=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(u,s)}),[u,s]);return[c,{over:l}]};const le=function(e){(0,r.useEffect)(e,[])};function se(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ue(e){return(0,r.forwardRef)((function(t,n){var r=se(n);return e(t,r)}))}var ce=_?window:null,de=function(e){return!!e.addEventListener},fe=function(e){return!!e.on};const pe=function(e,t,n,a){void 0===n&&(n=ce),(0,r.useEffect)((function(){if(t&&n)return de(n)?x(n,e,t,a):fe(n)&&n.on(e,t,a),function(){de(n)?k(n,e,t,a):fe(n)&&n.off(e,t,a)}}),[e,t,n,JSON.stringify(a)])};const he=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])};const me=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])};var ge=n(10577),ve=n.n(ge);const be=function(e,t,n){void 0===n&&(n={});var a=n.video,o=n.onClose,i=void 0===o?w:o,l=(0,r.useState)(t),s=l[0],u=l[1];return Y((function(){if(t&&e.current){var n=function(){(null==a?void 0:a.current)&&k(a.current,"webkitendfullscreen",n),i()},r=function(){if(ve().isEnabled){var e=ve().isFullscreen;u(e),e||i()}};if(ve().isEnabled){try{ve().request(e.current),u(!0)}catch(l){i(l),u(!1)}ve().on("change",r)}else a&&a.current&&a.current.webkitEnterFullscreen?(a.current.webkitEnterFullscreen(),x(a.current,"webkitendfullscreen",n),u(!0)):(i(),u(!1));return function(){if(u(!1),ve().isEnabled)try{ve().off("change",r),ve().exit()}catch(o){}else a&&a.current&&a.current.webkitExitFullscreen&&(k(a.current,"webkitendfullscreen",n),a.current.webkitExitFullscreen())}}}),[t,a,e]),s};const ye=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),a=n[0],o=n[1],i=!0,l=function(e){i&&o({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},s=function(e){return i&&o((function(t){return(0,d.__assign)((0,d.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(l,s,e),t=navigator.geolocation.watchPosition(l,s,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),a};const we=function(e){void 0===e&&(e={});var t=U(),n=(0,r.useRef)((0,d.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]};var xe=0,ke={};const _e=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=xe++;if(ke[t])ke[t].listeners[r]=e;else{var a=setInterval((function(){for(var e,n=ke[t].listeners,r=!1,a=0,o=Object.values(n);a<o.length;a++){var i=o[a];try{i()}catch(l){r=!0,e=l}}if(r)throw e}),t);ke[t]={ms:t,timer:a,listeners:(n={},n[r]=e,n)}}return{bucket:ke[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var a in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete ke[t.ms])}(e)}}}),[t])};var Ee=r.useState;const Se=function(e){var t,n,a=Ee(!1),o=a[0],i=a[1];return"function"==typeof e&&(e=e(o)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||w)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||w)(e),i(!1)})}),o]};const Ce=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){return o(!0)},r=function(){return o(!1)};t&&e&&e.current&&(x(e.current,"mouseover",n),x(e.current,"mouseout",r));var a=e.current;return function(){t&&a&&(k(a,"mouseover",n),k(a,"mouseout",r))}}),[t,e]),a};function Te(e,t,n,r){var a,o=!1,i=0;function l(){a&&clearTimeout(a)}function s(){for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];var d=this,f=Date.now()-i;function p(){i=Date.now(),n.apply(d,u)}o||(r&&!a&&p(),l(),void 0===r&&f>e?p():!0!==t&&(a=setTimeout(r?function(){a=void 0}:p,void 0===r?e-f:e)))}return"boolean"!=typeof t&&(r=n,n=t,t=void 0),s.cancel=function(){l(),o=!0},s}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"];const De=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var a=(0,r.useState)(t),o=a[0],i=a[1];return(0,r.useEffect)((function(){for(var t,r=!0,a=o,l=function(e){r&&(a=e,i(e))},s=Te(50,(function(){a&&l(!1),clearTimeout(t),t=setTimeout((function(){return l(!0)}),e)})),u=function(){document.hidden||s()},c=0;c<n.length;c++)x(window,n[c],s);return x(document,"visibilitychange",u),t=setTimeout((function(){return l(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)k(window,n[e],s);k(document,"visibilitychange",u)}}),[e,n]),o};const Pe=function(e,t){var n=(0,r.useState)(null),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"==typeof IntersectionObserver){var n=new IntersectionObserver((function(e){o(e[0])}),t);return n.observe(e.current),function(){o(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),a};const Ne=function(e,t){var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=setInterval((function(){return n.current()}),t||0);return function(){return clearInterval(e)}}}),[t])};const Ie=function(e,t,n,a){void 0===t&&(t=w),void 0===n&&(n={}),void 0===a&&(a=[e]);var o=n.event,i=void 0===o?"keydown":o,l=n.target,s=n.options,u=(0,r.useMemo)((function(){var n,r="function"==typeof(n=e)?n:"string"==typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),a);pe(i,u,l,s)};const Ae=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(_?window.innerWidth:0),n=t[0],a=t[1];(0,r.useEffect)((function(){var e=function(){a(window.innerWidth)};return e(),x(window,"resize",e),function(){k(window,"resize",e)}}));var o=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=o.reduce((function(e,t){var r=t[0],a=t[1];return n>=a?r:e}),o[0][0]);return i}};const Le=function(e){var t=(0,r.useState)([!1,null]),n=t[0],a=t[1];return Ie(e,(function(e){return a([!0,e])}),{event:"keydown"},[n]),Ie(e,(function(e){return a([!1,e])}),{event:"keyup"},[n]),n};const Re=function(e,t,n,r){void 0===r&&(r=Le);var a=r(e),o=a[0],i=a[1];s((function(){!o&&n?n(i):o&&t&&t(i)}),[o])};const je=function(e){var t=(0,r.useRef)(e);return t.current=e,t};const Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};const Fe=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(H(e)),n=U(),a=(0,r.useMemo)((function(){var r={set:function(e){t.current=H(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&a.set((function(t){return t.concat(e)}))},updateAt:function(e,t){a.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){a.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){a.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&a.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?a.updateAt(r,n):a.push(n)},sort:function(e){a.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){a.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){a.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){a.set([])},reset:function(){a.set(H(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,a]};const Be=function(e,t,n){if(!_)return[t,w,w];if(!e)throw new Error("useLocalStorage key may not be falsy");var a=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,o=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?a(o):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return o.current(e)})),l=i[0],s=i[1];(0,r.useLayoutEffect)((function(){return s(o.current(e))}),[e]);var u=(0,r.useCallback)((function(t){try{var r="function"==typeof t?t(l):t;if(void 0===r)return;var o=void 0;o=n?n.raw?"string"==typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),s(a(o))}catch(i){}}),[e,s]),c=(0,r.useCallback)((function(){try{localStorage.removeItem(e),s(void 0)}catch(i){}}),[e,s]);return[l,u,c]};var ze=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),a=new Event(e.toLowerCase());return a.state=t,window.dispatchEvent(a),r}};_&&(ze("pushState"),ze("replaceState"));var $e=function(e){var t=window.history,n=t.state,r=t.length,a=window.location;return{trigger:e,state:n,length:r,hash:a.hash,host:a.host,hostname:a.hostname,href:a.href,origin:a.origin,pathname:a.pathname,port:a.port,protocol:a.protocol,search:a.search}},Ue="function"==typeof Event;const He=_&&Ue?function(){var e=(0,r.useState)($e("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n($e("popstate"))},t=function(){return n($e("pushstate"))},r=function(){return n($e("replacestate"))};return x(window,"popstate",e),x(window,"pushstate",t),x(window,"replacestate",r),function(){k(window,"popstate",e),k(window,"pushstate",t),k(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Ve(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Ve(e.offsetParent):null}function qe(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var We=_&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),Ge=new Map,Ze="object"==typeof document?document:void 0,Qe=!1;const Ye=Ze?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(Ze.body);t=t||n;var a=function(e){var t=Ge.get(e);t&&(1===t.counter?(Ge.delete(e),We?(e.ontouchmove=null,Qe&&(k(document,"touchmove",qe),Qe=!1)):e.style.overflow=t.initialOverflow):Ge.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Ve(t.current);n&&(e?function(e){var t=Ge.get(e);t?Ge.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(Ge.set(e,{counter:1,initialOverflow:e.style.overflow}),We?Qe||(x(document,"touchmove",qe,{passive:!1}),Qe=!0):e.style.overflow="hidden")}(n):a(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Ve(t.current);if(e)return function(){a(e)}}),[])}:function(e,t){void 0===e&&(e=!0)};const Xe=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];le((function(){return console.log.apply(console,(0,d.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),s((function(){console.log.apply(console,(0,d.__spreadArrays)([e+" updated"],t))}))};var Ke=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()};const Je=function(e,t){var n=void 0===t?{}:t,a=n.isPreventDefault,o=void 0===a||a,i=n.delay,l=void 0===i?300:i,s=(0,r.useRef)(),u=(0,r.useRef)(),c=(0,r.useCallback)((function(t){o&&t.target&&(x(t.target,"touchend",Ke,{passive:!1}),u.current=t.target),s.current=setTimeout((function(){return e(t)}),l)}),[e,l,o]),d=(0,r.useCallback)((function(){s.current&&clearTimeout(s.current),o&&u.current&&k(u.current,"touchend",Ke)}),[o]);return{onMouseDown:function(e){return c(e)},onTouchStart:function(e){return c(e)},onMouseUp:d,onMouseLeave:d,onTouchEnd:d}};const et=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{set:function(e,t){a((function(n){var r;return(0,d.__assign)((0,d.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){a(e)},remove:function(e){a((function(t){var n=t,r=e;n[r];return(0,d.__rest)(n,["symbol"==typeof r?r:r+""])}))},reset:function(){return a(e)}}}),[a]),i=(0,d.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},o);return[n,i]};const tt=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!_&&window.matchMedia(e).matches}(e,t)),a=n[0],o=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&o(!!n.matches)};return n.addListener(r),o(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),a};const nt=E&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(w)};return x(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,k(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function rt(e,t){var n=(0,r.useRef)(e),a=(0,r.useState)(t),o=a[0],i=a[1];return[o,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[o])]}const at=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),a=(0,r.useReducer)(n,t),o=a[0],i=a[1],l=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[o,l]};var ot={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16};const it=function(e){void 0===e&&(e=ot);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,o=e.interval;a({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:o})};return x(window,"devicemotion",e),function(){k(window,"devicemotion",e)}}),[]),n};const lt=function(e){le((function(){e()}))};const st=function(e){var t=(0,r.useRef)(e);t.current=e,le((function(){return function(){return t.current()}}))};const ut=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){o(e)}))}),[]);return st((function(){cancelAnimationFrame(t.current)})),[a,i]};const ct=function(e){var t=ut({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,o=n.top,i=n.width,l=n.height,s=r+window.pageXOffset,u=o+window.pageYOffset,c=t.pageX-s,d=t.pageY-u;a({docX:t.pageX,docY:t.pageY,posX:s,posY:u,elX:c,elY:d,elH:l,elW:i})}};return x(document,"mousemove",t),function(){k(document,"mousemove",t)}}),[e]),n};var dt={current:null};const ft=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,a=Ce(e,n),o=ct(n&&!a?dt:e);return r&&(o.elX=Math.max(0,Math.min(o.elX,o.elW)),o.elY=Math.max(0,Math.min(o.elY,o.elH))),o},pt=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return x(window,"wheel",e,!1),function(){return k(window,"wheel",e)}})),t};var ht=E?navigator:void 0,mt=ht&&(ht.connection||ht.mozConnection||ht.webkitConnection);function gt(e){var t=null==ht?void 0:ht.onLine,n=null==e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null==e?void 0:e.since,downlink:null==mt?void 0:mt.downlink,downlinkMax:null==mt?void 0:mt.downlinkMax,effectiveType:null==mt?void 0:mt.effectiveType,rtt:null==mt?void 0:mt.rtt,saveData:null==mt?void 0:mt.saveData,type:null==mt?void 0:mt.type}}function vt(e){var t=(0,r.useState)(null!=e?e:gt),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(){a(gt)};return x(window,"online",e,{passive:!0}),x(window,"offline",e,{passive:!0}),mt&&x(mt,"change",e,{passive:!0}),function(){k(window,"online",e),k(window,"offline",e),mt&&k(mt,"change",e)}}),[]),n}const bt=q;const yt=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return Y((function(){var t=e.subscribe(o);return function(){return t.unsubscribe()}}),[e]),a};var wt={angle:0,type:"landscape-primary"};const xt=function(e){void 0===e&&(e=wt);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var o=r.angle,i=r.type;a({angle:o,type:i})}else void 0!==window.orientation?a({angle:"number"==typeof window.orientation?window.orientation:0,type:""}):a(e)}};return x(window,"orientationchange",r),r(),function(){n=!1,k(window,"orientationchange",r)}}),[]),n};const kt=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return x(document,"mouseout",t),function(){k(document,"mouseout",t)}}}),t)};const _t=function(e){var t=(0,r.useState)(""),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&a((function(){var e;return null!==(e=null==n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){x(n=e,"change",r),r()})).catch(w),function(){n&&k(n,"change",r),t=!1,n=null}}),[e]),n};function Et(e){var t=(0,r.useRef)();return(0,r.useEffect)((function(){t.current=e})),t.current}var St=function(e,t){return e===t};function Ct(e,t){void 0===t&&(t=St);var n=(0,r.useRef)(),a=(0,r.useRef)(e);return l()||t(a.current,e)||(n.current=a.current,a.current=e),n.current}const Tt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])};const Ot=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],a=t[1];return{add:function(e){a((function(t){return(0,d.__spreadArrays)(t,[e])}))},remove:function(){var e;return a((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}};const Dt=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),a=n[0],o=n[1];return Y((function(){var n,r,a,i=function(){var t=Math.min(1,(Date.now()-a)/e);o(t),l()},l=function(){n=requestAnimationFrame(i)},s=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),o(1)}),e),a=Date.now(),l()}),t);return function(){clearTimeout(r),clearTimeout(s),cancelAnimationFrame(n)}}),[e,t]),a};function Pt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),a=(0,r.useRef)(!1),o=(0,r.useRef)(e);o.current=e;var i=(0,r.useCallback)((function(e){a.current&&(o.current(e),n.current=requestAnimationFrame(i))}),[]),l=(0,r.useMemo)((function(){return[function(){a.current&&(a.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){a.current||(a.current=!0,n.current=requestAnimationFrame(i))},function(){return a.current}]}),[]);return(0,r.useEffect)((function(){return t&&l[1](),l[0]}),[]),l}var Nt=function(e,t){return new URLSearchParams(e).get(t)};const It=_?function(e){var t=window.location,n=(0,r.useState)((function(){return Nt(t.search,e)})),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){o(Nt(t.search,e))};return x(window,"popstate",n),x(window,"pushstate",n),x(window,"replacestate",n),function(){k(window,"popstate",n),k(window,"pushstate",n),k(window,"replacestate",n)}}),[]),a}:function(){return null};n(96260);var At=function(e){void 0===e&&(e={});var t=e.disabled,n=je(e),a=(0,r.useState)({isScratching:!1}),o=a[0],i=a[1],l=(0,r.useRef)(o),s=(0,r.useRef)(!1),u=(0,r.useRef)(null),c=(0,r.useState)(null),f=c[0],p=c[1];return(0,r.useEffect)((function(){if(!t&&f){var e,r,a=function(e,t){cancelAnimationFrame(u.current),u.current=requestAnimationFrame((function(){var r=f.getBoundingClientRect(),a=r.left,o=r.top,s=a+window.scrollX,u=o+window.scrollY,c=e-s,p=t-u;i((function(e){var t=(0,d.__assign)((0,d.__assign)({},e),{dx:c-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return l.current=t,(n.current.onScratch||w)(t),t}))}))},o=function(e){a(e.pageX,e.pageY)},c=function(e){a(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){s.current&&(s.current=!1,l.current=(0,d.__assign)((0,d.__assign)({},l.current),{isScratching:!1}),(n.current.onScratchEnd||w)(l.current),i({isScratching:!1}),k(window,"mousemove",o),k(window,"touchmove",c),k(window,"mouseup",e),k(window,"touchend",r))};e=p,r=p;var h=function(t,a){if(s.current){var u=f.getBoundingClientRect(),d=u.left,p=u.top,h=d+window.scrollX,m=p+window.scrollY,g=t-h,v=a-m,b=Date.now(),y={isScratching:!0,start:b,end:b,docX:t,docY:a,x:g,y:v,dx:0,dy:0,elH:f.offsetHeight,elW:f.offsetWidth,elX:h,elY:m};l.current=y,(n.current.onScratchStart||w)(y),i(y),x(window,"mousemove",o),x(window,"touchmove",c),x(window,"mouseup",e),x(window,"touchend",r)}},m=function(e){s.current=!0,h(e.pageX,e.pageY)},g=function(e){s.current=!0,h(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return x(f,"mousedown",m),x(f,"touchstart",g),function(){k(f,"mousedown",m),k(f,"touchstart",g),k(window,"mousemove",o),k(window,"touchmove",c),k(window,"mouseup",e),k(window,"touchend",r),u.current&&cancelAnimationFrame(u.current),u.current=null,s.current=!1,l.current={isScratching:!1},i(l.current)}}}),[f,t,n]),[p,o]};const Lt=At;const Rt=function(e){var t=ut({x:0,y:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&a({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&x(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&k(e.current,"scroll",t)}}),[e]),n};const jt=function(e){var t=(0,r.useState)(!1),n=t[0],a=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){a(!0),clearTimeout(t),t=setTimeout((function(){a(!1)}),150)};return x(e.current,"scroll",n,!1),function(){e.current&&k(e.current,"scroll",n,!1)}}return function(){}}),[e]),n};const Mt=function(e,t,n){if(!_)return[t,function(){}];var a=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!=typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(a){return t}})),o=a[0],i=a[1];return(0,r.useEffect)((function(){try{var t=n?String(o):JSON.stringify(o);sessionStorage.setItem(e,t)}catch(a){}})),[o,i]};var Ft=n(99376),Bt=function(e,t){return e.every((function(e,n){return(0,Ft.D)(e,t[n])}))};const zt=function(e,t){ee(e,t,Bt)};var $t=r.useState,Ut=r.useEffect,Ht=r.useRef;const Vt=function(e,t){var n=void 0===t?{}:t,o=n.width,i=void 0===o?1/0:o,l=n.height,s=void 0===l?1/0:l;if(!_)return["function"==typeof e?e({width:i,height:s}):e,{width:i,height:s}];var u=$t({width:i,height:s}),c=u[0],f=u[1];"function"==typeof e&&(e=e(c));var p=e.props.style||{},h=Ht(null),m=null,g=function(){var e=h.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:s};f(t)},v=function(e){x(e,"resize",g),setTimeout(g,35)};return Ut((function(){var e=h.current;if(e){if(e.contentWindow)m=e.contentWindow,v(m);else{var t=function(){x(e,"load",t),m=e.contentWindow,v(m)};k(e,"load",t)}return function(){m&&m.removeEventListener&&k(m,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(a,(0,d.__spreadArrays)([e,{style:p}],(0,d.__spreadArrays)([r.createElement("iframe",{ref:h,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),c]};const qt=function(e,t){void 0===t&&(t={});var n=f(),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useRef)(0),l=g({isSliding:!1,value:0}),s=l[0],u=l[1];return o.current=s.value,(0,r.useEffect)((function(){if(_){var r=void 0===t.styles||t.styles,l=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var s=function(){!a.current&&n()&&((t.onScrubStart||w)(),a.current=!0,u({isSliding:!0}),m())},c=function(){a.current&&n()&&((t.onScrubStop||w)(o.current),a.current=!1,u({isSliding:!1}),g())},d=function(e){s(),f(e)},f=t.vertical?function(e){return v(e.clientY)}:function(e){return v(e.clientX)},p=function(e){s(),h(e)},h=t.vertical?function(e){return v(e.changedTouches[0].clientY)}:function(e){return v(e.changedTouches[0].clientX)},m=function(){x(document,"mousemove",f),x(document,"mouseup",c),x(document,"touchmove",h),x(document,"touchend",c)},g=function(){k(document,"mousemove",f),k(document,"mouseup",c),k(document,"touchmove",h),k(document,"touchend",c)},v=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var a=e.current.getBoundingClientRect(),o=t.vertical?a.top:a.left,i=t.vertical?a.height:a.width;if(!i)return;var s=(r-o)/i;s>1?s=1:s<0&&(s=0),l&&(s=1-s),u({value:s}),(t.onScrub||w)(s)}}))};return x(e.current,"mousedown",d),x(e.current,"touchstart",p),function(){k(e.current,"mousedown",d),k(e.current,"touchstart",p)}}}),[e,t.vertical]),s};var Wt;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(Wt||(Wt={}));const Gt=function(e,t){var n=(0,r.useRef)(!1),a=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,a=e.name,o=void 0===a?"":a;return{isPlaying:!1,status:Wt[Wt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:o},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),o=a[0],i=a[1],l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!0,status:Wt[Wt.play]})}))}),[]),s=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.pause]})}))}),[]),u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=l,r.onpause=s,r.onresume=l,r.onend=u,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),o};const Zt=function(e){Y((function(){var t=function(t){var n,r,a,o,i;!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&(r=(n=t).keyCode,a=n.metaKey,o=n.ctrlKey,i=n.altKey,!(a||o||i)&&(r>=48&&r<=57||r>=65&&r<=90))&&e(t)};return x(document,"keydown",t),function(){k(document,"keydown",t)}}),[])};function Qt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var a=l(),o=(0,r.useState)(e),i=o[0],s=o[1],u=(0,r.useRef)(null!=n?n:[]),c=(0,r.useRef)(0);return a&&(u.current.length?(u.current[u.current.length-1]!==e&&u.current.push(e),u.current.length>t&&(u.current=u.current.slice(u.current.length-t))):u.current.push(e),c.current=u.current.length&&u.current.length-1),[i,(0,r.useCallback)((function(e){s((function(n){return(e=H(e,n))!==n&&(c.current<u.current.length-1&&(u.current=u.current.slice(0,c.current+1)),c.current=u.current.push(e)-1,u.current.length>t&&(u.current=u.current.slice(u.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:u.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&s((function(){return c.current-=Math.min(e,c.current),u.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==u.current.length-1&&s((function(){return c.current=Math.min(c.current+e,u.current.length-1),u.current[c.current]}))},go:function(e){e!==c.current&&s((function(){return c.current=e<0?Math.max(u.current.length+e,0):Math.min(u.current.length-1,e),u.current[c.current]}))}}}),[i])]}function Yt(e){void 0===e&&(e=[]);var t=f(),n=U(),a=(0,r.useRef)(0);s((function(){e.length<=a.current&&(a.current=e.length-1,n())}),[e.length]);var o=(0,r.useMemo)((function(){return{next:function(){return o.setStateAt(a.current+1)},prev:function(){return o.setStateAt(a.current-1)},setStateAt:function(r){t()&&e.length&&r!==a.current&&(a.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var o=e.length?e.indexOf(r):-1;if(-1===o)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");a.current=o,n()}}}}),[e]);return(0,d.__assign)({state:e[a.current],currentIndex:a.current},o)}const Xt=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useRef)(),l=(0,r.useRef)(null),s=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)l.current=e,s.current=!0;else{o(e);var n=function(){s.current?(s.current=!1,o(l.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),st((function(){i.current&&clearTimeout(i.current)})),a};const Kt=function(e,t,n){void 0===t&&(t=200);var a=(0,r.useState)(null),o=a[0],i=a[1],l=(0,r.useRef)(),s=(0,r.useRef)();return(0,r.useEffect)((function(){if(l.current)s.current=n;else{i(e.apply(void 0,n));var r=function(){s.current?(i(e.apply(void 0,s.current)),s.current=void 0,l.current=setTimeout(r,t)):l.current=void 0};l.current=setTimeout(r,t)}}),n),st((function(){l.current&&clearTimeout(l.current)})),o};function Jt(e){return void 0===e&&(e=0),te(U(),e)}var en={restoreOnUnmount:!1};const tn="undefined"!=typeof document?function(e,t){void 0===t&&(t=en);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){};var nn=n(75534);const rn=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,nn.U[e])(Dt(t,n))};const an=function(){var e=(0,r.useRef)(!1);return le((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,a){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):a(t)}))}))}}),[])};function on(e,t){void 0===t&&(t=[]);var n=Fe(t),r=n[0],a=n[1];return[r,(0,d.__assign)((0,d.__assign)({},a),{upsert:function(t){a.upsert(e,t)}})]}const ln=E&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var a=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),a)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:w;const sn=b("video");function un(e,t,n){void 0===n&&(n=[void 0]);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,s):s(a.current(o.current))}),[s]);return(0,r.useEffect)((function(){u()}),[e]),[l,u]}var cn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof cn.__cache)return cn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return cn.__cache=100-r,document.body.removeChild(t),cn.__cache;document.body.removeChild(t)}};function dn(){var e=(0,r.useState)(cn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(void 0===t){var e=requestAnimationFrame((function(){n(cn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function fn(e,t,n){if(void 0===n&&(n=[void 0]),"object"!=typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,s):s(a.current(o.current))}),[s]);return(0,r.useEffect)((function(){u()}),Object.values(e)),[l,u]}const pn=function(){var e=ut((function(){return{x:_?window.pageXOffset:0,y:_?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),x(window,"scroll",e,{capture:!1,passive:!0}),function(){k(window,"scroll",e)}}),[]),t};const hn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=ut({width:_?window.innerWidth:e,height:_?window.innerHeight:t}),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(_){var e=function(){o({width:window.innerWidth,height:window.innerHeight})};return x(window,"resize",e),function(){k(window,"resize",e)}}}),[]),a};var mn={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const gn=_&&void 0!==window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],a=(0,r.useState)(mn),o=a[0],i=a[1],l=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,o=t.height,l=t.top,s=t.left,u=t.bottom,c=t.right;i({x:n,y:r,width:a,height:o,top:l,left:s,bottom:u,right:c})}}))}),[]);return Y((function(){if(t)return l.observe(t),function(){l.disconnect()}}),[t]),[n,o]}:function(){return[w,mn]};var vn;!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(vn||(vn={}));const bn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),a=n[0],o=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&o([vn.ZOOMING_IN,r]),r<t.prevDiff&&o([vn.ZOOMING_OUT,r])),t.prevDiff=r}},l=function(e){t.evCache.push(e)},s=function(e){u(e),t.evCache.length<2&&(t.prevDiff=-1)},u=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null==e?void 0:e.current)&&(e.current.onpointerdown=l,e.current.onpointermove=i,e.current.onpointerup=s,e.current.onpointercancel=s,e.current.onpointerout=s,e.current.onpointerleave=s)}),[null==e?void 0:e.current]),a?{zoomingState:a[0],pinchState:a[1]}:{zoomingState:null,pinchState:0}};function yn(){return++(0,r.useRef)(0).current}const wn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{add:function(e){return a((function(t){return new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return a((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return a((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return a(e)}}}),[a]),i=(0,d.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},o);return[n,i]};function xn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=H(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],a=e[1];return le((function(){return function(){t.setters=t.setters.filter((function(e){return e!==a}))}})),Y((function(){t.setters.includes(a)||t.setters.push(a)})),[n,t.setState]}}var kn=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],a=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){x(window,"hashchange",a)}),(function(){k(window,"hashchange",a)}));var o=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,o]}},72408:(e,t,n)=>{"use strict";var r=n(27418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},x=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,r)&&!k.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function O(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var P={current:null};function N(){var e=P.current;if(null===e)throw Error(p(321));return e}var I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};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(!E(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)x.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,x=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?x.postMessage(null):(m=!1,g=null)}catch(n){throw x.postMessage(null),n}}else m=!1},n=function(e){g=e,m||(m=!0,x.postMessage(null))},r=function(e,n){v=f((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<S(a,t)))break e;e[r]=t,e[n]=a,n=r}}function _(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>S(i,n))void 0!==s&&0>S(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>S(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],O=1,D=null,P=3,N=!1,I=!1,A=!1;function L(e){for(var t=_(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,k(C,t)}t=_(T)}}function R(e){if(A=!1,L(e),!I)if(null!==_(C))I=!0,n(j);else{var t=_(T);null!==t&&r(R,t.startTime-e)}}function j(e,n){I=!1,A&&(A=!1,a()),N=!0;var o=P;try{for(L(n),D=_(C);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=D.callback;if("function"==typeof i){D.callback=null,P=D.priorityLevel;var l=i(D.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?D.callback=l:D===_(C)&&E(C),L(n)}else E(C);D=_(C)}if(null!==D)var s=!0;else{var u=_(T);null!==u&&r(R,u.startTime-n),s=!1}return s}finally{D=null,P=o,N=!1}}var M=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||N||(I=!0,n(j))},t.unstable_getCurrentPriorityLevel=function(){return P},t.unstable_getFirstCallbackNode=function(){return _(C)},t.unstable_next=function(e){switch(P){case 1:case 2:case 3:var t=3;break;default:t=P}var n=P;P=t;try{return e()}finally{P=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=P;P=e;try{return t()}finally{P=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:O++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,k(T,e),null===_(C)&&e===_(T)&&(A?a():A=!0,r(R,i-l))):(e.sortIndex=s,k(C,e),I||N||(I=!0,n(j))),e},t.unstable_wrapCallback=function(e){var t=P;return function(){var n=P;P=t;try{return e.apply(this,arguments)}finally{P=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},10577:e=>{!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,a=n.length,o={};r<a;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)o[n[0][r]]=e[r];return o}return!1}(),a={change:r.fullscreenchange,error:r.fullscreenerror},o={request:function(e,n){return new Promise(function(a,o){var i=function(){this.off("change",i),a()}.bind(this);this.on("change",i);var l=(e=e||t.documentElement)[r.requestFullscreen](n);l instanceof Promise&&l.then(i).catch(o)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var a=function(){this.off("change",a),e()}.bind(this);this.on("change",a);var o=t[r.exitFullscreen]();o instanceof Promise&&o.then(a).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=a[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=a[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=o:window.screenfull=o):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},96774: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}},11742:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:(e,t)=>{"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},70655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>S,__asyncGenerator:()=>E,__asyncValues:()=>C,__await:()=>_,__awaiter:()=>h,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>A,__classPrivateFieldSet:()=>I,__createBinding:()=>g,__decorate:()=>l,__esDecorate:()=>u,__exportStar:()=>v,__extends:()=>a,__generator:()=>m,__importDefault:()=>P,__importStar:()=>D,__makeTemplateObject:()=>T,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>y,__rest:()=>i,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>x,__values:()=>b});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])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new 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},o.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&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 new 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 h={};for(var m in r)h[m]="access"===m?{}:r[m];for(var m in r.access)h.access[m]=r.access[m];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],h);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&a.push(l)}else(l=i(g))&&("field"===s?a.push(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 h(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(t){o(t)}}function l(e){try{s(r.throw(e))}catch(t){o(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t 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,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&l[0]?r.return:l[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,l[1])).done)return a;switch(r=0,a&&(l=[2&l[0],a.value]),l[0]){case 0:case 1:a=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]<a[3])){i.label=l[1];break}if(6===l[0]&&i.label<a[1]){i.label=a[1],a=l;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(l);break}a[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(s){l=[6,s],r=0}finally{n=a=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var g=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 v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(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 new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(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(l){a={error:l}}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(y(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(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 _(e){return this instanceof _?(this.v=e,this):new _(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=a[e](t)).value instanceof _?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}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 S(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:_(e[r](t)),done:!1}:a?a(t):t}:a}}function C(e){if(!Symbol.asyncIterator)throw new 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){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&g(t,e,n);return O(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new 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 new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new 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 A(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},53250:(e,t,n)=>{"use strict";var r=n(67294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Waku Documentation",url:"https://docs.waku.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en-GB",locales:["en-GB"],path:"i18n",localeConfigs:{}},presets:[["@acid-info/logos-docusaurus-preset",{businessUnit:"Waku",customSiteConfig:!0,docs:{routeBasePath:"/",path:"docs",sidebarPath:"/home/jenkins/workspace/website/docs.waku.org/sidebars.js",editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/",showLastUpdateTime:!0,breadcrumbs:!1},theme:{name:"default",options:{customCss:["/home/jenkins/workspace/website/docs.waku.org/src/css/custom.scss"]}},og:{}}]],staticDirectories:["static","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/common","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/Waku","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-theme/lib/client/static/"],plugins:[["@acid-info/docusaurus-fathom",{siteId:"FUTMI",scriptUrl:"https://fathom.status.im/tracker.js"}],["@acid-info/docusaurus-og",{path:"_og",imageRenderers:{}}]],themeConfig:{docs:{sidebar:{hideable:!1,autoCollapseCategories:!1},versionPersistence:"localStorage"},metadata:[{name:"keywords",content:"waku, web3"},{name:"description",content:"Waku is the communication layer for Web3. Decentralized communication that scales."},{name:"image",content:"theme/image/preview-image.png"}],colorMode:{disableSwitch:!1,defaultMode:"dark",respectPrefersColorScheme:!0},navbar:{title:"",logo:{alt:"Waku",src:"theme/image/logo-black.svg",srcDark:"theme/image/logo.svg",height:26},hideOnScroll:!0,items:[{type:"search",position:"left"},{type:"docSidebar",position:"left",sidebarId:"guides",label:"Guides"},{type:"docSidebar",position:"left",sidebarId:"learn",label:"Learn"},{type:"docSidebar",position:"left",sidebarId:"research",label:"Research"},{href:"https://discord.waku.org",position:"left",label:"Discord"},{href:"https://github.com/waku-org",position:"right",className:"header-github-link",title:"Waku GitHub repository"}]},footer:{logo:{alt:"Waku",src:"theme/image/logo.svg",href:"/",width:22},links:[{title:"Guides",items:[{to:"/guides/nwaku/run-docker-compose",label:"Run a Nwaku Node"},{to:"/guides/js-waku/",label:"JavaScript Waku SDK"}]},{title:"Community",items:[{href:"https://twitter.com/waku_org/",label:"X"},{href:"https://discord.waku.org/",label:"Discord"},{href:"https://github.com/waku-org/",label:"GitHub"},{href:"https://www.youtube.com/@wakuorg",label:"YouTube"},{href:"https://www.linkedin.com/company/waku-org",label:"LinkedIn"},{href:"https://warpcast.com/waku",label:"Farcaster"},{href:"https://t.me/waku_org/",label:"Telegram"}]},{title:"Resources",items:[{href:"https://blog.waku.org/",label:"Blog"},{href:"https://rfc.vac.dev/waku",label:"Waku RFCs"},{href:"https://github.com/waku-org/bounties/",label:"Bounties"},{href:"https://github.com/waku-org/awesome-waku/",label:"Awesome Waku"}]},{title:"Legal",items:[{href:"/terms",label:"Terms of Use"},{href:"/privacy-policy",label:"Privacy Policy"},{href:"/rules-of-engagement",label:"Rules of Engagement"},{href:"/security",label:"Security"}]},{title:"shared:Research",items:[{href:"https://vac.dev",label:"VacP2P"},{href:"https://afaik.institute",label:"AFAIK"}]},{title:"shared:Infrastructure",items:[{href:"https://waku.org/",label:"Waku"},{href:"https://nimbus.team/",label:"Nimbus"},{href:"https://codex.storage",label:"Codex"},{href:"https://nomos.tech",label:"Nomos"}]},{title:"shared:Creative Studio",items:[{href:"https://acid.info",label:"Acid.info"}]},{title:"shared:Movement",items:[{href:"https://logos.co",label:"Logos"}]},{title:"shared:User-facing products",items:[{href:"https://status.im",label:"Status"},{href:"https://keycard.tech",label:"Keycard"}]}],copyright:"Waku",style:"light"},prism:{theme:{plain:{color:"#000000",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},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)"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},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:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},markdown:{mermaid:!0},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",customFields:{businessUnits:"Waku","logos-docusaurus-theme":{customCss:["/home/jenkins/workspace/website/docs.waku.org/src/css/custom.scss"],docs:{},id:"default"}},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],tagline:"",titleDelimiter:"|",noIndex:!1,favicon:"theme/image/favicon.ico"}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/-3c9":{"__comp":"1be78505","__context":{"plugin":"c5bc235e"},"versionMetadata":"935f2afb"},"/-0f1":{"__comp":"17896441","content":"c9ea0dcf"},"/guides/js-waku/-9af":{"__comp":"17896441","content":"488ca57d"},"/guides/js-waku/configure-discovery-dfe":{"__comp":"17896441","content":"4bb5c570"},"/guides/js-waku/debug-waku-dapp-c0d":{"__comp":"17896441","content":"e610d71e"},"/guides/js-waku/faq-1ad":{"__comp":"17896441","content":"a494bfbc"},"/guides/js-waku/light-send-receive-77b":{"__comp":"17896441","content":"c57f3997"},"/guides/js-waku/manage-filter-d72":{"__comp":"17896441","content":"0444839e"},"/guides/js-waku/message-encryption-d96":{"__comp":"17896441","content":"df28445d"},"/guides/js-waku/run-waku-nodejs-30f":{"__comp":"17896441","content":"0f1b9a4a"},"/guides/js-waku/store-retrieve-messages-1c5":{"__comp":"17896441","content":"1f1f54c7"},"/guides/js-waku/use-waku-create-app-76f":{"__comp":"17896441","content":"5277fe18"},"/guides/js-waku/use-waku-react-ed9":{"__comp":"17896441","content":"3b240eda"},"/guides/nwaku/build-source-995":{"__comp":"17896441","content":"f2470003"},"/guides/nwaku/config-methods-c44":{"__comp":"17896441","content":"80ec2a43"},"/guides/nwaku/config-options-def":{"__comp":"17896441","content":"8eff6037"},"/guides/nwaku/configure-discovery-a6b":{"__comp":"17896441","content":"8a655033"},"/guides/nwaku/configure-nwaku-a95":{"__comp":"17896441","content":"60832973"},"/guides/nwaku/faq-ad1":{"__comp":"17896441","content":"20987266"},"/guides/nwaku/find-node-address-786":{"__comp":"17896441","content":"b551b2b5"},"/guides/nwaku/run-docker-d03":{"__comp":"17896441","content":"6e8bfb6f"},"/guides/nwaku/run-docker-compose-ca4":{"__comp":"17896441","content":"7c28fd94"},"/guides/nwaku/run-node-9f1":{"__comp":"17896441","content":"406e0176"},"/guides/nwaku/upgrade-instructions-8ee":{"__comp":"17896441","content":"d3c3b3be"},"/learn/concepts/content-topics-45b":{"__comp":"17896441","content":"c764ec94"},"/learn/concepts/discv5-01f":{"__comp":"17896441","content":"2f51beae"},"/learn/concepts/dns-discovery-c5b":{"__comp":"17896441","content":"a44b8792"},"/learn/concepts/network-domains-5d8":{"__comp":"17896441","content":"b54b2767"},"/learn/concepts/peer-discovery-913":{"__comp":"17896441","content":"6778e957"},"/learn/concepts/peer-exchange-e58":{"__comp":"17896441","content":"80a3009a"},"/learn/concepts/protocols-13a":{"__comp":"17896441","content":"fb5ea66b"},"/learn/concepts/static-peers-9c6":{"__comp":"17896441","content":"e63bb37c"},"/learn/concepts/transports-6fb":{"__comp":"17896441","content":"ef85d46a"},"/learn/faq-74d":{"__comp":"17896441","content":"1067bd84"},"/learn/glossary-cf5":{"__comp":"17896441","content":"4aba8864"},"/learn/research-13c":{"__comp":"17896441","content":"6c6e315a"},"/learn/security-features-72b":{"__comp":"17896441","content":"606377f0"},"/learn/waku-network-f0c":{"__comp":"17896441","content":"b99d0044"},"/learn/waku-vs-libp2p-c45":{"__comp":"17896441","content":"41a4e09e"},"/migrations/js-waku/migration_v0.026_0.027-949":{"__comp":"17896441","content":"63c569e1"},"/privacy-policy-4cd":{"__comp":"17896441","content":"8c5da4da"},"/research/-e8b":{"__comp":"17896441","content":"f7974e9c"},"/research/benchmarks/postgres-adoption-563":{"__comp":"17896441","content":"e168415d"},"/research/benchmarks/test-results-summary-6d0":{"__comp":"17896441","content":"570575fa"},"/research/research-and-studies/capped-bandwidth-ee6":{"__comp":"17896441","content":"97983a7b"},"/research/research-and-studies/incentivisation-d49":{"__comp":"17896441","content":"4e726341"},"/research/research-and-studies/maximum-bandwidth-80a":{"__comp":"17896441","content":"df0a719b"},"/research/research-and-studies/message-propagation-46a":{"__comp":"17896441","content":"3fbcf129"},"/research/research-and-studies/rln-key-benchmarks-5d8":{"__comp":"17896441","content":"1236ce69"},"/rules-of-engagement-0fc":{"__comp":"17896441","content":"d53fc737"},"/security-2fb":{"__comp":"17896441","content":"db32d859"},"/terms-37d":{"__comp":"17896441","content":"500a151f"}}')}},e=>{e.O(0,[532],(()=>{return t=91091,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.cb7f8436.js.LICENSE.txt b/assets/js/main.7ebdad13.js.LICENSE.txt similarity index 100% rename from assets/js/main.cb7f8436.js.LICENSE.txt rename to assets/js/main.7ebdad13.js.LICENSE.txt diff --git a/assets/js/main.cb7f8436.js b/assets/js/main.cb7f8436.js deleted file mode 100644 index 75692da..0000000 --- a/assets/js/main.cb7f8436.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! For license information please see main.cb7f8436.js.LICENSE.txt */ -(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[179],{31665:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(67294),a=n(73935),o=n(70917);function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const l=i(r);var s=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),u="-ms-",c="-moz-",d="-webkit-",f="comm",p="rule",h="decl",m="@keyframes",g=Math.abs,v=String.fromCharCode,b=Object.assign;function y(e){return e.trim()}function w(e,t,n){return e.replace(t,n)}function x(e,t){return e.indexOf(t)}function k(e,t){return 0|e.charCodeAt(t)}function _(e,t,n){return e.slice(t,n)}function E(e){return e.length}function S(e){return e.length}function C(e,t){return t.push(e),e}var T=1,O=1,D=0,P=0,N=0,I="";function A(e,t,n,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:T,column:O,length:i,return:""}}function L(e,t){return b(A("",null,null,"",null,null,0),e,{length:-e.length},t)}function R(){return N=P<D?k(I,P++):0,O++,10===N&&(O=1,T++),N}function j(){return k(I,P)}function M(){return P}function F(e,t){return _(I,e,t)}function B(e){switch(e){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 z(e){return T=O=1,D=E(I=e),P=0,[]}function $(e){return I="",e}function U(e){return y(F(P-1,q(91===e?e+2:40===e?e+1:e)))}function H(e){for(;(N=j())&&N<33;)R();return B(e)>2||B(N)>3?"":" "}function V(e,t){for(;--t&&R()&&!(N<48||N>102||N>57&&N<65||N>70&&N<97););return F(e,M()+(t<6&&32==j()&&32==R()))}function q(e){for(;R();)switch(N){case e:return P;case 34:case 39:34!==e&&39!==e&&q(N);break;case 40:41===e&&q(e);break;case 92:R()}return P}function W(e,t){for(;R()&&e+N!==57&&(e+N!==84||47!==j()););return"/*"+F(t,P-1)+"*"+v(47===e?e:R())}function G(e){for(;!B(j());)R();return F(e,P)}function Z(e){return $(Q("",null,null,null,[""],e=z(e),0,[0],e))}function Q(e,t,n,r,a,o,i,l,s){for(var u=0,c=0,d=i,f=0,p=0,h=0,m=1,g=1,b=1,y=0,_="",S=a,D=o,A=r,L=_;g;)switch(h=y,y=R()){case 40:if(108!=h&&58==k(L,d-1)){-1!=x(L+=w(U(y),"&","&\f"),"&\f")&&(b=-1);break}case 34:case 39:case 91:L+=U(y);break;case 9:case 10:case 13:case 32:L+=H(h);break;case 92:L+=V(M()-1,7);continue;case 47:switch(j()){case 42:case 47:C(X(W(R(),M()),t,n),s);break;default:L+="/"}break;case 123*m:l[u++]=E(L)*b;case 125*m:case 59:case 0:switch(y){case 0:case 125:g=0;case 59+c:p>0&&E(L)-d&&C(p>32?K(L+";",r,n,d-1):K(w(L," ","")+";",r,n,d-2),s);break;case 59:L+=";";default:if(C(A=Y(L,t,n,u,c,a,l,_,S=[],D=[],d),o),123===y)if(0===c)Q(L,t,A,A,S,o,d,l,D);else switch(99===f&&110===k(L,3)?100:f){case 100:case 109:case 115:Q(e,A,A,r&&C(Y(e,A,A,0,0,a,l,_,a,S=[],d),D),a,D,d,l,r?S:D);break;default:Q(L,A,A,A,[""],D,0,l,D)}}u=c=p=0,m=b=1,_=L="",d=i;break;case 58:d=1+E(L),p=h;default:if(m<1)if(123==y)--m;else if(125==y&&0==m++&&125==(N=P>0?k(I,--P):0,O--,10===N&&(O=1,T--),N))continue;switch(L+=v(y),y*m){case 38:b=c>0?1:(L+="\f",-1);break;case 44:l[u++]=(E(L)-1)*b,b=1;break;case 64:45===j()&&(L+=U(R())),f=j(),c=d=E(_=L+=G(M())),y++;break;case 45:45===h&&2==E(L)&&(m=0)}}return o}function Y(e,t,n,r,a,o,i,l,s,u,c){for(var d=a-1,f=0===a?o:[""],h=S(f),m=0,v=0,b=0;m<r;++m)for(var x=0,k=_(e,d+1,d=g(v=i[m])),E=e;x<h;++x)(E=y(v>0?f[x]+" "+k:w(k,/&\f/g,f[x])))&&(s[b++]=E);return A(e,t,n,0===a?p:l,s,u,c)}function X(e,t,n){return A(e,t,n,f,v(N),_(e,2,-2),0)}function K(e,t,n,r){return A(e,t,n,h,_(e,0,r),_(e,r+1,-1),r)}function J(e,t){for(var n="",r=S(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function ee(e,t,n,r){switch(e.type){case"@import":case h:return e.return=e.return||e.value;case f:return"";case m:return e.return=e.value+"{"+J(e.children,r)+"}";case p:e.value=e.props.join(",")}return E(n=J(e.children,r))?e.return=e.value+"{"+n+"}":""}function te(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ne=function(e,t,n){for(var r=0,a=0;r=a,a=j(),38===r&&12===a&&(t[n]=1),!B(a);)R();return F(e,P)},re=function(e,t){return $(function(e,t){var n=-1,r=44;do{switch(B(r)){case 0:38===r&&12===j()&&(t[n]=1),e[n]+=ne(P-1,t,n);break;case 2:e[n]+=U(r);break;case 4:if(44===r){e[++n]=58===j()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=v(r)}}while(r=R());return e}(z(e),t))},ae=new WeakMap,oe=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ae.get(n))&&!r){ae.set(e,!0);for(var a=[],o=re(t,a),i=n.props,l=0,s=0;l<o.length;l++)for(var u=0;u<i.length;u++,s++)e.props[s]=a[l]?o[l].replace(/&\f/g,i[u]):i[u]+" "+o[l]}}},ie=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function le(e,t){switch(function(e,t){return 45^k(e,0)?(((t<<2^k(e,0))<<2^k(e,1))<<2^k(e,2))<<2^k(e,3):0}(e,t)){case 5103:return d+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return d+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return d+e+c+e+u+e+e;case 6828:case 4268:return d+e+u+e+e;case 6165:return d+e+u+"flex-"+e+e;case 5187:return d+e+w(e,/(\w+).+(:[^]+)/,d+"box-$1$2"+u+"flex-$1$2")+e;case 5443:return d+e+u+"flex-item-"+w(e,/flex-|-self/,"")+e;case 4675:return d+e+u+"flex-line-pack"+w(e,/align-content|flex-|-self/,"")+e;case 5548:return d+e+u+w(e,"shrink","negative")+e;case 5292:return d+e+u+w(e,"basis","preferred-size")+e;case 6060:return d+"box-"+w(e,"-grow","")+d+e+u+w(e,"grow","positive")+e;case 4554:return d+w(e,/([^-])(transform)/g,"$1"+d+"$2")+e;case 6187:return w(w(w(e,/(zoom-|grab)/,d+"$1"),/(image-set)/,d+"$1"),e,"")+e;case 5495:case 3959:return w(e,/(image-set\([^]*)/,d+"$1$`$1");case 4968:return w(w(e,/(.+:)(flex-)?(.*)/,d+"box-pack:$3"+u+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+d+e+e;case 4095:case 3583:case 4068:case 2532:return w(e,/(.+)-inline(.+)/,d+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(E(e)-1-t>6)switch(k(e,t+1)){case 109:if(45!==k(e,t+4))break;case 102:return w(e,/(.+:)(.+)-([^]+)/,"$1"+d+"$2-$3$1"+c+(108==k(e,t+3)?"$3":"$2-$3"))+e;case 115:return~x(e,"stretch")?le(w(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==k(e,t+1))break;case 6444:switch(k(e,E(e)-3-(~x(e,"!important")&&10))){case 107:return w(e,":",":"+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+d+(45===k(e,14)?"inline-":"")+"box$3$1"+d+"$2$3$1"+u+"$2box$3")+e}break;case 5936:switch(k(e,t+11)){case 114:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return d+e+u+e+e}return e}var se,ue=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:e.return=le(e.value,e.length);break;case m:return J([L(e,{value:w(e.value,"@","@"+d)})],r);case p:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([L(e,{props:[w(t,/:(read-\w+)/,":"+c+"$1")]})],r);case"::placeholder":return J([L(e,{props:[w(t,/:(plac\w+)/,":"+d+"input-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,":"+c+"$1")]}),L(e,{props:[w(t,/:(plac\w+)/,u+"input-$1")]})],r)}return""}))}}],ce=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||ue;var a,o,i={},l=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)i[t[n]]=!0;l.push(e)}));var u,c,d,f,p=[ee,(f=function(e){u.insert(e)},function(e){e.root||(e=e.return)&&f(e)})],h=(c=[oe,ie].concat(r,p),d=S(c),function(e,t,n,r){for(var a="",o=0;o<d;o++)a+=c[o](e,t,n,r)||"";return a});o=function(e,t,n,r){u=n,J(Z(e?e+"{"+t.styles+"}":t.styles),h),r&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new s({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:o};return m.sheet.hydrate(l),m},de="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},fe={},pe={};({get exports(){return fe},set exports(e){fe=e}}).exports=function(){if(se)return pe;se=1;var e="function"==typeof Symbol&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,r=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,o=e?Symbol.for("react.profiler"):60114,i=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,s=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,c=e?Symbol.for("react.forward_ref"):60112,d=e?Symbol.for("react.suspense"):60113,f=e?Symbol.for("react.suspense_list"):60120,p=e?Symbol.for("react.memo"):60115,h=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,g=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function y(e){if("object"==typeof e&&null!==e){var f=e.$$typeof;switch(f){case t:switch(e=e.type){case s:case u:case r:case o:case a:case d:return e;default:switch(e=e&&e.$$typeof){case l:case c:case h:case p:case i:return e;default:return f}}case n:return f}}}function w(e){return y(e)===u}return pe.AsyncMode=s,pe.ConcurrentMode=u,pe.ContextConsumer=l,pe.ContextProvider=i,pe.Element=t,pe.ForwardRef=c,pe.Fragment=r,pe.Lazy=h,pe.Memo=p,pe.Portal=n,pe.Profiler=o,pe.StrictMode=a,pe.Suspense=d,pe.isAsyncMode=function(e){return w(e)||y(e)===s},pe.isConcurrentMode=w,pe.isContextConsumer=function(e){return y(e)===l},pe.isContextProvider=function(e){return y(e)===i},pe.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===t},pe.isForwardRef=function(e){return y(e)===c},pe.isFragment=function(e){return y(e)===r},pe.isLazy=function(e){return y(e)===h},pe.isMemo=function(e){return y(e)===p},pe.isPortal=function(e){return y(e)===n},pe.isProfiler=function(e){return y(e)===o},pe.isStrictMode=function(e){return y(e)===a},pe.isSuspense=function(e){return y(e)===d},pe.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===u||e===o||e===a||e===d||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===p||e.$$typeof===i||e.$$typeof===l||e.$$typeof===c||e.$$typeof===g||e.$$typeof===v||e.$$typeof===b||e.$$typeof===m)},pe.typeOf=y,pe}();var he=fe,me={};me[he.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},me[he.Memo]={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0};var ge=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)};var ve={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},be=/[A-Z]|^ms/g,ye=/_EMO_([^_]+?)_([^]*?)_EMO_/g,we=function(e){return 45===e.charCodeAt(1)},xe=function(e){return null!=e&&"boolean"!=typeof e},ke=te((function(e){return we(e)?e:e.replace(be,"-$&").toLowerCase()})),_e=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ye,(function(e,t,n){return Se={name:t,styles:n,next:Se},t}))}return 1===ve[e]||we(e)||"number"!=typeof t||0===t?t:t+"px"};function Ee(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return Se={name:n.name,styles:n.styles,next:Se},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)Se={name:r.name,styles:r.styles,next:Se},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=Ee(e,t,n[a])+";";else for(var o in n){var i=n[o];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=o+"{"+t[i]+"}":xe(i)&&(r+=ke(o)+":"+_e(o,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var l=Ee(e,t,i);switch(o){case"animation":case"animationName":r+=ke(o)+":"+l+";";break;default:r+=o+"{"+l+"}"}}else for(var s=0;s<i.length;s++)xe(i[s])&&(r+=ke(o)+":"+_e(o,i[s])+";")}return r}(e,t,n);case"function":if(void 0!==e){var a=Se,o=n(e);return Se=a,Ee(e,t,o)}}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var Se,Ce=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var Te=!!l.useInsertionEffect&&l.useInsertionEffect||function(e){return e()},Oe={}.hasOwnProperty,De=r.createContext("undefined"!=typeof HTMLElement?ce({key:"css"}):null);De.Provider;var Pe=function(e){return r.forwardRef((function(t,n){var a=r.useContext(De);return e(t,a,n)}))},Ne=r.createContext({});var Ie="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Ae=function(e,t){var n={};for(var r in t)Oe.call(t,r)&&(n[r]=t[r]);return n[Ie]=e,n},Le=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ge(t,n,r),Te((function(){return function(e,t,n){ge(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}(t,n,r)})),null},Re=Pe((function(e,t,n){var a=e.css;"string"==typeof a&&void 0!==t.registered[a]&&(a=t.registered[a]);var o=e[Ie],i=[a],l="";"string"==typeof e.className?l=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var s=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,a="";Se=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=Ee(n,t,o)):a+=o[0];for(var i=1;i<e.length;i++)a+=Ee(n,t,e[i]),r&&(a+=o[i]);Ce.lastIndex=0;for(var l,s="";null!==(l=Ce.exec(a));)s+="-"+l[1];return{name:function(e){for(var t,n=0,r=0,a=e.length;a>=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+s,styles:a,next:Se}}(i,void 0,r.useContext(Ne));l+=t.key+"-"+s.name;var u={};for(var c in e)Oe.call(e,c)&&"css"!==c&&c!==Ie&&(u[c]=e[c]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(Le,{cache:t,serialized:s,isStringTag:"string"==typeof o}),r.createElement(o,u))}));var je,Me,Fe,Be={},ze={};function $e(){if(Me)return je;Me=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;return je=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(r,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(r),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))t.call(o,u)&&(l[u]=o[u]);if(e){i=e(o);for(var c=0;c<i.length;c++)n.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l},je}!function(e){e.exports=function(){if(Fe)return ze;Fe=1,$e();var e=r,t=60103;if(ze.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var n=Symbol.for;t=n("react.element"),ze.Fragment=n("react.fragment")}var a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function l(e,n,r){var l,s={},u=null,c=null;for(l in void 0!==r&&(u=""+r),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)o.call(n,l)&&!i.hasOwnProperty(l)&&(s[l]=n[l]);if(e&&e.defaultProps)for(l in n=e.defaultProps)void 0===s[l]&&(s[l]=n[l]);return{$$typeof:t,type:e,key:u,ref:c,props:s,_owner:a.current}}return ze.jsx=l,ze.jsxs=l,ze}()}({get exports(){return Be},set exports(e){Be=e}});const Ue=Be.Fragment,He=Be.jsx,Ve=Be.jsxs;var qe=Ue;function We(e,t,n){return Oe.call(t,"css")?He(Re,Ae(e,t),n):He(e,t,n)}function Ge(e,t,n){return Oe.call(t,"css")?Ve(Re,Ae(e,t),n):Ve(e,t,n)}function Ze(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=Ze(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function Qe(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=Ze(e))&&(r&&(r+=" "),r+=t);return r}const Ye=e=>{const[t,n]=r.useState(e.value??e.defaultValue),a=void 0===e.value,o=void 0!==t&&("string"==typeof t?t.length>0:t.toString().length>0);return r.useEffect((()=>{!a&&n(e.value)}),[a,e.value]),{value:t,filled:o,onChange:t=>{if(a){const e=t.target.type,r=t.target["checkbox"===e||"radio"===e?"checked":"value"];n(r)}e.onChange&&e.onChange(t)},setValue:t=>{var n,r,a,o;const i=(null==(n=null==e?void 0:e.ref)?void 0:n.current)??("function"==typeof e.getInput&&e.getInput());if(!i)return;const l=new Event("input",{bubbles:!0});null==(o=null==(a=null==(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))?void 0:r.set)?void 0:a.call)||o.call(a,i,t),i.dispatchEvent(l)}}};var Xe=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a};var Ke=function(){this.__data__=[],this.size=0};var Je=function(e,t){return e===t||e!=e&&t!=t},et=Je;var tt=function(e,t){for(var n=e.length;n--;)if(et(e[n][0],t))return n;return-1},nt=tt,rt=Array.prototype.splice;var at=tt;var ot=tt;var it=tt;var lt=Ke,st=function(e){var t=this.__data__,n=nt(t,e);return!(n<0)&&(n==t.length-1?t.pop():rt.call(t,n,1),--this.size,!0)},ut=function(e){var t=this.__data__,n=at(t,e);return n<0?void 0:t[n][1]},ct=function(e){return ot(this.__data__,e)>-1},dt=function(e,t){var n=this.__data__,r=it(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ft(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ft.prototype.clear=lt,ft.prototype.delete=st,ft.prototype.get=ut,ft.prototype.has=ct,ft.prototype.set=dt;var pt=ft,ht=pt;var mt=function(){this.__data__=new ht,this.size=0};var gt=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};var vt=function(e){return this.__data__.get(e)};var bt=function(e){return this.__data__.has(e)},yt="object"==typeof de&&de&&de.Object===Object&&de,wt=yt,xt="object"==typeof self&&self&&self.Object===Object&&self,kt=wt||xt||Function("return this")(),_t=kt.Symbol,Et=_t,St=Object.prototype,Ct=St.hasOwnProperty,Tt=St.toString,Ot=Et?Et.toStringTag:void 0;var Dt=function(e){var t=Ct.call(e,Ot),n=e[Ot];try{e[Ot]=void 0;var r=!0}catch(o){}var a=Tt.call(e);return r&&(t?e[Ot]=n:delete e[Ot]),a},Pt=Object.prototype.toString;var Nt=Dt,It=function(e){return Pt.call(e)},At=_t?_t.toStringTag:void 0;var Lt=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":At&&At in Object(e)?Nt(e):It(e)};var Rt=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},jt=Lt,Mt=Rt;var Ft,Bt=function(e){if(!Mt(e))return!1;var t=jt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},zt=kt["__core-js_shared__"],$t=(Ft=/[^.]+$/.exec(zt&&zt.keys&&zt.keys.IE_PROTO||""))?"Symbol(src)_1."+Ft:"";var Ut=function(e){return!!$t&&$t in e},Ht=Function.prototype.toString;var Vt=function(e){if(null!=e){try{return Ht.call(e)}catch(t){}try{return e+""}catch(t){}}return""},qt=Bt,Wt=Ut,Gt=Rt,Zt=Vt,Qt=/^\[object .+?Constructor\]$/,Yt=Function.prototype,Xt=Object.prototype,Kt=Yt.toString,Jt=Xt.hasOwnProperty,en=RegExp("^"+Kt.call(Jt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var tn=function(e){return!(!Gt(e)||Wt(e))&&(qt(e)?en:Qt).test(Zt(e))},nn=function(e,t){return null==e?void 0:e[t]};var rn=function(e,t){var n=nn(e,t);return tn(n)?n:void 0},an=rn(kt,"Map"),on=rn(Object,"create"),ln=on;var sn=function(){this.__data__=ln?ln(null):{},this.size=0};var un=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},cn=on,dn=Object.prototype.hasOwnProperty;var fn=function(e){var t=this.__data__;if(cn){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return dn.call(t,e)?t[e]:void 0},pn=on,hn=Object.prototype.hasOwnProperty;var mn=on;var gn=sn,vn=un,bn=fn,yn=function(e){var t=this.__data__;return pn?void 0!==t[e]:hn.call(t,e)},wn=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=mn&&void 0===t?"__lodash_hash_undefined__":t,this};function xn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xn.prototype.clear=gn,xn.prototype.delete=vn,xn.prototype.get=bn,xn.prototype.has=yn,xn.prototype.set=wn;var kn=xn,_n=pt,En=an;var Sn=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Cn=function(e,t){var n=e.__data__;return Sn(t)?n["string"==typeof t?"string":"hash"]:n.map},Tn=Cn;var On=Cn;var Dn=Cn;var Pn=Cn;var Nn=function(){this.size=0,this.__data__={hash:new kn,map:new(En||_n),string:new kn}},In=function(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t},An=function(e){return On(this,e).get(e)},Ln=function(e){return Dn(this,e).has(e)},Rn=function(e,t){var n=Pn(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function jn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}jn.prototype.clear=Nn,jn.prototype.delete=In,jn.prototype.get=An,jn.prototype.has=Ln,jn.prototype.set=Rn;var Mn=jn,Fn=pt,Bn=an,zn=Mn;var $n=pt,Un=mt,Hn=gt,Vn=vt,qn=bt,Wn=function(e,t){var n=this.__data__;if(n instanceof Fn){var r=n.__data__;if(!Bn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new zn(r)}return n.set(e,t),this.size=n.size,this};function Gn(e){var t=this.__data__=new $n(e);this.size=t.size}Gn.prototype.clear=Un,Gn.prototype.delete=Hn,Gn.prototype.get=Vn,Gn.prototype.has=qn,Gn.prototype.set=Wn;var Zn=Gn;var Qn=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e},Yn=rn,Xn=function(){try{var e=Yn(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),Kn=Xn;var Jn=function(e,t,n){"__proto__"==t&&Kn?Kn(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},er=Jn,tr=Je,nr=Object.prototype.hasOwnProperty;var rr=function(e,t,n){var r=e[t];nr.call(e,t)&&tr(r,n)&&(void 0!==n||t in e)||er(e,t,n)},ar=rr,or=Jn;var ir=function(e,t,n,r){var a=!n;n||(n={});for(var o=-1,i=t.length;++o<i;){var l=t[o],s=r?r(n[l],e[l],l,n,e):void 0;void 0===s&&(s=e[l]),a?or(n,l,s):ar(n,l,s)}return n};var lr=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r};var sr=function(e){return null!=e&&"object"==typeof e},ur=Lt,cr=sr;var dr=function(e){return cr(e)&&"[object Arguments]"==ur(e)},fr=sr,pr=Object.prototype,hr=pr.hasOwnProperty,mr=pr.propertyIsEnumerable,gr=dr(function(){return arguments}())?dr:function(e){return fr(e)&&hr.call(e,"callee")&&!mr.call(e,"callee")},vr=Array.isArray,br={};var yr=function(){return!1};!function(e,t){var n=kt,r=yr,a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a?n.Buffer:void 0,l=(i?i.isBuffer:void 0)||r;e.exports=l}({get exports(){return br},set exports(e){br=e}},br);var wr=/^(?:0|[1-9]\d*)$/;var xr=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&wr.test(e))&&e>-1&&e%1==0&&e<t};var kr=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},_r=Lt,Er=kr,Sr=sr,Cr={};Cr["[object Float32Array]"]=Cr["[object Float64Array]"]=Cr["[object Int8Array]"]=Cr["[object Int16Array]"]=Cr["[object Int32Array]"]=Cr["[object Uint8Array]"]=Cr["[object Uint8ClampedArray]"]=Cr["[object Uint16Array]"]=Cr["[object Uint32Array]"]=!0,Cr["[object Arguments]"]=Cr["[object Array]"]=Cr["[object ArrayBuffer]"]=Cr["[object Boolean]"]=Cr["[object DataView]"]=Cr["[object Date]"]=Cr["[object Error]"]=Cr["[object Function]"]=Cr["[object Map]"]=Cr["[object Number]"]=Cr["[object Object]"]=Cr["[object RegExp]"]=Cr["[object Set]"]=Cr["[object String]"]=Cr["[object WeakMap]"]=!1;var Tr=function(e){return Sr(e)&&Er(e.length)&&!!Cr[_r(e)]};var Or=function(e){return function(t){return e(t)}},Dr={};!function(e,t){var n=yt,r=t&&!t.nodeType&&t,a=r&&e&&!e.nodeType&&e,o=a&&a.exports===r&&n.process,i=function(){try{var e=a&&a.require&&a.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(t){}}();e.exports=i}({get exports(){return Dr},set exports(e){Dr=e}},Dr);var Pr=Tr,Nr=Or,Ir=Dr&&Dr.isTypedArray,Ar=Ir?Nr(Ir):Pr,Lr=lr,Rr=gr,jr=vr,Mr=br,Fr=xr,Br=Ar,zr=Object.prototype.hasOwnProperty;var $r=function(e,t){var n=jr(e),r=!n&&Rr(e),a=!n&&!r&&Mr(e),o=!n&&!r&&!a&&Br(e),i=n||r||a||o,l=i?Lr(e.length,String):[],s=l.length;for(var u in e)!t&&!zr.call(e,u)||i&&("length"==u||a&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Fr(u,s))||l.push(u);return l},Ur=Object.prototype;var Hr=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ur)};var Vr=function(e,t){return function(n){return e(t(n))}},qr=Vr(Object.keys,Object),Wr=Hr,Gr=qr,Zr=Object.prototype.hasOwnProperty;var Qr=Bt,Yr=kr;var Xr=function(e){return null!=e&&Yr(e.length)&&!Qr(e)},Kr=$r,Jr=function(e){if(!Wr(e))return Gr(e);var t=[];for(var n in Object(e))Zr.call(e,n)&&"constructor"!=n&&t.push(n);return t},ea=Xr;var ta=function(e){return ea(e)?Kr(e):Jr(e)},na=ir,ra=ta;var aa=function(e,t){return e&&na(t,ra(t),e)};var oa=Rt,ia=Hr,la=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},sa=Object.prototype.hasOwnProperty;var ua=$r,ca=function(e){if(!oa(e))return la(e);var t=ia(e),n=[];for(var r in e)("constructor"!=r||!t&&sa.call(e,r))&&n.push(r);return n},da=Xr;var fa=function(e){return da(e)?ua(e,!0):ca(e)},pa=ir,ha=fa;var ma=function(e,t){return e&&pa(t,ha(t),e)},ga={};!function(e,t){var n=kt,r=t&&!t.nodeType&&t,a=r&&e&&!e.nodeType&&e,o=a&&a.exports===r?n.Buffer:void 0,i=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=i?i(n):new e.constructor(n);return e.copy(r),r}}({get exports(){return ga},set exports(e){ga=e}},ga);var va=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t};var ba=function(){return[]},ya=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o},wa=ba,xa=Object.prototype.propertyIsEnumerable,ka=Object.getOwnPropertySymbols,_a=ka?function(e){return null==e?[]:(e=Object(e),ya(ka(e),(function(t){return xa.call(e,t)})))}:wa,Ea=ir,Sa=_a;var Ca=function(e,t){return Ea(e,Sa(e),t)};var Ta=function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e},Oa=Vr(Object.getPrototypeOf,Object),Da=Ta,Pa=Oa,Na=_a,Ia=ba,Aa=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)Da(t,Na(e)),e=Pa(e);return t}:Ia,La=ir,Ra=Aa;var ja=function(e,t){return La(e,Ra(e),t)},Ma=Ta,Fa=vr;var Ba=function(e,t,n){var r=t(e);return Fa(e)?r:Ma(r,n(e))},za=Ba,$a=_a,Ua=ta;var Ha=function(e){return za(e,Ua,$a)},Va=Ba,qa=Aa,Wa=fa;var Ga=function(e){return Va(e,Wa,qa)},Za=rn(kt,"DataView"),Qa=an,Ya=rn(kt,"Promise"),Xa=rn(kt,"Set"),Ka=rn(kt,"WeakMap"),Ja=Lt,eo=Vt,to="[object Map]",no="[object Promise]",ro="[object Set]",ao="[object WeakMap]",oo="[object DataView]",io=eo(Za),lo=eo(Qa),so=eo(Ya),uo=eo(Xa),co=eo(Ka),fo=Ja;(Za&&fo(new Za(new ArrayBuffer(1)))!=oo||Qa&&fo(new Qa)!=to||Ya&&fo(Ya.resolve())!=no||Xa&&fo(new Xa)!=ro||Ka&&fo(new Ka)!=ao)&&(fo=function(e){var t=Ja(e),n="[object Object]"==t?e.constructor:void 0,r=n?eo(n):"";if(r)switch(r){case io:return oo;case lo:return to;case so:return no;case uo:return ro;case co:return ao}return t});var po=fo,ho=Object.prototype.hasOwnProperty;var mo=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ho.call(e,"index")&&(n.index=e.index,n.input=e.input),n},go=kt.Uint8Array;var vo=function(e){var t=new e.constructor(e.byteLength);return new go(t).set(new go(e)),t},bo=vo;var yo=function(e,t){var n=t?bo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)},wo=/\w*$/;var xo=function(e){var t=new e.constructor(e.source,wo.exec(e));return t.lastIndex=e.lastIndex,t},ko=_t?_t.prototype:void 0,_o=ko?ko.valueOf:void 0;var Eo=vo;var So=vo,Co=yo,To=xo,Oo=function(e){return _o?Object(_o.call(e)):{}},Do=function(e,t){var n=t?Eo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)};var Po=function(e,t,n){var r=e.constructor;switch(t){case"[object ArrayBuffer]":return So(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return Co(e,n);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 Do(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return To(e);case"[object Symbol]":return Oo(e)}},No=Rt,Io=Object.create,Ao=function(){function e(){}return function(t){if(!No(t))return{};if(Io)return Io(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),Lo=Oa,Ro=Hr;var jo=function(e){return"function"!=typeof e.constructor||Ro(e)?{}:Ao(Lo(e))},Mo=po,Fo=sr;var Bo=function(e){return Fo(e)&&"[object Map]"==Mo(e)},zo=Or,$o=Dr&&Dr.isMap,Uo=$o?zo($o):Bo,Ho=po,Vo=sr;var qo=function(e){return Vo(e)&&"[object Set]"==Ho(e)},Wo=Or,Go=Dr&&Dr.isSet,Zo=Go?Wo(Go):qo,Qo=Zn,Yo=Qn,Xo=rr,Ko=aa,Jo=ma,ei=ga,ti=va,ni=Ca,ri=ja,ai=Ha,oi=Ga,ii=po,li=mo,si=Po,ui=jo,ci=vr,di=br,fi=Uo,pi=Rt,hi=Zo,mi=ta,gi=fa,vi="[object Arguments]",bi="[object Function]",yi="[object Object]",wi={};wi[vi]=wi["[object Array]"]=wi["[object ArrayBuffer]"]=wi["[object DataView]"]=wi["[object Boolean]"]=wi["[object Date]"]=wi["[object Float32Array]"]=wi["[object Float64Array]"]=wi["[object Int8Array]"]=wi["[object Int16Array]"]=wi["[object Int32Array]"]=wi["[object Map]"]=wi["[object Number]"]=wi[yi]=wi["[object RegExp]"]=wi["[object Set]"]=wi["[object String]"]=wi["[object Symbol]"]=wi["[object Uint8Array]"]=wi["[object Uint8ClampedArray]"]=wi["[object Uint16Array]"]=wi["[object Uint32Array]"]=!0,wi["[object Error]"]=wi[bi]=wi["[object WeakMap]"]=!1;var xi=function e(t,n,r,a,o,i){var l,s=1&n,u=2&n,c=4&n;if(r&&(l=o?r(t,a,o,i):r(t)),void 0!==l)return l;if(!pi(t))return t;var d=ci(t);if(d){if(l=li(t),!s)return ti(t,l)}else{var f=ii(t),p=f==bi||"[object GeneratorFunction]"==f;if(di(t))return ei(t,s);if(f==yi||f==vi||p&&!o){if(l=u||p?{}:ui(t),!s)return u?ri(t,Jo(l,t)):ni(t,Ko(l,t))}else{if(!wi[f])return o?t:{};l=si(t,f,s)}}i||(i=new Qo);var h=i.get(t);if(h)return h;i.set(t,l),hi(t)?t.forEach((function(a){l.add(e(a,n,r,a,t,i))})):fi(t)&&t.forEach((function(a,o){l.set(o,e(a,n,r,o,t,i))}));var m=d?void 0:(c?u?oi:ai:u?gi:mi)(t);return Yo(m||t,(function(a,o){m&&(a=t[o=a]),Xo(l,o,e(a,n,r,o,t,i))})),l},ki=Lt,_i=sr;var Ei=function(e){return"symbol"==typeof e||_i(e)&&"[object Symbol]"==ki(e)},Si=vr,Ci=Ei,Ti=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Oi=/^\w*$/;var Di=function(e,t){if(Si(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ci(e))||(Oi.test(e)||!Ti.test(e)||null!=t&&e in Object(t))},Pi=Mn;function Ni(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(Ni.Cache||Pi),n}Ni.Cache=Pi;var Ii=Ni;var Ai=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Li=/\\(\\)?/g,Ri=function(e){var t=Ii(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Ai,(function(e,n,r,a){t.push(r?a.replace(Li,"$1"):n||e)})),t})),ji=Xe,Mi=vr,Fi=Ei,Bi=_t?_t.prototype:void 0,zi=Bi?Bi.toString:void 0;var $i=function e(t){if("string"==typeof t)return t;if(Mi(t))return ji(t,e)+"";if(Fi(t))return zi?zi.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n},Ui=$i;var Hi=function(e){return null==e?"":Ui(e)},Vi=vr,qi=Di,Wi=Ri,Gi=Hi;var Zi=function(e,t){return Vi(e)?e:qi(e,t)?[e]:Wi(Gi(e))};var Qi=Ei;var Yi=function(e){if("string"==typeof e||Qi(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t},Xi=Zi,Ki=Yi;var Ji=function(e,t){for(var n=0,r=(t=Xi(t,e)).length;null!=e&&n<r;)e=e[Ki(t[n++])];return n&&n==r?e:void 0};var el=Ji,tl=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o};var nl=Zi,rl=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0},al=function(e,t){return t.length<2?e:el(e,tl(t,0,-1))},ol=Yi;var il=function(e,t){return t=nl(t,e),null==(e=al(e,t))||delete e[ol(rl(t))]},ll=Lt,sl=Oa,ul=sr,cl=Function.prototype,dl=Object.prototype,fl=cl.toString,pl=dl.hasOwnProperty,hl=fl.call(Object);var ml=function(e){if(!ul(e)||"[object Object]"!=ll(e))return!1;var t=sl(e);if(null===t)return!0;var n=pl.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&fl.call(n)==hl};var gl=function(e){return ml(e)?void 0:e},vl=gr,bl=vr,yl=_t?_t.isConcatSpreadable:void 0;var wl=Ta,xl=function(e){return bl(e)||vl(e)||!!(yl&&e&&e[yl])};var kl=function e(t,n,r,a,o){var i=-1,l=t.length;for(r||(r=xl),o||(o=[]);++i<l;){var s=t[i];n>0&&r(s)?n>1?e(s,n-1,r,a,o):wl(o,s):a||(o[o.length]=s)}return o},_l=kl;var El=function(e){return(null==e?0:e.length)?_l(e,1):[]};var Sl=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},Cl=Math.max;var Tl=function(e,t,n){return t=Cl(void 0===t?e.length-1:t,0),function(){for(var r=arguments,a=-1,o=Cl(r.length-t,0),i=Array(o);++a<o;)i[a]=r[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=r[a];return l[t]=n(i),Sl(e,this,l)}};var Ol=function(e){return function(){return e}},Dl=Xn,Pl=Dl?function(e,t){return Dl(e,"toString",{configurable:!0,enumerable:!1,value:Ol(t),writable:!0})}:function(e){return e},Nl=Date.now;var Il=function(e){var t=0,n=0;return function(){var r=Nl(),a=16-(r-n);if(n=r,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Pl),Al=El,Ll=Tl,Rl=Il;var jl=function(e){return Rl(Ll(e,void 0,Al),e+"")},Ml=Xe,Fl=xi,Bl=il,zl=Zi,$l=ir,Ul=gl,Hl=Ga,Vl=jl((function(e,t){var n={};if(null==e)return n;var r=!1;t=Ml(t,(function(t){return t=zl(t,e),r||(r=t.length>1),t})),$l(e,Hl(e),n),r&&(n=Fl(n,7,Ul));for(var a=t.length;a--;)Bl(n,t[a]);return n})),ql=rr,Wl=Zi,Gl=xr,Zl=Rt,Ql=Yi;var Yl=Ji,Xl=function(e,t,n,r){if(!Zl(e))return e;for(var a=-1,o=(t=Wl(t,e)).length,i=o-1,l=e;null!=l&&++a<o;){var s=Ql(t[a]),u=n;if("__proto__"===s||"constructor"===s||"prototype"===s)return e;if(a!=i){var c=l[s];void 0===(u=r?r(c,s,l):void 0)&&(u=Zl(c)?c:Gl(t[a+1])?[]:{})}ql(l,s,u),l=l[s]}return e},Kl=Zi;var Jl=Zi,es=gr,ts=vr,ns=xr,rs=kr,as=Yi;var os=function(e,t){return null!=e&&t in Object(e)},is=function(e,t,n){for(var r=-1,a=(t=Jl(t,e)).length,o=!1;++r<a;){var i=as(t[r]);if(!(o=null!=e&&n(e,i)))break;e=e[i]}return o||++r!=a?o:!!(a=null==e?0:e.length)&&rs(a)&&ns(i,a)&&(ts(e)||es(e))};var ls=function(e,t,n){for(var r=-1,a=t.length,o={};++r<a;){var i=t[r],l=Yl(e,i);n(l,i)&&Xl(o,Kl(i,e),l)}return o},ss=function(e,t){return null!=e&&is(e,t,os)};var us=function(e,t){return ls(e,t,(function(t,n){return ss(e,n)}))},cs=jl((function(e,t){return null==e?{}:us(e,t)}));const ds=(e,t)=>Object.fromEntries((Array.isArray(e)?e:Object.keys(e)).map(((e,n)=>[e,t(e,n)]))),fs=["xs","sm","md","lg","xl"],ps=["display1","display2","display3","display4","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","subtitle3","subtitle4","body1","body2","body3","label1","label2"],hs={h1:["h1"],h2:["h2"],h3:["h3"],h4:["h4"],h5:["h5"],h6:["h6"],body1:["body"],label1:["label"]},ms=["fontSize","fontWeight","lineHeight"],gs={...ds(ps,(e=>`lsd-typography--${e}`)),root:"lsd-typography",primary:"lsd-typography--primary",secondary:"lsd-typography--secondary",serif:"lsd-typography--serif",sansSerif:"lsd-typography--sans-serif",monospace:"lsd-typography--monospace"},vs=["genericFontFamily"],bs=({genericFontFamily:e})=>({className:Qe("serif"===e&&gs.serif,"monospace"===e&&gs.monospace,"sans-serif"===e&&gs.sansSerif)}),ys=e=>cs(e,vs),ws=e=>Vl(e,vs),xs={root:"lsd-icon",small:"lsd-icon--small",filled:"lsd-icon--filled",stroked:"lsd-icon--stroked",primary:"lsd-icon--primary",secondary:"lsd-icon--secondary"},ks=(e,t)=>{const n=({color:n,size:r="small",className:a,...o})=>{const i=bs(o);return We(e,{className:Qe(i.className,a,xs.root,xs[r],n&&xs[n],(null==t?void 0:t.filled)&&xs.filled,(null==t?void 0:t.stroked)&&xs.stroked),...ws(o)})};return n.displayName=e.displayName,n.classes=xs,n},_s=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.6666 7.58334H7.58325V11.6667H6.41659V7.58334H2.33325V6.41668H6.41659V2.33334H7.58325V6.41668H11.6666V7.58334Z",fill:"black"})})),{filled:!0}),Es=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M10.5 5.66125L9.6775 4.83875L7 7.51041L4.3225 4.83874L3.5 5.66125L7 9.16125L10.5 5.66125Z",fill:"black"})})),{filled:!0}),Ss=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M6.99992 2.33334L6.17742 3.15584L9.43242 6.41668H2.33325V7.58334H9.43242L6.17742 10.8442L6.99992 11.6667L11.6666 7.00001L6.99992 2.33334Z",fill:"black"})})),{filled:!0}),Cs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M3.5 8.33875L4.3225 9.16125L7 6.48959L9.6775 9.16125L10.5 8.33875L7 4.83875L3.5 8.33875Z",fill:"black"})})),{filled:!0}),Ts=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75H11.0833C11.725 1.75 12.25 2.275 12.25 2.91667V11.0833C12.25 11.725 11.725 12.25 11.0833 12.25H2.91667C2.275 12.25 1.75 11.725 1.75 11.0833V2.91667C1.75 2.275 2.275 1.75 2.91667 1.75ZM9.68333 4.43333L10.5 5.25L5.83333 9.91667L3.5 7.58333L4.31667 6.76667L5.83333 8.28333L9.68333 4.43333Z",fill:"black"})})),{filled:!0}),Os=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 2.91667V11.0833H2.91667V2.91667H11.0833ZM11.0833 1.75H2.91667C2.275 1.75 1.75 2.275 1.75 2.91667V11.0833C1.75 11.725 2.275 12.25 2.91667 12.25H11.0833C11.725 12.25 12.25 11.725 12.25 11.0833V2.91667C12.25 2.275 11.725 1.75 11.0833 1.75Z",fill:"black"})})),{filled:!0}),Ds=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.25009 9.43247L2.81759 6.99997L1.98926 7.82247L5.25009 11.0833L12.2501 4.0833L11.4276 3.2608L5.25009 9.43247Z",fill:"black"})})),{filled:!0}),Ps=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0834 3.73916L10.2609 2.91666L7.00008 6.17749L3.73925 2.91666L2.91675 3.73916L6.17758 6.99999L2.91675 10.2608L3.73925 11.0833L7.00008 7.82249L10.2609 11.0833L11.0834 10.2608L7.82258 6.99999L11.0834 3.73916Z",fill:"black"})})),{filled:!0}),Ns=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.00008 1.16666C3.78008 1.16666 1.16675 3.77999 1.16675 6.99999C1.16675 10.22 3.78008 12.8333 7.00008 12.8333C10.2201 12.8333 12.8334 10.22 12.8334 6.99999C12.8334 3.77999 10.2201 1.16666 7.00008 1.16666ZM6.41675 9.91666V8.74999H7.58342V9.91666H6.41675ZM6.41675 4.08332V7.58332H7.58342V4.08332H6.41675Z",fill:"black"})})),{filled:!0}),Is=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.34925 3.50001L6.51591 4.66668H11.6667V10.5H2.33341V3.50001H5.34925ZM5.83341 2.33334H2.33341C1.69175 2.33334 1.17258 2.85834 1.17258 3.50001L1.16675 10.5C1.16675 11.1417 1.69175 11.6667 2.33341 11.6667H11.6667C12.3084 11.6667 12.8334 11.1417 12.8334 10.5V4.66668C12.8334 4.02501 12.3084 3.50001 11.6667 3.50001H7.00008L5.83341 2.33334Z",fill:"black"})})),{filled:!0}),As=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 4.08333V6.41667H3.98417L6.0725 4.3225L5.25 3.5L1.75 7L5.25 10.5L6.0725 9.6775L3.98417 7.58333H12.25V4.08333H11.0833Z",fill:"black"})})),{filled:!0}),Ls=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.75 4.66667V3.5H12.25V4.66667H1.75ZM1.75 7.58333H12.25V6.41667H1.75V7.58333ZM1.75 10.5H12.25V9.33333H1.75V10.5Z",fill:"black"})})),{filled:!0}),Rs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.49992 5.83334C2.85825 5.83334 2.33325 6.35834 2.33325 7.00001C2.33325 7.64168 2.85825 8.16668 3.49992 8.16668C4.14159 8.16668 4.66659 7.64168 4.66659 7.00001C4.66659 6.35834 4.14159 5.83334 3.49992 5.83334ZM10.4999 5.83334C9.85825 5.83334 9.33325 6.35834 9.33325 7.00001C9.33325 7.64168 9.85825 8.16668 10.4999 8.16668C11.1416 8.16668 11.6666 7.64168 11.6666 7.00001C11.6666 6.35834 11.1416 5.83334 10.4999 5.83334ZM5.83325 7.00001C5.83325 6.35834 6.35825 5.83334 6.99992 5.83334C7.64159 5.83334 8.16659 6.35834 8.16659 7.00001C8.16659 7.64168 7.64159 8.16668 6.99992 8.16668C6.35825 8.16668 5.83325 7.64168 5.83325 7.00001Z",fill:"black"})})),{filled:!0}),js=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M9.16137 4.3225L8.33887 3.5L4.83887 7L8.33887 10.5L9.16137 9.6775L6.4897 7L9.16137 4.3225Z",fill:"black"})})),{filled:!0}),Ms=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.66137 3.5L4.83887 4.3225L7.51053 7L4.83887 9.6775L5.66137 10.5L9.16137 7L5.66137 3.5Z",fill:"black"})})),{filled:!0}),Fs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.61 7.74083L11.9525 11.0833L11.0833 11.9525L7.74083 8.61C7.11667 9.05917 6.36417 9.33333 5.54167 9.33333C3.4475 9.33333 1.75 7.63583 1.75 5.54167C1.75 3.4475 3.4475 1.75 5.54167 1.75C7.63583 1.75 9.33333 3.4475 9.33333 5.54167C9.33333 6.36417 9.05917 7.11667 8.61 7.74083ZM5.54167 2.91667C4.08917 2.91667 2.91667 4.08917 2.91667 5.54167C2.91667 6.99417 4.08917 8.16667 5.54167 8.16667C6.99417 8.16667 8.16667 6.99417 8.16667 5.54167C8.16667 4.08917 6.99417 2.91667 5.54167 2.91667Z",fill:"black"})})),{filled:!0}),Bs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.79287 3.5H2.99998V2.5H11.5V11H10.5V4.20711L3.35353 11.3536L2.64642 10.6464L9.79287 3.5Z",fill:"black"})})),{filled:!0}),zs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"})})),{filled:!0}),$s=ks((e=>Ge("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"}),We("path",{d:"M7.0013 9.91669C8.61213 9.91669 9.91797 8.61085 9.91797 7.00002C9.91797 5.38919 8.61213 4.08335 7.0013 4.08335C5.39047 4.08335 4.08464 5.38919 4.08464 7.00002C4.08464 8.61085 5.39047 9.91669 7.0013 9.91669Z",fill:"black"})]})),{filled:!0}),Us=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 2.33332H10.5V1.16666H9.33333V2.33332H4.66667V1.16666H3.5V2.33332H2.91667C2.26917 2.33332 1.75 2.85832 1.75 3.49999V11.6667C1.75 12.3083 2.26917 12.8333 2.91667 12.8333H11.0833C11.725 12.8333 12.25 12.3083 12.25 11.6667V3.49999C12.25 2.85832 11.725 2.33332 11.0833 2.33332ZM11.0833 11.6667H2.91667V5.24999H11.0833V11.6667ZM3.79167 7.58332C3.79167 6.77832 4.445 6.12499 5.25 6.12499C6.055 6.12499 6.70833 6.77832 6.70833 7.58332C6.70833 8.38832 6.055 9.04166 5.25 9.04166C4.445 9.04166 3.79167 8.38832 3.79167 7.58332Z",fill:"black"})})),{filled:!0}),Hs=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M2.32812 7.58329V6.41663H11.6581V7.58329H2.32812Z",fill:"black"})})),{filled:!0}),Vs=({color:e,variant:t="body1",component:n,className:r,children:a,...o})=>{const i=bs(o);return We(n??{h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",label1:"label",label2:"label"}[t]??"span",{className:Qe(i.className,gs.root,gs[t],e&&gs[e],r),...ws(o),children:a})};Vs.classes=gs;const qs={root:"lsd-dropdown-item",icon:"lsd-dropdown-item__icon",label:"lsd-dropdown-item__label",error:"lsd-dropdown-item--error",disabled:"lsd-dropdown-item--disabled",selected:"lsd-dropdown-item--selected",withIcon:"lsd-dropdown-item--with-icon",small:"lsd-dropdown-item--small",medium:"lsd-dropdown-item--medium",large:"lsd-dropdown-item--large"},Ws=({label:e,size:t="large",withIcon:n,selected:r,disabled:a,className:o,...i})=>{const l=bs(i),s={color:"primary",className:qs.icon};return Ge("div",{role:"option","aria-selected":r?"true":"false",...ws(i),className:Qe(l.className,o,qs.root,qs[t],n&&qs.withIcon,a&&qs.disabled),children:[n&&We(r?Ts:Os,{...s}),We(Vs,{variant:"large"===t?"label1":"label2",component:"span",className:qs.label,children:e})]})};function Gs(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function Zs(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}Ws.classes=qs;var Qs=["mousedown","touchstart"];const Ys=function(e,t,n){void 0===n&&(n=Qs);var a=r.useRef(t);r.useEffect((function(){a.current=t}),[t]),r.useEffect((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&a.current(t)},r=0,o=n;r<o.length;r++){var i=o[r];Gs(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var a=r[e];Zs(document,a,t)}}}),[n,e])};const Xs=function(e){r.useEffect(e,[])};const Ks=function(e){var t=r.useRef(e);t.current=e,Xs((function(){return function(){return t.current()}}))};const Js=function(e){var t=r.useRef(0),n=r.useState(e),a=n[0],o=n[1],i=r.useCallback((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){o(e)}))}),[]);return Ks((function(){cancelAnimationFrame(t.current)})),[a,i]};const eu=function(e){var t=Js({x:0,y:0}),n=t[0],a=t[1];return r.useEffect((function(){var t=function(){e.current&&a({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&Gs(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&Zs(e.current,"scroll",t)}}),[e]),n},tu={root:"lsd-dropdown-menu",open:"lsd-dropdown-menu--open",large:"lsd-dropdown-menu--large",medium:"lsd-dropdown-menu--medium",small:"lsd-dropdown-menu--small"},nu=(e,t)=>{const[n,a]=r.useState({});return r.useEffect((()=>{const{width:t,height:n,top:r,left:o}=e.current.getBoundingClientRect();a({left:o+window.scrollX,width:t,top:r+n+window.scrollY})}),[t]),n},ru=({size:e="large",open:t,label:n,handleRef:a,onClose:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null);Ys(u,(e=>{t&&!e.composedPath().includes(a.current)&&o&&o()}));const c=nu(a,t);return We("ul",{...ws(l),ref:u,role:"listbox","aria-label":n,style:{...c,...l.style??{}},className:Qe(s.className,l.className,tu.root,tu[e],t&&tu.open),children:i})};ru.classes=tu;const au=r.createContext({initialized:!1}),ou=()=>{var e;return(null==(e=r.useContext(au))?void 0:e.initialized)??!1},iu=({parentId:e})=>{const t=r.useRef();return"undefined"==typeof window||t.current||(t.current=document.createElement("div")),r.useEffect((()=>{var n;if("undefined"==typeof window||!t.current)return;const r=document.querySelectorAll(`#${e}`);return null==(n=r[r.length-1])||n.appendChild(t.current),()=>{var n;try{null==(n=document.getElementById(e))||n.removeChild(t.current)}catch(r){}}}),[e,t.current]),t.current},lu=({id:e,children:t})=>ou()?We(su,{id:e,children:t}):We(qe,{}),su=({id:e,children:t})=>{const n=iu({parentId:"lsd-presentation"});return n?a.createPortal(t,n,e):We(qe,{})},uu={root:"lsd-autocomplete",label:"lsd-autocomplete__label",inputContainer:"lsd-autocomplete__input-container",input:"lsd-autocomplete__input",icon:"lsd-autocomplete__icon",dropdownItemPlaceholder:"lsd-autocomplete__dropdown-item-placeholder",disabled:"lsd-autocomplete--disabled",error:"lsd-autocomplete--error",large:"lsd-autocomplete--large",medium:"lsd-autocomplete--medium",small:"lsd-autocomplete--small",withIcon:"lsd-autocomplete--with-icon",outlined:"lsd-autocomplete--outlined",underlined:"lsd-autocomplete--underlined"},cu=({label:e,size:t="large",withIcon:n=!1,error:a=!1,disabled:o=!1,children:i,value:l,defaultValue:s,placeholder:u,onChange:c,options:d=[],inputProps:f={},variant:p="outlined",...h})=>{const m=bs(h),g=r.useRef(null),v=r.useRef(null),b=Ye({defaultValue:s,value:l,onChange:c,ref:g}),y=b.value,[w,x]=r.useState(!1),[k,_]=r.useState(),E=e=>{x(!1),_(e),b.setValue(e)},S=r.useMemo((()=>b.filled?d.filter((e=>new RegExp(`^${b.value}.+`,"i").test(e))).map((e=>[e,e.slice(0,y.length),e.slice(y.length)])):d),[b.value,d]);r.useEffect((()=>{!k&&b.filled&&!w&&x(!0)}),[b.value,k,w]);const C=!o&&w&&S.length>0&&b.filled,T=(null==f?void 0:f.id)??(h.id||"autocomplete")+"-input";return Ge("div",{ref:v,...ws(h),className:Qe(h.className,m.className,uu.root,uu[t],o&&uu.disabled,n&&uu.withIcon,"outlined"===p?uu.outlined:uu.underlined),children:[e&&We(Vs,{htmlFor:T,className:uu.label,variant:"label2",component:"label",children:e}),Ge("div",{className:uu.inputContainer,children:[We("input",{id:T,ref:g,value:b.value,placeholder:u,onChange:b.onChange,disabled:o,onFocus:()=>x(!0),...f,className:Qe(f.className,uu.input,a&&uu.error)}),n&&b.value?We("span",{className:uu.icon,onClick:()=>b.setValue(""),children:We(Ps,{color:"primary"})}):n&&!b.value?We("span",{className:uu.icon,children:We(Fs,{color:"primary"})}):null]}),We(lu,{id:"autocomplete",children:We(ru,{handleRef:v,open:C,onClose:()=>x(!1),size:t,...ys(h),children:S.map(((e,n)=>We(Ws,{size:t,tabIndex:0,label:Ge(qe,{children:[e[1],We("span",{className:uu.dropdownItemPlaceholder,children:e[2]})]}),onClick:()=>E(e[0]),onKeyDown:t=>"Enter"===t.key&&E(e[0])},n)))})})]})};cu.classes=uu;const du={root:"lsd-badge",label:"lsd-badge__label",outlined:"lsd-badge--outlined",filled:"lsd-badge--filled",disabled:"lsd-badge--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},fu=({variant:e="outlined",disabled:t,size:n="large",icon:r,iconDirection:a="left",children:o,...i})=>{const l=bs(i);return Ge("div",{"aria-label":o,...ws(i),className:Qe(i.className,l.className,du.root,du[e],t&&du.disabled,du[n]),children:["left"===a&&r,We(Vs,{component:"span",variant:"small"===n?"label2":"label1",className:du.label,children:o}),"right"===a&&r]})};fu.classes=du;const pu={root:"lsd-breadcrumb-item",outlined:"lsd-breadcrumb-item--outlined",itemLink:"lsd-breadcrumb-item__link",large:"lsd-breadcrumb-item--large",small:"lsd-breadcrumb-item--small"},hu=({size:e="large",label:t,link:n,linkComponent:r=(e=>We("a",{...e,children:e.children})),outlined:a,selected:o,ellipsisRef:i,onClick:l,className:s,...u})=>{const c=bs(u);return We("li",{...ws(u),className:Qe(c.className,pu.root,pu[e],s),"aria-selected":o?"true":"false",onClick:l,ref:i,children:We(r,{href:n,className:Qe(pu.itemLink,a&&pu.outlined),children:We(Vs,{color:"primary",component:"span",variant:"large"===e?"label1":"label2",children:t})})})};hu.classes=pu;const mu={root:"lsd-breadcrumb",list:"lsd-breadcrumb__list",listBox:"lsd-breadcrumb__dropdown-menu",open:"lsd-breadcrumb--open",disabled:"lsd-breadcrumb--disabled"},gu=({size:e="large",disabled:t=!1,ellipsis:n=!1,maxItems:a,value:o=[],onChange:i,options:l=[],...s})=>{const u=bs(s),c=r.useRef(null),[d,f]=r.useState(!1);a=Math.max(2,Math.min(a||2,l.length));const[p,...h]=l,[m,g]=n?[h.slice(0,h.length-a+1),h.slice(h.length-a+1)]:[[],h],v=t=>t.map(((t,n)=>We(hu,{outlined:n===g.length-1&&t!==p,label:t.value,link:t.link,linkComponent:null==t?void 0:t.linkComponent,size:e},n)));return r.useEffect((()=>{t&&d&&f(!1)}),[d,t]),Ge("div",{...ws(s),className:Qe(s.className,u.className,mu.root,t&&mu.disabled,d&&mu.open),children:[Ge("ul",{className:mu.list,children:[p&&v([p]),m.length>0&&We(hu,{ellipsisRef:c,label:"...",onClick:()=>{!t&&f((e=>!e))},size:e,...ys(s)}),v(g)]}),null!=(null==c?void 0:c.current)&&n&&a&&We(lu,{id:"breadcrumb",children:We(ru,{handleRef:c,open:d,onClose:()=>f(!1),className:Qe(mu.listBox),size:e,genericFontFamily:s.genericFontFamily,...ys(s),children:m.map(((e,t)=>We(hu,{label:e.value,link:e.link,className:pu.itemLink,linkComponent:null==e?void 0:e.linkComponent},t)))})})]})};gu.classes=mu;const vu=r.createContext(null),bu={root:"lsd-button",disabled:"lsd-button--disabled",large:"lsd-button--large",medium:"lsd-button--medium",small:"lsd-button--small",withIcon:"lsd-button--with-icon",outlined:"lsd-button--outlined",filled:"lsd-button--filled",text:"lsd-button__text",icon:"lsd-button__icon"},yu=({size:e,variant:t,disabled:n,icon:a,children:o,...i})=>{const l=r.useContext(vu),s=bs(i),u=bs(l||{}),c=s.className||u.className,d=e??(null==l?void 0:l.size)??"medium",f=t??(null==l?void 0:l.variant)??"outlined",p=n??(null==l?void 0:l.disabled)??!1;return We(qe,{children:Ge("button",{...ws(i),className:Qe(c,i.className,bu.root,bu[d],bu[f],p&&bu.disabled,a&&bu.withIcon),children:[We(Vs,{component:"span",className:bu.text,variant:"small"===d?"label2":"label1",children:o}),a&&We("span",{className:bu.icon,children:a})]})})};yu.classes=bu;const wu={root:"lsd-button-group",outlined:"lsd-button-group--outlined",filled:"lsd-button-group--filled",disabled:"lsd-button-group--disabled",small:"lsd-button-group--small",medium:"lsd-button-group--medium",large:"lsd-button-group--large"},xu=({size:e="large",disabled:t,variant:n="outlined",children:r,...a})=>{const o=bs(a);return We("div",{...ws(a),className:Qe(o.className,a.className,wu.root,wu[e],wu[n],t&&wu.disabled),children:We(vu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};xu.classes=wu;var ku={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function _u(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var Eu={date:_u({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:_u({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:_u({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Su={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Cu(e){return function(t,n){var r,a=n||{};if("formatting"===(a.context?String(a.context):"standalone")&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,i=a.width?String(a.width):o;r=e.formattingValues[i]||e.formattingValues[o]}else{var l=e.defaultWidth,s=a.width?String(a.width):e.defaultWidth;r=e.values[s]||e.values[l]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function Tu(e){return function(t,n){var r=String(t),a=n||{},o=a.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],l=r.match(i);if(!l)return null;var s,u=l[0],c=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth];return s="[object Array]"===Object.prototype.toString.call(c)?function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n}(c,(function(e){return e.test(u)})):function(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}(c,(function(e){return e.test(u)})),s=e.valueCallback?e.valueCallback(s):s,{value:s=a.valueCallback?a.valueCallback(s):s,rest:r.slice(u.length)}}}var Ou,Du={code:"en-US",formatDistance:function(e,t,n){var r;return n=n||{},r="string"==typeof ku[e]?ku[e]:1===t?ku[e].one:ku[e].other.replace("{{count}}",t),n.addSuffix?n.comparison>0?"in "+r:r+" ago":r},formatLong:Eu,formatRelative:function(e,t,n,r){return Su[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Cu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Cu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:Cu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Cu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Cu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ou={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},a=n.match(Ou.matchPattern);if(!a)return null;var o=a[0],i=n.match(Ou.parsePattern);if(!i)return null;var l=Ou.valueCallback?Ou.valueCallback(i[0]):i[0];return{value:l=r.valueCallback?r.valueCallback(l):l,rest:n.slice(o.length)}}),era:Tu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Tu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Tu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Tu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Tu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Pu(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Nu(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function Iu(e){Nu(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function Au(e,t){return Nu(2,arguments),function(e,t){Nu(2,arguments);var n=Iu(e).getTime(),r=Pu(t);return new Date(n+r)}(e,-Pu(t))}function Lu(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}}function Ru(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}}var ju={p:Ru,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),a=r[1],o=r[2];if(!o)return Lu(e,t);switch(a){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Lu(a,t)).replace("{{time}}",Ru(o,t))}};function Mu(e){return e.getTime()%6e4}var Fu=["D","DD"],Bu=["YY","YYYY"];function zu(e){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===e)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===e)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===e)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}function $u(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:Pu(a),i=null==n.weekStartsOn?o:Pu(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getUTCDay(),u=(s<i?7:0)+s-i;return l.setUTCDate(l.getUTCDate()-u),l.setUTCHours(0,0,0,0),l}function Uu(e,t){Nu(1,arguments);var n=Iu(e,t),r=n.getUTCFullYear(),a=t||{},o=a.locale,i=o&&o.options&&o.options.firstWeekContainsDate,l=null==i?1:Pu(i),s=null==a.firstWeekContainsDate?l:Pu(a.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=new Date(0);u.setUTCFullYear(r+1,0,s),u.setUTCHours(0,0,0,0);var c=$u(u,t),d=new Date(0);d.setUTCFullYear(r,0,s),d.setUTCHours(0,0,0,0);var f=$u(d,t);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}function Hu(e){Nu(1,arguments);var t=Iu(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function Vu(e){Nu(1,arguments);var t=Iu(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=Hu(r),o=new Date(0);o.setUTCFullYear(n,0,4),o.setUTCHours(0,0,0,0);var i=Hu(o);return t.getTime()>=a.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function qu(e){Nu(1,arguments);var t=Iu(e),n=Hu(t).getTime()-function(e){Nu(1,arguments);var t=Vu(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),Hu(n)}(t).getTime();return Math.round(n/6048e5)+1}function Wu(e,t){Nu(1,arguments);var n=Iu(e),r=$u(n,t).getTime()-function(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.firstWeekContainsDate,o=null==a?1:Pu(a),i=null==n.firstWeekContainsDate?o:Pu(n.firstWeekContainsDate),l=Uu(e,t),s=new Date(0);return s.setUTCFullYear(l,0,i),s.setUTCHours(0,0,0,0),$u(s,t)}(n,t).getTime();return Math.round(r/6048e5)+1}function Gu(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length<t;)r="0"+r;return n+r}var Zu={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return Gu("yy"===t?r%100:r,t.length)}(e,t)},Y:function(e,t,n,r){var a=Uu(e,r),o=a>0?a:1-a;return"YY"===t?Gu(o%100,2):"Yo"===t?n.ordinalNumber(o,{unit:"year"}):Gu(o,t.length)},R:function(e,t){return Gu(Vu(e),t.length)},u:function(e,t){return Gu(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Gu(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Gu(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):Gu(n+1,2)}(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return Gu(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var a=Wu(e,r);return"wo"===t?n.ordinalNumber(a,{unit:"week"}):Gu(a,t.length)},I:function(e,t,n){var r=qu(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):Gu(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):function(e,t){return Gu(e.getUTCDate(),t.length)}(e,t)},D:function(e,t,n){var r=function(e){Nu(1,arguments);var t=Iu(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=n-t.getTime();return Math.floor(r/864e5)+1}(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):Gu(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var a=e.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Gu(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var a=e.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Gu(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return Gu(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,a=e.getUTCHours();switch(r=12===a?"noon":0===a?"midnight":a/12>=1?"pm":"am",t){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,a=e.getUTCHours();switch(r=a>=17?"evening":a>=12?"afternoon":a>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return function(e,t){return Gu(e.getUTCHours()%12||12,t.length)}(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):function(e,t){return Gu(e.getUTCHours(),t.length)}(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):Gu(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):Gu(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):function(e,t){return Gu(e.getUTCMinutes(),t.length)}(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):function(e,t){return Gu(e.getUTCSeconds(),t.length)}(e,t)},S:function(e,t){return function(e,t){var n=t.length,r=e.getUTCMilliseconds();return Gu(Math.floor(r*Math.pow(10,n-3)),t.length)}(e,t)},X:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return Yu(a);case"XXXX":case"XX":return Xu(a);default:return Xu(a,":")}},x:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Yu(a);case"xxxx":case"xx":return Xu(a);default:return Xu(a,":")}},O:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Qu(a,":");default:return"GMT"+Xu(a,":")}},z:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Qu(a,":");default:return"GMT"+Xu(a,":")}},t:function(e,t,n,r){var a=r._originalDate||e;return Gu(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,n,r){return Gu((r._originalDate||e).getTime(),t.length)}};function Qu(e,t){var n=e>0?"-":"+",r=Math.abs(e),a=Math.floor(r/60),o=r%60;if(0===o)return n+String(a);var i=t||"";return n+String(a)+i+Gu(o,2)}function Yu(e,t){return e%60==0?(e>0?"-":"+")+Gu(Math.abs(e)/60,2):Xu(e,t)}function Xu(e,t){var n=t||"",r=e>0?"-":"+",a=Math.abs(e);return r+Gu(Math.floor(a/60),2)+n+Gu(a%60,2)}var Ku=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ju=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ec=/^'([^]*?)'?$/,tc=/''/g,nc=/[a-zA-Z]/;function rc(e,t,n){Nu(2,arguments);var r=String(t),a=n||{},o=a.locale||Du,i=o.options&&o.options.firstWeekContainsDate,l=null==i?1:Pu(i),s=null==a.firstWeekContainsDate?l:Pu(a.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=o.options&&o.options.weekStartsOn,c=null==u?0:Pu(u),d=null==a.weekStartsOn?c:Pu(a.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!o.localize)throw new RangeError("locale must contain localize property");if(!o.formatLong)throw new RangeError("locale must contain formatLong property");var f=Iu(e);if(!function(e){Nu(1,arguments);var t=Iu(e);return!isNaN(t)}(f))throw new RangeError("Invalid time value");var p=function(e){var t=new Date(e.getTime()),n=Math.ceil(t.getTimezoneOffset());return t.setSeconds(0,0),6e4*n+(n>0?(6e4+Mu(t))%6e4:Mu(t))}(f),h=Au(f,p),m={firstWeekContainsDate:s,weekStartsOn:d,locale:o,_originalDate:f},g=r.match(Ju).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,ju[t])(e,o.formatLong,m):e})).join("").match(Ku).map((function(e){if("''"===e)return"'";var t=e[0];if("'"===t)return function(e){return e.match(ec)[1].replace(tc,"'")}(e);var n=Zu[t];if(n)return!a.useAdditionalWeekYearTokens&&function(e){return-1!==Bu.indexOf(e)}(e)&&zu(e),!a.useAdditionalDayOfYearTokens&&function(e){return-1!==Fu.indexOf(e)}(e)&&zu(e),n(h,e,o.localize,m);if(t.match(nc))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return e})).join("");return g}function ac(e,t){Nu(2,arguments);var n=Iu(e),r=Pu(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n}function oc(e,t){Nu(1,arguments);var n=e||{},r=Iu(n.start),a=Iu(n.end).getTime();if(!(r.getTime()<=a))throw new RangeError("Invalid interval");var o=[],i=r;i.setHours(0,0,0,0);var l=t&&"step"in t?Number(t.step):1;if(l<1||isNaN(l))throw new RangeError("`options.step` must be a number greater than 1");for(;i.getTime()<=a;)o.push(Iu(i)),i.setDate(i.getDate()+l),i.setHours(0,0,0,0);return o}function ic(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:Pu(a),i=null==n.weekStartsOn?o:Pu(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getDay(),u=6+(s<i?-7:0)-(s-i);return l.setDate(l.getDate()+u),l.setHours(23,59,59,999),l}function lc(e){Nu(1,arguments);var t=Iu(e);return t.setDate(1),t.setHours(0,0,0,0),t}function sc(e,t){Nu(1,arguments);var n=t||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:Pu(a),i=null==n.weekStartsOn?o:Pu(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=Iu(e),s=l.getDay(),u=(s<i?7:0)+s-i;return l.setDate(l.getDate()-u),l.setHours(0,0,0,0),l}var uc=function(e){return rc(e,"dd")},cc=function(e){return rc(e,"eeeeee")},dc=function(e){return rc(e,"MMMM yyyy")};function fc(e){var t=e.year,n=e.month,a=e.firstDayOfWeek,o=void 0===a?1:a,i=e.dayLabelFormat,l=void 0===i?uc:i,s=e.weekdayLabelFormat,u=void 0===s?cc:s,c=e.monthLabelFormat,d=void 0===c?dc:c;return{days:r.useMemo((function(){return function(e){var t=e.year,n=e.month,r=e.firstDayOfWeek,a=void 0===r?1:r,o=e.dayLabelFormat,i=void 0===o?function(e){return rc(e,"dd")}:o,l=new Date(t,n),s=lc(l),u=function(e){return Nu(1,arguments),Iu(e).getDay()}(s),c=function(e){Nu(1,arguments);var t=Iu(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}(l);return function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(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}(Array.from(Array(u>=a?u-a:6-a+u+1).keys()).fill(0),oc({start:s,end:c}).map((function(e){return{date:e,dayLabel:i(e)}})))}({year:t,month:n,firstDayOfWeek:o,dayLabelFormat:l})}),[t,n,o,l]),weekdayLabels:r.useMemo((function(){return function(e){var t=void 0===e?{}:e,n=t.firstDayOfWeek,r=void 0===n?1:n,a=t.weekdayLabelFormat,o=void 0===a?function(e){return rc(e,"iiiiii")}:a,i=new Date;return oc({start:ac(sc(i),r),end:ac(ic(i),r)}).reduce((function(e,t){return e.push(o(t)),e}),[])}({firstDayOfWeek:o,weekdayLabelFormat:u})}),[o,u]),monthLabel:d(new Date(t,n))}}function pc(e,t){Nu(2,arguments);var n=Iu(e),r=Iu(t);return n.getTime()<r.getTime()}function hc(e,t){Nu(2,arguments);var n=Iu(e),r=Iu(t);return n.getTime()>r.getTime()}function mc(e,t){Nu(2,arguments);var n=t||{},r=Iu(e).getTime(),a=Iu(n.start).getTime(),o=Iu(n.end).getTime();if(!(a<=o))throw new RangeError("Invalid interval");return r>=a&&r<=o}function gc(e){Nu(1,arguments);var t=Iu(e);return t.setHours(0,0,0,0),t}function vc(e,t){Nu(2,arguments);var n=gc(e),r=gc(t);return n.getTime()===r.getTime()}function bc(e,t){Nu(2,arguments);var n=Iu(e),r=Pu(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var a=n.getDate(),o=new Date(n.getTime());return o.setMonth(n.getMonth()+r+1,0),a>=o.getDate()?o:(n.setFullYear(o.getFullYear(),o.getMonth(),a),n)}var yc=function(e,t){return void 0===e&&(e=[]),e.some((function(e){return vc(t,e)}))};function wc(e){var t=lc(e);return{year:function(e){return Nu(1,arguments),Iu(e).getFullYear()}(t),month:function(e){return Nu(1,arguments),Iu(e).getMonth()}(t),date:t}}function xc(e,t){var n=wc(t||gc(Date.now())),r=n.date,a=[n];return e>1&&(a=Array.from(Array(e-1).keys()).reduce((function(e){return r=bc(e[e.length-1].date,1),e.concat([wc(r)])}),a)),a}function kc(e,t,n,r){var a=e[r?n>0?0:e.length-r:n>0?e.length-1:0].date;return Array.from(Array(t).keys()).reduce((function(e){return a=0===e.length?bc(a,n):bc(a,n>=0?1:-1),n>0?e.concat([wc(a)]):[wc(a)].concat(e)}),[])}function _c(e){var t=e.startDate,n=e.endDate,r=e.isDateBlocked,a=e.minBookingDays,o=e.exactMinBookingDays,i=e.minBookingDate,l=e.maxBookingDate,s=!i||!pc(t,ac(i,-1)),u=!l||!hc(ac(t,a-1),l);return!((!t||1!==a||n||r(t))&&(t&&a>1&&!n&&!o||t&&a>0&&o&&s&&u||t&&a>0&&o&&!i&&!l?oc({start:t,end:ac(t,a-1)}).some((function(e){return r(e)})):!t||!n||o||pc(n,ac(t,a-1))||oc({start:t,end:n}).some((function(e){return r(e)}))))}function Ec(e){var t=e.startDate,n=e.endDate,a=e.focusedInput,o=e.minBookingDate,i=e.maxBookingDate,l=e.onDatesChange,s=e.initialVisibleMonth,u=e.exactMinBookingDays,c=void 0!==u&&u,d=e.minBookingDays,f=void 0===d?1:d,p=e.numberOfMonths,h=void 0===p?2:p,m=e.firstDayOfWeek,g=void 0===m?1:m,v=e.isDateBlocked,b=void 0===v?function(){return!1}:v,y=e.unavailableDates,w=void 0===y?[]:y,x=e.changeActiveMonthOnSelect,k=void 0===x||x,_=r.useState((function(){return xc(h,t||s||null)})),E=_[0],S=_[1],C=r.useState(null),T=C[0],O=C[1],D=r.useState(t),P=D[0],N=D[1];r.useEffect((function(){return"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("keydown",R),function(){window.removeEventListener&&window.removeEventListener("keydown",R)}}));var I=function(e){return yc(w,e)||b(e)},A=function(e){N(e),(!P||P&&!vc(e,P))&&S(xc(h,e))},L=function(e){return function(e){var t=e.date,n=e.minBookingDate,r=e.maxBookingDate,a=e.isDateBlockedFn,o=e.startDate,i=e.endDate,l=e.minBookingDays,s=void 0===l?1:l,u=e.unavailableDates,c=void 0===u?[]:u,d=n?new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0):n,f=r?new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0):r;return!!(yc(c,t)||d&&pc(t,d)||f&&hc(t,f)||o&&!i&&s>1&&mc(t,{start:o,end:ac(o,s-2)})||a&&a(t))}({date:e,minBookingDate:o,maxBookingDate:i,startDate:t,endDate:n,minBookingDays:f,isDateBlockedFn:I})};function R(e){if(("ArrowRight"===e.key||"ArrowLeft"===e.key||"ArrowDown"===e.key||"ArrowUp"===e.key)&&!P){var t=E[0];A(t.date),S(xc(h,t.date))}}var j=r.useCallback((function(){S(kc(E,h,-1)),N(null)}),[E,h]),M=r.useCallback((function(){S(kc(E,h,-1,1)),N(null)}),[E,h]),F=r.useCallback((function(){S(kc(E,h,1)),N(null)}),[E,h]),B=r.useCallback((function(){S(kc(E,h,1,1)),N(null)}),[E,h]),z=r.useCallback((function(e){S(xc(h,e)),N(null)}),[h]),$=r.useCallback((function(e){void 0===e&&(e=1),S(kc(E,h,-(12*e-h+1))),N(null)}),[E,h]),U=r.useCallback((function(e){void 0===e&&(e=1),S(kc(E,h,12*e-h+1)),N(null)}),[E,h]);return{firstDayOfWeek:g,activeMonths:E,isDateSelected:function(e){return function(e,t,n){return!(!t||!n)&&mc(e,{start:t,end:n})}(e,t,n)},isDateHovered:function(e){return a=(r={date:e,hoveredDate:T,startDate:t,endDate:n,minBookingDays:f,exactMinBookingDays:c,isDateBlocked:I}).date,o=r.startDate,i=r.endDate,l=r.isDateBlocked,u=r.minBookingDays,(s=r.hoveredDate)&&u>1&&r.exactMinBookingDays&&mc(a,{start:s,end:ac(s,u-1)})?!oc({start:s,end:ac(s,u-1)}).some((function(e){return l(e)})):o&&!i&&s&&mc(a,{start:o,end:ac(o,u-1)})&&vc(o,s)&&u>1?!oc({start:o,end:ac(o,u-1)}).some((function(e){return l(e)})):!(!o||i||!s||pc(s,o)||!mc(a,{start:o,end:s})||oc({start:o,end:s}).some((function(e){return l(e)})));var r,a,o,i,l,s,u},isFirstOrLastSelectedDate:function(e){return function(e,t,n){return!!(t&&vc(e,t)||n&&vc(e,n))}(e,t,n)},isStartDate:function(e){return function(e,t){return!(!t||!vc(e,t))}(e,t)},isEndDate:function(e){return function(e,t){return!(!t||!vc(e,t))}(e,n)},isDateBlocked:L,numberOfMonths:h,isDateFocused:function(e){return!!P&&vc(e,P)},focusedDate:P,hoveredDate:T,onResetDates:function(){l({startDate:null,endDate:null,focusedInput:"startDate"})},onDateHover:function(e){if(e){if(e){var r=!L(e)||t&&vc(e,t),a=!o||!pc(e,ac(o,-1)),l=!i||!hc(e,i),s=ac(e,f-1),u=!o||!pc(s,o),d=!i||!hc(s,i),p=c&&f>1&&a&&l&&u&&d,h=t&&!n&&!c&&a&&l,m=!(f>1&&t)||mc(e,{start:t,end:ac(t,f-2)}),g=t&&vc(e,t)&&m;r&&(p||h||g)?O(e):null!==T&&O(null)}}else O(null)},onDateSelect:function(e){("endDate"===a||"startDate"===a)&&f>0&&c&&_c({minBookingDays:f,exactMinBookingDays:c,minBookingDate:o,maxBookingDate:i,isDateBlocked:I,startDate:e,endDate:null})?l({startDate:e,endDate:ac(e,f-1),focusedInput:null}):("endDate"===a&&t&&pc(e,t)||"startDate"===a&&n&&hc(e,n))&&!c&&_c({minBookingDays:f,isDateBlocked:I,startDate:e,endDate:null})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"startDate"===a&&!c&&_c({minBookingDays:f,isDateBlocked:I,endDate:n,startDate:e})?l({endDate:n,startDate:e,focusedInput:"endDate"}):"startDate"===a&&!c&&_c({minBookingDays:f,isDateBlocked:I,endDate:null,startDate:e})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"endDate"===a&&t&&!pc(e,t)&&!c&&_c({minBookingDays:f,isDateBlocked:I,startDate:t,endDate:e})&&l({startDate:t,endDate:e,focusedInput:null}),"endDate"!==a&&(!P||P&&!vc(e,P))&&k&&S(xc(h,e))},onDateFocus:A,goToPreviousMonths:j,goToPreviousMonthsByOneMonth:M,goToNextMonths:F,goToNextMonthsByOneMonth:B,goToDate:z,goToPreviousYear:$,goToNextYear:U}}const Sc={root:"lsd-calendar",container:"lsd-calendar-container",small:"lsd-calendar--small",medium:"lsd-calendar--medium",large:"lsd-calendar--large",open:"lsd-calendar--open",disabled:"lsd-calendar--disabled",header:"lsd-calendar-header",weekDay:"lsd-calendar__week_day",button:"lsd-calendar__button",changeYear:"lsd-calendar__change-year",changeYearActive:"lsd-calendar__change-year--active",changeYearIconContainer:"lsd-calendar__change-year-icon-container",year:"lsd-calendar-year",month:"lsd-calendar-month",day:"lsd-calendar-day",yearAndIcon:"lsd-calendar__year-and-icon",monthAndYear:"lsd-calendar__month-and-year",dayContainer:"lsd-calendar-day__container",dayRange:"lsd-calendar-day--range",daySelected:"lsd-calendar-day--selected",dayDisabled:"lsd-calendar-day--disabled",dayIsToday:"lsd-calendar-day--today",dayBorderLeft:"lsd-calendar-day--border-left",dayBorderRight:"lsd-calendar-day--border-right",dayBorderLeftAndRight:"lsd-calendar-day--border-left-and-right",dayBorderTopAndBottom:"lsd-calendar-day--border-top-and-bottom",todayIndicator:"lsd-calendar-day__today_indicator",monthTable:"lsd-calendar__month-table",nextMonthButton:"lsd-calendar__next-month-button",previousMonthButton:"lsd-calendar__previous-month-button",yearDropdown:"lsd-calendar__year-dropdown",yearDropdownHidden:"lsd-calendar__year-dropdown--hidden"},Cc=r.createContext(null),Tc=()=>r.useContext(Cc),Oc=(e,t,n)=>{if(!e)return{isValid:!1,date:null};const r=new Date(e+"T00:00:00");return{isValid:!Number.isNaN(+r)&&r>=t&&r<=n,date:r}},Dc=e=>new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().split("T")[0],Pc=e=>e.setHours(0,0,0,0),Nc=(e,t,n)=>!!(e&&t&&n)&&(Pc(t)<=Pc(e)&&Pc(n)>=Pc(e)),Ic=(e,t)=>{if(!e||!t)return!1;return Dc(e)===Dc(t)},Ac=e=>{const t=(e=>{const t=e.find((e=>"number"!=typeof e));return t?new Date(t.date):new Date})(e),n=new Date(t);n.setDate(n.getDate()-t.getDay());const r=[];for(let a=0;a<42;a++){const e=new Date(n);e.setDate(e.getDate()+a),r.push(e)}return r},Lc=(e,t)=>e&&e===t?null:t;function Rc(e,t){if(!e||!t)return!0;let n=new Date(Dc(new Date(e)));return new Date(Dc(new Date(t)))>n}const jc=(e,t)=>"large"===t?"startDate"===e?130:291:"medium"===t?"startDate"===e?120:267:"small"===t?"startDate"===e?107:239:0,Mc=({day:e,index:t,fullMonthDays:n,disabled:a=!1})=>{const o=n[t],{mode:i,startDate:l,endDate:s,onDateSelect:u}=Tc(),c=r.useRef(null),d=Pc(o)===Pc(new Date),f="range"===i&&Nc(o,l,s),p=r.useCallback((()=>u(o)),[o,u]),h=Ic(o,l),m="range"===i&&Ic(o,s),g=h||m||f;if(!e)return null;const v=((e,t,n,r,a)=>{if(!n)return"";if(!r||!a)return Sc.dayBorderLeftAndRight;const{prevIndex:o,nextIndex:i}=((e,t)=>{const n=e-1,r=e+1;return{prevIndex:n>=0?n:null,nextIndex:r<t.length?r:null}})(e,t),l=null!==o&&Nc(t[o],r,a),s=null!==i&&Nc(t[i],r,a),u=null!==o&&Ic(t[o],r)||l,c=null!==i&&Ic(t[i],r)||s;let d="";return n&&(d=e%7==0?c?Sc.dayBorderLeft:Sc.dayBorderLeftAndRight:e%7==6?u?Sc.dayBorderRight:Sc.dayBorderLeftAndRight:u&&c?"":u?Sc.dayBorderRight:c?Sc.dayBorderLeft:Sc.dayBorderLeftAndRight),d})(t,n,g,l,s);return We("td",{onClick:p,ref:c,className:Qe(Sc.dayContainer,g&&Sc.dayBorderTopAndBottom,a&&Sc.dayDisabled,d&&Sc.dayIsToday,v),children:Ge("div",{className:Sc.day,children:[We(Vs,{variant:"label2",children:parseInt(e,10)}),d&&We(Vs,{variant:"label2",className:Sc.todayIndicator,children:"\u25ac"})]})})},Fc=({year:e,monthNumber:t,size:n,yearStep:a=10})=>{const o=r.useRef(null),i=r.useRef(null),{goToDate:l,changeYearMode:s,setChangeYearMode:u}=Tc(),c=r.useRef(null),{y:d}=eu(c),[f,p]=r.useState((()=>parseInt(e)-a)),[h,m]=r.useState((()=>parseInt(e)+a)),g=Array.from({length:h-f+1},((e,t)=>f+t));Ys(o,(()=>{u(!1)}));return r.useEffect((()=>{if(s&&i.current&&c.current){const e=i.current.offsetTop,t=i.current.offsetHeight,n=e-c.current.clientHeight/2+t/2;c.current.scrollTop=n}}),[s]),r.useEffect((()=>{var e,t;const n=null==(e=null==c?void 0:c.current)?void 0:e.scrollHeight,r=null==(t=null==c?void 0:c.current)?void 0:t.clientHeight;if(!n||!r)return;const o=d/(n-r)*100;o>90&&m((e=>Math.min(e+a,Gc))),o<10&&p((e=>Math.max(e-a,Wc)))}),[d,a]),Ge("div",{ref:o,className:Qe(Sc.changeYear,s&&Sc.changeYearActive),onClick:()=>{u(!s)},children:[Ge("div",{className:Qe(Sc.year,Sc.yearAndIcon),children:[We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:e}),We("div",{className:Sc.changeYearIconContainer,children:We(s?Cs:Es,{color:"primary"})})]}),We("div",{className:Qe(Sc.yearDropdown,!s&&Sc.yearDropdownHidden),ref:c,children:g.map((r=>We("div",{className:Sc.year,onClick:()=>(e=>{const n=new Date(e,t,1);l(n),u(!1)})(r),ref:r===parseInt(e)?i:null,children:We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:r})},r)))})]})},Bc=({direction:e,onClick:t,className:n})=>{const r="previous"===e?js:Ms;return We("button",{className:Qe(Sc.button,n),type:"button",onClick:t,children:We(r,{color:"primary"})})},zc=({monthLabel:e,monthNumber:t,size:n})=>{const{goToPreviousMonths:r,goToNextMonths:a}=Tc(),[o,i]=e.split(" ");return Ge("div",{className:Sc.header,children:[We(Bc,{direction:"previous",onClick:r,className:Sc.previousMonthButton}),Ge("div",{className:Sc.monthAndYear,children:[We(Vs,{className:Sc.month,component:"span",variant:"large"===n?"label1":"label2",children:o}),We(Fc,{year:i,monthNumber:t,size:n})]}),We(Bc,{direction:"next",onClick:a,className:Sc.nextMonthButton})]})},$c=({weekdayLabels:e})=>We("tr",{children:e.map(((e,t)=>We("th",{children:We("div",{className:Sc.weekDay,children:We(Vs,{variant:"label2",children:e[0]})})},t)))}),Uc=({days:e})=>{const t=Ac(e),n=new Date(t[15]).getMonth();return We(qe,{children:Array.from({length:6}).map(((e,r)=>We("tr",{children:Array.from({length:7}).map(((e,a)=>{const o=7*r+a,i=t[o];return We(Mc,{index:o,day:i.getDate().toString(),fullMonthDays:t,disabled:i.getMonth()!==n},`day-${o}`)}))},`week-${r}`)))})},Hc=({size:e="large",year:t,month:n,firstDayOfWeek:r})=>{const a=Tc(),o=(null==a?void 0:a.size)??e,{days:i,weekdayLabels:l,monthLabel:s}=fc({year:t,month:n,firstDayOfWeek:r});return Ge(qe,{children:[We(zc,{monthLabel:s,monthNumber:n,size:o}),Ge("table",{className:Sc.monthTable,children:[We("thead",{children:We($c,{weekdayLabels:l})}),We("tbody",{children:We(Uc,{days:i})})]})]})},Vc={root:"lsd-tooltip-base",arrowTip:"lsd-tooltip-base__arrow-tip",content:"lsd-tooltip-base__content"},qc=({children:e,arrowOffset:t,arrowPosition:n="top",arrowSize:r=10,rootRef:a,...o})=>{const i=bs(o),l={width:`${r}px`,height:`${r}px`,transform:"rotate(45deg)"};return["top","bottom"].includes(n)?(l.left=`${t}px`,l[n]=`-${r/2}px`):(l.top=`${t}px`,l[n]=`-${r/2}px`),We("div",{ref:a,...ws(o),className:Qe(i.className,o.className,Vc.root),children:t?Ge(qe,{children:[We("div",{className:Vc.arrowTip,style:l}),We("div",{className:Vc.content,children:e})]}):e})};qc.classes=Vc;const Wc=1850,Gc=2100,Zc=({open:e,handleRef:t,size:n="large",mode:a="date",disabled:o=!1,onStartDateChange:i,onEndDateChange:l,onClose:s,onCalendarClickaway:u,startDate:c,endDate:d,calendarType:f="startDate",minDate:p=new Date(Wc,0,1),maxDate:h=new Date(Gc,0,1),tooltipArrowOffset:m,...g})=>{const v=bs(g),b=r.useRef(null),[y,w]=r.useState(c?Oc(c,p,h).date:null),[x,k]=r.useState(d?Oc(d,p,h).date:null),[_,E]=r.useState(!1);Ys(b,(t=>{e&&(u&&u(t),void 0===e&&s&&s())}));const{activeMonths:S,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P}=Ec({startDate:y,endDate:x,focusedInput:"startDate",onDatesChange:e=>{const t=((e,t,n,r)=>{let a=t,o=n;const i=r.startDate;return i?("startDate"===e?(!o||o&&i.getTime()<=o.getTime())&&(a=i):"endDate"===e&&(!a||a&&i.getTime()>=a.getTime())&&(o=i),{newStartDate:a,newEndDate:o}):{newStartDate:a,newEndDate:o}})(f,y,x,e),{newStartDate:n,newEndDate:r}=t;n!==y&&(null==i||i(n??new Date),w(n)),r!==x&&"range"===a&&(null==l||l(r??new Date),k(r))},numberOfMonths:1});r.useEffect((()=>{const e=Oc(c,p,h);if(Ic(e.date,y)||w(e.isValid?e.date:null),"range"===a){const e=Oc(d,p,h);Ic(e.date,x)||k(e.isValid?e.date:null)}}),[c,d,a,p,h,y,x]),r.useEffect((()=>{y&&C(y)}),[y]),r.useEffect((()=>{x&&C(x)}),[x]);const N=nu(t,e);return We(Cc.Provider,{value:{size:n,mode:a,startDate:y,endDate:x,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P,changeYearMode:_,setChangeYearMode:E},children:We(qc,{...g,className:Qe({...ws(g)},v.className,g.className,Sc.root,Sc[n],e&&Sc.open,o&&Sc.disabled),rootRef:b,style:{...N,...g.style??{}},arrowOffset:m,children:We("div",{className:Qe(Sc.container),children:S.map(((e,t)=>We(Hc,{year:e.year,month:e.month,firstDayOfWeek:0,size:n},`${e.year}-${e.month}-${t}`)))})})})};Zc.classes=Sc;const Qc={root:"lsd-card",small:"lsd-card--small",medium:"lsd-card--medium",large:"lsd-card--large"},Yc=r.createContext(null),Xc=({size:e="large",children:t,...n})=>{const r=bs(n);return We(Yc.Provider,{value:{size:e},children:We("div",{...ws(n),className:Qe(r.className,Qc.root,Qc[e]),children:t})})};Xc.classes=Qc;const Kc={root:"lsd-card-body"},Jc=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,t.className,Kc.root),children:e})};Jc.classes=Kc;const ed={root:"lsd-card-header",title:"lsd-card-header__title",small:"lsd-card-header--small",medium:"lsd-card-header--medium",large:"lsd-card-header--large"},td=({size:e="large",children:t,...n})=>{const a=bs(n),o=r.useContext(Yc),i=(null==o?void 0:o.size)??e;return We("div",{...ws(n),className:Qe(a.className,n.className,ed.root,ed[i]),children:We(Vs,{className:ed.title,component:"div",variant:"large"===i?"label1":"label2",children:t})})};td.classes=ed;const nd=r.createContext(null),rd=ks((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75C2.27233 1.75 1.75 2.27233 1.75 2.91667V11.0833C1.75 11.7277 2.27233 12.25 2.91667 12.25H11.0833C11.7277 12.25 12.25 11.7277 12.25 11.0833V2.91667C12.25 2.27233 11.7277 1.75 11.0833 1.75H2.91667ZM9.91667 6.41667H4.08333V7.58333H9.91667V6.41667Z",fill:"black"})})),{filled:!0}),ad={root:"lsd-checkbox",input:"lsd-checkbox__input",icon:"lsd-checkbox__icon",label:"lsd-checkbox__label",focused:"lsd-checkbox--focused",disabled:"lsd-checkbox--disabled",indeterminate:"lsd-checkbox--indeterminate",large:"lsd-checkbox--large",medium:"lsd-checkbox--medium",small:"lsd-checkbox--small"},od=({name:e,size:t="large",onChange:n,checked:a,defaultChecked:o,disabled:i=!1,indeterminate:l=!1,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),[p,h]=r.useState(!1),m=Ye({value:a,defaultValue:o??!1,onChange:n,ref:f}),g=r.useContext(nd),v=(null==g?void 0:g.size)??t;return r.useEffect((()=>{if(!f.current)return;const e=()=>h(!0),t=()=>h(!1);return f.current.addEventListener("focus",e),f.current.addEventListener("blur",t),()=>{var n,r;null==(n=f.current)||n.removeEventListener("focus",e),null==(r=f.current)||r.removeEventListener("blur",t)}}),[f.current]),Ge(Vs,{color:"primary",variant:"large"===v?"label1":"label2",component:"label","aria-disabled":i?"true":"false",...ws(c),className:Qe(d.className,c.className,ad.root,ad[v],p&&ad.focused,i&&ad.disabled,l&&ad.indeterminate),children:[We("input",{ref:f,name:e,type:"checkbox",disabled:i,checked:m.value,onChange:m.onChange,defaultChecked:o,className:Qe(s.className,ad.input),...s}),l?We(rd,{color:"primary",focusable:!1}):m.value?We(Ts,{color:"primary",focusable:!1}):We(Os,{color:"primary",focusable:!1}),We("span",{className:ad.label,children:u})]})};od.classes=ad;const id={root:"lsd-checkbox-group",label:"lsd-checkbox-group__label"},ld=({size:e="large",label:t,children:n,...r})=>{const a=bs(r);return We(nd.Provider,{value:{size:e},children:Ge("div",{...ws(r),className:Qe(a.className,r.className,id.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:id.label,...ys(r),children:t}),n]})})};ld.classes=id;const sd={root:"lsd-collapse-header",trigger:"lsd-collapse-header__trigger",label:"lsd-collapse-header__label",icons:"lsd-collapse-header__icons",icon:"lsd-collapse-header__icon",menuIcon:"lsd-collapse-header__menu-icon",open:"lsd-collapse-header--open",disabled:"lsd-collapse-header--disabled",small:"lsd-collapse-header--small",medium:"lsd-collapse-header--medium",large:"lsd-collapse-header--large"},ud=({label:e,disabled:t=!1,open:n,setOpen:r,size:a="large",onTrigger:o,...i})=>{const l=bs(i);return We("div",{...ws(i),className:Qe(l.className,i.className,sd.root,sd[a],t&&sd.disabled,n&&sd.open),children:Ge("button",{className:Qe(sd.trigger),onClick:o,children:[We(Vs,{color:"primary",component:"label",variant:"small"===a?"label2":"label1",className:sd.label,children:e}),We("div",{className:sd.icons,children:We(n?Cs:Es,{color:"primary",className:sd.menuIcon})})]})})};ud.classes=sd;const cd={root:"lsd-collapse",content:"lsd-collapse__content",open:"lsd-collapse--open",disabled:"lsd-collapse--disabled"},dd=({label:e,disabled:t=!1,size:n="large",open:a,children:o,...i})=>{const l=bs(i),s=r.useRef(null),[u,c]=r.useState(a??!1),d=e=>{if(void 0===a)return c(e);i.onChange&&i.onChange(e)};return r.useEffect((()=>{t&&u&&d(!1)}),[t,u,d]),r.useEffect((()=>{void 0!==a&&c(a)}),[a]),Ge("div",{...ws(i),ref:s,className:Qe(l.className,i.className,cd.root,t&&cd.disabled,u&&cd.open),children:[We(ud,{label:e,open:u,setOpen:c,size:n,onTrigger:()=>!t&&d(!u),disabled:t,...ys(i)}),u&&We("div",{className:cd.content,children:o})]})};dd.classes=cd;const fd={root:"lsd-date-field",label:"lsd-date-field__label",inputContainer:"lsd-date-field__input-container",input:"lsd-date-field__input-container__input",inputFilled:"lsd-date-field__input-container__input--filled",icon:"lsd-date-field__input-container__icon",noIcon:"lsd-date-field__input-container__no-icon",iconButton:"lsd-date-field__input-container__icon-button",supportingText:"lsd-date-field__supporting-text",disabled:"lsd-date-field--disabled",error:"lsd-date-field--error",large:"lsd-date-field--large",medium:"lsd-date-field--medium",small:"lsd-date-field--small",outlined:"lsd-date-field--outlined",underlined:"lsd-date-field--underlined"},pd=({label:e,size:t="large",error:n=!1,errorIcon:a=!1,clearButton:o,supportingText:i,children:l,value:s,placeholder:u,defaultValue:c,disabled:d,onChange:f,icon:p,onIconClick:h,inputProps:m={},calendarIconRef:g,variant:v="underlined",...b})=>{const y=bs(b),w=r.useRef(null),x=Ye({defaultValue:c,value:s,onChange:f,ref:w}),k=(null==m?void 0:m.id)??(b.id||"date-field")+"-input";return Ge("div",{"aria-disabled":d?"true":"false",...b,className:Qe({...ws(b)},b.className,y.className,fd.root,fd[t],d&&fd.disabled,n&&fd.error),children:[e&&We(Vs,{htmlFor:k,className:fd.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Qe(fd.inputContainer,"outlined"===v?fd.outlined:fd.underlined),children:[We("input",{id:k,type:"date",placeholder:u,...m,ref:w,value:x.value||"",onChange:x.onChange,className:Qe(m.className,fd.input,x.filled&&fd.inputFilled),max:m.max||"9999-12-31"}),p?We("span",{className:fd.icon,onClick:()=>!d&&h&&h(),ref:g,children:p}):n&&a?We("span",{className:fd.icon,children:We(Ns,{color:"primary"})}):o&&x.filled?We("span",{onClick:()=>!d&&x.setValue(""),className:fd.icon,children:We(Ps,{color:"primary"})}):We("span",{className:fd.noIcon})]}),i&&We("div",{className:Qe(fd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:i})}),l]})};pd.classes=fd;const hd={root:"lsd-date-picker",calendar:"lsd-date-picker__calendar",large:"lsd-date-picker--large",medium:"lsd-date-picker--medium",small:"lsd-date-picker--small"},md=(e,t)=>t&&(null==e?void 0:e.composedPath().includes(t))||!1,gd=({label:e,size:t="large",value:n,onChange:a,withCalendar:o=!0,variant:i="underlined",...l})=>{const s=bs(l),u=r.useRef(null),c=r.useRef(null),[d,f]=r.useState(!1),p=void 0!==n,h=Ye({value:n,defaultValue:"",onChange:a,getInput:()=>{var e;return null==(e=u.current)?void 0:e.querySelector(`input.${pd.classes.input}`)}});return We("div",{id:(l.id||"date-picker")+"-input",ref:u,className:Qe({...ws(l)},l.className,s.className,hd.root,hd[t]),children:We(pd,{label:e,size:t,variant:i,icon:o&&We(Us,{color:"primary"}),onIconClick:()=>f((e=>!e)),value:p||d?h.value:void 0,onChange:h.onChange,calendarIconRef:c,...l,children:We(lu,{id:"calendar",children:o&&We(Zc,{...ys(l),onStartDateChange:e=>(e=>h.setValue(Dc(e)))(e),open:d,onCalendarClickaway:e=>{md(e,c.current)||f(!1)},handleRef:u,startDate:h.value,disabled:l.disabled,className:hd.calendar})})})})};gd.classes=hd;const vd={root:"lsd-date-range-picker",calendar:"lsd-date-picker__calendar",withCalendar:"lsd-date-range-picker--with-calendar",openCalendar:"lsd-date-range-picker--calendar-open",disabled:"lsd-date-range-picker--disabled",inputContainer:"lsd-date-range-picker__input-container",icon:"lsd-date-range-picker__icon",large:"lsd-date-range-picker--large",medium:"lsd-date-range-picker--medium",small:"lsd-date-range-picker--small",label:"lsd-date-range-picker__label",supportingText:"lsd-date-range-picker__supporting-text",outlined:"lsd-date-range-picker--outlined",separator:"lsd-date-range-picker__separator"},bd=({startValue:e,endValue:t,onStartDateChange:n,onEndDateChange:a,size:o="large",variant:i="underlined",withCalendar:l=!0,label:s,supportingText:u,disabled:c,...d})=>{const f=bs(d),p=r.useRef(null),h=r.useRef(null),m=r.useRef(null),[g,v]=r.useState(null),b=void 0!==e,y=void 0!==t,w=Ye({value:e,defaultValue:"",onChange:n,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${pd.classes.input}`)[0]}}),x=Ye({value:t,defaultValue:"",onChange:a,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${pd.classes.input}`)[1]}}),k={...d,size:o,label:void 0,supportingText:void 0},_="startDate"===g||"endDate"===g;return Ge("div",{ref:p,className:Qe({...ws(d)},f.className,d.className,vd.root,vd[o],l&&vd.withCalendar,_&&vd.openCalendar,c&&vd.disabled),children:[s&&We(Vs,{className:vd.label,variant:"label2",component:"label",children:s}),Ge("div",{className:Qe(d.className,vd.inputContainer,"outlined"===i&&vd.outlined),children:[We(pd,{variant:i,calendarIconRef:m,icon:l&&We(Us,{color:"primary"}),value:b||_?w.value:void 0,onIconClick:()=>v((e=>Lc(e,"startDate"))),onChange:e=>{x.value&&!Rc(e.target.value,x.value)||w.onChange(e)},...k}),We("div",{className:vd.separator}),We(pd,{variant:i,calendarIconRef:h,icon:l&&We(Us,{color:"primary"}),value:y||_?x.value:void 0,onIconClick:()=>v((e=>Lc(e,"endDate"))),onChange:e=>{w.value&&!Rc(w.value,e.target.value)||x.onChange(e)},...k})]}),u&&We("div",{className:Qe(vd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:u})}),l&&We(lu,{id:"calendar",children:We(Zc,{...ys(d),onStartDateChange:e=>{w.setValue(Dc(e)),v("endDate")},onEndDateChange:e=>x.setValue(Dc(e)),onCalendarClickaway:e=>{md(e,h.current)||md(e,m.current)||v(null)},calendarType:g,open:_,onClose:()=>v(null),handleRef:p,mode:"range",disabled:c,startDate:w.value,endDate:x.value,className:vd.calendar,tooltipArrowOffset:jc(g,o),size:o})})]})};bd.classes=vd;const yd={root:"lsd-dropdown",label:"lsd-dropdown__label",buttonContainer:"lsd-dropdown__button-container",trigger:"lsd-dropdown__trigger",optionLabel:"lsd-dropdown__option-label",icons:"lsd-dropdown__icons",icon:"lsd-dropdown__icon",menuIcon:"lsd-dropdown__menu-icon",supportingText:"lsd-dropdown__supporting-text",open:"lsd-dropdown--open",error:"lsd-dropdown--error",disabled:"lsd-dropdown--disabled",small:"lsd-dropdown--small",medium:"lsd-dropdown--medium",large:"lsd-dropdown--large",outlined:"lsd-dropdown--outlined",underlined:"lsd-dropdown--underlined"},wd=({label:e,size:t="large",error:n=!1,disabled:a=!1,supportingText:o,triggerLabel:i,value:l=[],onChange:s,options:u=[],multi:c=!1,variant:d="outlined",isOpen:f,onToggle:p,menuProps:h={},...m})=>{const g=bs(m),v=r.useRef(null),b=void 0!==f,[y,w]=r.useState(!1);b&&f!==y&&w(f);const{select:x,isSelected:k,selected:_}=((e,t,{onDone:n,onChange:a,multi:o=!1}={})=>{const i=r.useMemo((()=>Object.fromEntries(e.map((e=>[e.value,e])))),[e]),[l,s]=r.useState(Array.isArray(t)?t:t?[t]:[]),u=r.useMemo((()=>ds(l,(()=>!0))),[l]),c=r.useMemo((()=>l.map((e=>i[e]))),[l,i]);r.useEffect((()=>{a&&s(Array.isArray(t)?t:t?[t]:[])}),[t,a]);const d=e=>"string"==typeof e?e:e.value;return{selected:c,isSelected:e=>!!u[d(e)],select:e=>{const t=d(e),r=o?u[t]?l.filter((e=>e!==t)):[...l,t]:[t];a?a(o?r:r[0]):s(r),!o&&n&&n(o?r:r[0])}}})(u,l,{multi:c,onChange:s,onDone:()=>{w(!1)}}),E=e=>{b?p&&p(e):w(e)};r.useEffect((()=>{a&&y&&!b&&w(!1)}),[y,a,b]);const S=(null==m?void 0:m.id)??(m.id||"dropdown")+"-input";return Ge("div",{ref:v,...ws(m),className:Qe(g.className,m.className,yd.root,yd[t],n&&yd.error,a&&yd.disabled,y&&yd.open,"outlined"===d?yd.outlined:yd.underlined),children:[e&&We(Vs,{htmlFor:S,className:yd.label,variant:"label2",component:"label",children:e}),We("div",{className:yd.buttonContainer,children:Ge("button",{id:S,className:Qe(yd.trigger),onClick:()=>{a||E(!y)},children:[We(Vs,{color:"primary",component:"label",variant:"large"===t?"label1":"label2",className:yd.optionLabel,children:_.length>0?_.map((e=>e.name)).join(", "):i}),Ge("div",{className:yd.icons,children:[n&&We(Ns,{color:"primary",className:yd.icon}),We(y?Cs:Es,{color:"primary",className:yd.menuIcon})]})]})}),o&&We(Vs,{variant:"large"===t?"label1":"label2",component:"p",className:yd.supportingText,children:o}),We(lu,{id:"dropdown",children:We(ru,{handleRef:v,open:y,onClose:()=>E(!1),size:t,genericFontFamily:m.genericFontFamily,...h,children:u.map((e=>We(Ws,{size:t,tabIndex:0,onClick:x.bind(null,e),withIcon:c,label:e.name,selected:k(e),onKeyDown:t=>"Enter"===t.key&&x(e)},e.value)))})})]})};wd.classes=yd;const xd=r.createContext(null),kd={root:"lsd-icon-button",outlined:"lsd-icon-button--outlined",filled:"lsd-icon-button--filled",disabled:"lsd-icon-button--disabled",small:"lsd-icon-button--small",medium:"lsd-icon-button--medium",large:"lsd-icon-button--large"},_d=({size:e,disabled:t,variant:n,children:a,...o})=>{const i=bs(o),l=r.useContext(xd),s=e??(null==l?void 0:l.size)??"large",u=n??(null==l?void 0:l.variant)??"outlined",c=t??(null==l?void 0:l.disabled)??!1;return We("button",{...ws(o),className:Qe(i.className,o.className,kd.root,kd[s],kd[u],c&&kd.disabled),children:a})};_d.classes=kd;const Ed={root:"lsd-icon-button-group",outlined:"lsd-icon-button-group--outlined",filled:"lsd-icon-button-group--filled",disabled:"lsd-icon-button-group--disabled",small:"lsd-icon-button-group--small",medium:"lsd-icon-button-group--medium",large:"lsd-icon-button-group--large"},Sd=({size:e="large",disabled:t,variant:n="outlined",children:r,...a})=>{const o=bs(a);return We("div",{...ws(a),className:Qe(o.className,a.className,Ed.root,Ed[e],Ed[n],t&&Ed.disabled),children:We(xd.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};Sd.classes=Ed;const Cd={root:"lsd-modal",small:"lsd-modal--small",medium:"lsd-modal--medium",large:"lsd-modal--large",xsmall:"lsd-modal--extra-small",modalContainer:"lsd-modal__container",header:"lsd-modal__header",title:"lsd-modal__title",subtitle:"lsd-modal__subtitle",titleAndSubtitleContainer:"lsd-modal__title-and-subtitle-container",closeIcon:"lsd-modal__close-icon"},Td=({isOpen:e,size:t="large",title:n,subtitle:r,onClose:a,children:o,...i})=>{const l=bs(i);return e?We("div",{...ws(i),className:Qe(l.className,Cd.root,Cd[t]),onClick:e=>{e.target===e.currentTarget&&a&&a()},children:Ge("div",{className:Qe(Cd.modalContainer),children:[Ge("div",{className:Cd.header,children:[Ge("div",{className:Cd.titleAndSubtitleContainer,children:[!!n&&We(Vs,{className:Cd.title,component:"div",variant:"small"===t?"h6":"h5",children:n}),!!r&&We(Vs,{className:Cd.subtitle,variant:"small"===t?"label2":"label1",component:"div",children:r})]}),We(_d,{onClick:a,className:Cd.closeIcon,size:"medium",children:We(Ps,{color:"primary"})})]}),o]})}):null};Td.classes=Cd;const Od={root:"lsd-modal-body"},Dd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Od.root),children:e})};Dd.classes=Od;const Pd={root:"lsd-modal-footer"},Nd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Pd.root),children:e})};Nd.classes=Pd;const Id={root:"lsd-number-input",label:"lsd-number-input__label",mainContainer:"lsd-number-input__main-container",inputContainer:"lsd-number-input__input-container",input:"lsd-number-input__input",errorIcon:"lsd-number-input__error-icon",plusMinusIcons:"lsd-number-input__plus-minus-icons",supportingText:"lsd-number-input__supporting-text",disabled:"lsd-number-input--disabled",error:"lsd-number-input--error",large:"lsd-number-input--large",medium:"lsd-number-input--medium",small:"lsd-number-input--small"},Ad=({label:e,size:t="large",error:n=!1,errorIcon:a=!1,supportingText:o,value:i,placeholder:l,defaultValue:s,disabled:u,onChange:c,icon:d,inputProps:f={},id:p="number-input",min:h=Number.MIN_SAFE_INTEGER,max:m=Number.MAX_SAFE_INTEGER,step:g=1,...v})=>{const b=r.useRef(null),y=bs(v),w=Ye({defaultValue:s,value:i,onChange:c,ref:b});return Ge("div",{"aria-disabled":u?"true":"false",...ws(v),className:Qe(v.className,y.className,Id.root,Id[t],u&&Id.disabled,n&&Id.error),children:[e&&We(Vs,{htmlFor:p,className:Id.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Id.mainContainer,children:[We(_d,{onClick:()=>{if(u)return;const e=Math.max(h,Number(w.value||"0")-g);w.setValue(e.toString())},className:Id.plusMinusIcons,children:We(Hs,{color:"primary"})}),Ge("div",{className:Id.inputContainer,children:[We("input",{id:p,type:"number",placeholder:l,ref:b,className:Qe(f.className,Id.input),value:w.value||"",onChange:w.onChange,min:h,max:m,step:g,disabled:u,...f}),n&&!!a&&We("span",{className:Id.errorIcon,children:We(Ns,{color:"primary"})})]}),We(_d,{onClick:()=>{if(u)return;const e=Math.min(m,Number(w.value||"0")+g);w.setValue(e.toString())},className:Id.plusMinusIcons,children:We(_s,{color:"primary"})})]}),o&&We("div",{className:Qe(Id.supportingText),children:We(Vs,{variant:"label2",component:"p",children:o})})]})};Ad.classes=Id;const Ld=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}},Rd=({children:e})=>{const[t,n]=r.useState(!1);return r.useEffect((()=>{if("undefined"==typeof window)return;const e=document.querySelector("body");let t=e.querySelector("#lsd-presentation");return t||(t=document.createElement("div"),t.id="lsd-presentation"),e.appendChild(t),n(!0),()=>{Ld((()=>e.removeChild(t)))}}),[]),We(au.Provider,{value:{initialized:t},children:e})},jd={root:"lsd-quote",indentedInline:"lsd-quote--indented-inline",parentheses:"lsd-quote--parentheses",text:"lsd-quote__text"},Md=({mode:e="indented-line",children:t,...n})=>{const r=bs(n);return We(qe,{children:We("div",{...ws(n),className:Qe(r.className,n.className,jd.root,e&&"parentheses"===e?jd.parentheses:jd.indentedInline),children:We(Vs,{color:"primary",component:"label",variant:"label1",children:t})})})};Md.classes=jd;const Fd=r.createContext(null),Bd={root:"lsd-radio-button",input:"lsd-radio-button__input",label:"lsd-radio-button__label",disabled:"lsd-radio-button--disabled",large:"lsd-radio-button--large",medium:"lsd-radio-button--medium",small:"lsd-radio-button--small"},zd=({size:e="large",onChange:t,checked:n,defaultChecked:a,disabled:o=!1,value:i,name:l,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),p=r.useContext(Fd),h=(null==p?void 0:p.size)??e,m=(null==p?void 0:p.name)??l??"",g=p?p.value===i:n,v=Ye({value:g,defaultValue:a??!1,onChange:t,ref:f});return Ge(Vs,{color:"primary",variant:"large"===h?"label1":"label2",component:"label","aria-disabled":o?"true":"false",...ws(c),className:Qe(d.className,c.className,Bd.root,Bd[h],o&&Bd.disabled),children:[We("input",{ref:f,name:m,value:i,type:"radio",checked:v.value,onChange:e=>{p?p.setActiveRadioButton(e.target.value):v.onChange(e)},defaultChecked:a,className:Qe(s.className,Bd.input),...s}),v.value?We($s,{color:"primary",focusable:!1}):We(zs,{color:"primary",focusable:!1}),We("span",{className:Bd.label,children:u})]})};zd.classes=Bd;const $d={root:"lsd-radio-button-group",label:"lsd-radio-button-group__label"},Ud=({size:e="large",label:t,value:n,name:a,onChange:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(n);return r.useEffect((()=>d(n)),[n]),We(Fd.Provider,{value:{value:c,setActiveRadioButton:e=>{o?o(e):d(e)},name:a,size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,$d.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:$d.label,children:t&&t}),i]})})};Ud.classes=$d;const Hd=r.createContext(null),Vd={root:"lsd-tab-item",text:"lsd-tab-item--text",icon:"lsd-tab-item--icon",disabled:"lsd-tab-item--disabled",selected:"lsd-tab-item--selected",small:"lsd-tab-item--small",medium:"lsd-tab-item--medium",large:"lsd-tab-item--large",withIcon:"lsd-tab-item--with-icon"},qd=({name:e,size:t="large",selected:n=!1,inactive:a=!1,icon:o,children:i,...l})=>{const s=bs(l),u=r.useContext(Hd),c=(null==u?void 0:u.size)??t,d=u?u.activeTab===e:n;return Ge("button",{...ws(l),className:Qe(s.className,l.className,Vd.root,Vd[c],d&&Vd.selected,l.disabled&&Vd.disabled,!!o&&Vd.withIcon),onClick:t=>{l.onClick&&l.onClick(t),a||(null==u?void 0:u.setActiveTab)&&u.setActiveTab(e)},children:[We(Vs,{component:"span",className:Vd.text,variant:"small"===c?"label2":"label1",children:i}),o&&We("span",{className:Vd.icon,children:o})]})};qd.classes=Vd;const Wd={root:"lsd-table-body",toolbar:"lsd-table-body__toolbar",row:"lsd-table-body__row"},Gd=({options:e=[],size:t="large",buttonLabel:n="Button",toolbar:r,children:a,...o})=>{const i=bs(o);return Ge("div",{...ws(o),className:Qe(i.className,o.className,Wd.root),children:[r&&We("div",{className:Qe(Wd.toolbar),children:r}),We("table",{children:a})]})};Gd.classes=Wd;const Zd={root:"lsd-table-header"},Qd=({size:e="large",children:t,...n})=>{const r=bs(n);return We("div",{...ws(n),className:Qe(r.className,n.className,Zd.root),children:t})};Qd.classes=Zd;const Yd={root:"lsd-table",small:"lsd-table--small",medium:"lsd-table--medium",large:"lsd-table--large"},Xd=r.createContext(null),Kd=()=>r.useContext(Xd),Jd=({size:e="large",type:t="default",headerOptions:n,header:r,toolbar:a,children:o,...i})=>{const l=bs(i);return We(Xd.Provider,{value:{size:e,type:t,headerOptions:n},children:Ge("div",{...ws(i),className:Qe(l.className,Yd.root,Yd[e]),children:[We(Qd,{children:r}),We(Gd,{toolbar:a,options:n,children:o})]})})};Jd.classes=Yd;const ef={root:"lsd-table-item",large:"lsd-table-item--large",medium:"lsd-table-item--medium",small:"lsd-table-item--small"},tf=({size:e="large",children:t,...n})=>{const r=bs(n),a=Kd(),o=(null==a?void 0:a.size)??e;return We("td",{...ws(n),className:Qe(r.className,n.className,ef.root,ef[o]),children:t})};tf.classes=ef;const nf={root:"lsd-table-row"},rf=({size:e="large",type:t="default",children:n,...r})=>{const a=bs(r),o=Kd(),i=(null==o?void 0:o.type)??t;return Ge("tr",{...ws(r),className:Qe(a.className,r.className,nf.root),children:["checkbox"===i&&We("td",{className:ef.root,children:We(od,{})}),"radio"===i&&We("td",{className:ef.root,children:We(zd,{value:"1"})}),n]})};rf.classes=nf;const af=r.createContext(null),of=(e=0)=>{let t=e-1;return()=>(t++,t)},lf="undefined"==typeof DOMRectReadOnly?null:new DOMRectReadOnly(0,0,0,0),sf=of(),uf=(e,t)=>{const n=(()=>{const{observe:e,unobserve:t,ready:n}=r.useContext(af)??{};return r.useMemo((()=>({observe:e,unobserve:t,ready:n})),[e,t,n])})(),a=r.useMemo((()=>t??sf().toString()),[t]),o=((e,t)=>{var n;const a=r.useContext(af);return(null==(n=null==a?void 0:a.rect)?void 0:n[e])??t})(a)??lf;return r.useEffect((()=>{if(n&&n.ready)return e.current&&n.observe(a,e),()=>{n.unobserve(a)}}),[n.ready,e.current]),o},cf=(e,t,n,r)=>-1===e?t:n-(r+t),df=(e,t)=>{var n;const a=uf(e),[o,i]=r.useState((null==(n=null==e?void 0:e.current)?void 0:n.scrollLeft)??0),[l,s]=r.useState(0),[u,c]=r.useState(0),d=r.useRef(null);((e,t,n,a,o)=>{const i=r.useMemo((()=>"string"==typeof e?e:e()),[]),l=r.useMemo((()=>"function"==typeof t?t():t),[t]);r.useEffect((()=>{if((null==l?void 0:l.addEventListener)&&(null==l?void 0:l.removeEventListener))return l.addEventListener(i,n,a),()=>{l.removeEventListener(i,n,a)}}),[i,l])})("scroll",e.current,(e=>{i(e.target.scrollLeft)}),{passive:!0});r.useEffect((()=>{if(d.current&&clearTimeout(d.current),!e.current)return;const{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.current;c(cf(1,t,n,r)),s(cf(-1,t,n,r))}),[a,o,null==t?void 0:t.deps]);const f=(n,r)=>{const{clientWidth:a,scrollLeft:o}=e.current,i=Array.from(e.current.childNodes).find((e=>e.getBoundingClientRect().x>=0)),l=Math.max(r??a/3,i?i.clientWidth:0);e.current.scrollTo({behavior:(null==t?void 0:t.scrollBehavior)??"smooth",left:o+l*n})};return r.useMemo((()=>({right:u,left:l,toRight:f.bind(null,1),toLeft:f.bind(null,-1)})),[u,l])},ff={root:"lsd-tabs",fullWidth:"lsd-tabs--full-width",withScrollControls:"lsd-tabs--with-scroll-controls",leftScrollControl:"lsd-tabs__left-scroll-control",rightScrollControl:"lsd-tabs__right-scroll-control"},pf=({size:e="large",fullWidth:t=!1,scrollControls:n=!1,onChange:a,activeTab:o,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(o);r.useEffect((()=>d(o)),[o]);const f=df(u,{scrollBehavior:"smooth",deps:[i]}),p=0!==f.left||0!==f.right;return We(Hd.Provider,{value:{activeTab:c,setActiveTab:e=>{a?a(e):d(e)},size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,ff.root,t&&ff.fullWidth,n&&p&&ff.withScrollControls),children:[n&&p&&We(qd,{inactive:!0,name:"Prev",disabled:0===f.left,onClick:()=>f.toLeft(),className:ff.leftScrollControl,children:We(js,{color:"primary"})}),i,n&&p&&We(qd,{inactive:!0,name:"Next",disabled:0===f.right,onClick:()=>f.toRight(),className:ff.rightScrollControl,children:We(Ms,{color:"primary"})})]})})};pf.classes=ff;const hf={root:"lsd-tag",label:"lsd-tag__label",outlined:"lsd-tag--outlined",filled:"lsd-tag--filled",disabled:"lsd-tag--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},mf=({variant:e="outlined",disabled:t,icon:n,iconDirection:r="left",children:a,size:o="large",...i})=>{const l=bs(i);return Ge("div",{"aria-label":a,...ws(i),className:Qe(l.className,i.className,hf.root,hf[e],t&&hf.disabled,hf[o]),children:["left"===r&&n,We(Vs,{variant:"small"===o?"label2":"label1",className:hf.label,component:"span",children:a}),"right"===r&&n]})};mf.classes=hf;var gf=Hi,vf=0;var bf=function(e){var t=++vf;return gf(e)+t};const yf={root:"lsd-text-field",inputContainer:"lsd-text-field__input-container",label:"lsd-text-field__label",input:"lsd-text-field__input",icon:"lsd-text-field__icon",clearButton:"lsd-text-field__clear-button",supportingText:"lsd-text-field__supporting-text",disabled:"lsd-text-field--disabled",error:"lsd-text-field--error",large:"lsd-text-field--large",medium:"lsd-text-field--medium",small:"lsd-text-field--small",outlined:"lsd-text-field--outlined",underlined:"lsd-text-field--underlined"},wf=({size:e="large",label:t,icon:n,error:a=!1,errorIcon:o=!1,clearButton:i,supportingText:l,children:s,value:u,placeholder:c,defaultValue:d,disabled:f,onChange:p,inputProps:h={},labelProps:m={},variant:g="underlined",...v})=>{const b=bs(v),y=r.useRef(null),w=Ye({defaultValue:d,value:u,onChange:p,ref:y}),x=h.id||bf("TextField-");return Ge("div",{"aria-disabled":f?"true":"false",...ws(v),className:Qe(b.className,v.className,yf.root,yf[e],f&&yf.disabled,a&&yf.error,"outlined"===g?yf.outlined:yf.underlined),children:[t&&We(Vs,{variant:"label2",component:"label",htmlFor:x,...m,className:Qe(yf.label,m.className),children:t}),Ge("div",{className:yf.inputContainer,children:[We("input",{id:x,placeholder:c,ref:y,value:w.value,onChange:w.onChange,...h,className:Qe(h.className,yf.input)}),a&&o?We(Ns,{color:"primary",className:yf.icon}):i&&w.filled?We(_d,{disabled:f,onClick:()=>!f&&w.setValue(""),"aria-label":"clear",className:yf.clearButton,children:We(Ps,{color:"primary",className:yf.icon})}):n]}),l&&We("div",{className:Qe(yf.supportingText),children:We(Vs,{variant:"large"===e?"label1":"label2",component:"p",children:l})})]})};wf.classes=yf;const xf={vars:{lsd:(...e)=>`--${["lsd",...e].join("-")}`,typography:(e,t)=>xf.vars.lsd(e,t),color:(e,t)=>xf.vars.lsd(e,t),wrap:e=>`var(${e})`},define:(e,t)=>`${e}: ${t};`},kf=(()=>{const e={};return t=>{const n=t.name;return e[n]&&"undefined"!=typeof window||(e[n]=(e=>{const t=[],n=[],r=fs.map((()=>[])),a=fs.map((()=>[]));ps.forEach((n=>{ms.forEach((r=>{var a;const o=(null==(a=e.typography[n][r])?void 0:a.toString())??"unset";t.push(xf.define(xf.vars.typography(n,r),o))}))})),t.push(xf.define(xf.vars.lsd("typography","generic-font-family"),e.typographyGlobal.genericFontFamily)),fs.forEach(((t,n)=>{ps.forEach((r=>{ms.forEach((o=>{var i,l,s,u;const c=e.breakpoints[t].typography[r][o],d=n>0?null==(u=null==(s=null==(l=null==(i=e.breakpoints)?void 0:i[fs[n-1]])?void 0:l.typography)?void 0:s[r])?void 0:u[o]:e.typography[r][o];c&&c!==d&&a[n].push(xf.define(xf.vars.typography(r,o),c.toString()))}))}))}));{const{primary:n,secondary:r,...a}=e.palette,o=a;t.push(xf.define(xf.vars.color("theme","primary"),n),xf.define(xf.vars.color("theme","secondary"),r),...Object.keys(o).flatMap((e=>Object.keys(o[e]).map((t=>xf.define(xf.vars.color(e,t),o[e][t]))))))}e.spacing.map((e=>{const n=xf.vars.lsd("spacing",e.toString());t.push(xf.define(n,`${e}px`))})),fs.map(((t,o)=>{n.push(`@media (min-width: ${e.breakpoints[t].width}px) {\n :root {\n ${a[o].join("\n")}\n }\n\n ${r[o]}\n }`)}));const i=`\n ${t.join("\n")} \n\n ${n.join("\n")}\n `;return{cssVars:i,globalStyles:o.css(":root{",i,";}","")}})(t)),e[n]}})(),_f={name:"LSD",breakpoints:{xs:{width:0,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},label2:{},subtitle1:{},subtitle2:{},subtitle3:{},subtitle4:{}}},sm:{width:400,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},md:{width:768,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},lg:{width:1024,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},xl:{width:1205,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}}},typography:{display1:{fontSize:"5.5rem",fontWeight:"normal",lineHeight:"6rem"},display2:{fontSize:"4rem",fontWeight:"normal",lineHeight:"4.5rem"},display3:{fontSize:"3.5rem",fontWeight:"normal",lineHeight:"4rem"},display4:{fontSize:"3rem",fontWeight:"normal",lineHeight:"3.5rem"},h1:{fontSize:"2.5rem",fontWeight:"normal",lineHeight:"3rem"},h2:{fontSize:"2rem",fontWeight:"normal",lineHeight:"2.5rem"},h3:{fontSize:"1.75rem",fontWeight:"normal",lineHeight:"2.25rem"},h4:{fontSize:"1.5rem",fontWeight:"normal",lineHeight:"2rem"},h5:{fontSize:"1.25rem",fontWeight:"normal",lineHeight:"1.75rem"},h6:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle1:{fontSize:"1.125rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle2:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle3:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},subtitle4:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},body1:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},body2:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},body3:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},label1:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},label2:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"}},typographyGlobal:{genericFontFamily:"sans-serif"},palette:{primary:"0, 0, 0",secondary:"255, 255, 255",surface:{primary:"255, 255, 255",secondary:"0, 0, 0"},text:{primary:"0, 0, 0",secondary:"255, 255, 255",tertiary:"0, 0, 0, 0.34"},border:{primary:"0, 0, 0",secondary:"255, 255, 255"},icon:{primary:"0, 0, 0",secondary:"255, 255, 255"}},spacing:[4,8,16,24,32,40,64,80,96,120],globalStyles:o.css("",""),cssVars:""},{cssVars:Ef,globalStyles:Sf}=kf(_f);_f.cssVars=Ef,_f.globalStyles=Sf;const Cf=of(),Tf=(e,t)=>ds(ps,(n=>({...t.typography[n],...e.typography[n]??{}}))),Of=(e,t)=>({...t.typographyGlobal,...e.typographyGlobal}),Df=(e,t)=>{const n=new Map;return Object.fromEntries(fs.reduce(((r,a,o)=>[...r,{...t.breakpoints[a],...e.breakpoints[a],...ds(["typography"],(a=>((e,t,n,r,a,o)=>"typography"===e?ds(a[e],(i=>{var l,s,u,c,d,f,p,h,m,g,v;const b=`${e}.${i}`,y=!0===o.get(b);return Object.keys((null==(u=null==(s=null==(l=r.breakpoints)?void 0:l[fs[n]])?void 0:s[e])?void 0:u[i])??{}).length>0&&o.set(b,!0),{...a[e][i],...r[e][i],...y?(null==(d=null==(c=null==t?void 0:t[n-1])?void 0:c[e])?void 0:d[i])??{}:null==(h=null==(p=null==(f=a.breakpoints)?void 0:f[fs[n]])?void 0:p[e])?void 0:h[i],...(null==(v=null==(g=null==(m=r.breakpoints)?void 0:m[fs[n]])?void 0:g[e])?void 0:v[i])??{}}})):{})(a,r,o,e,t,n)))}]),[]).map(((e,t)=>[fs[t],e])))},Pf=(e,t)=>{var n,r,a,o,i,l,s,u,c;const d=e.palette.primary??t.palette.primary,f=e.palette.secondary??t.palette.secondary;return{primary:d,secondary:f,surface:{primary:(null==(n=e.palette.surface)?void 0:n.primary)??f,secondary:(null==(r=e.palette.surface)?void 0:r.secondary)??d},border:{primary:(null==(a=e.palette.border)?void 0:a.primary)??d,secondary:(null==(o=e.palette.border)?void 0:o.secondary)??f},icon:{primary:(null==(i=e.palette.icon)?void 0:i.primary)??d,secondary:(null==(l=e.palette.icon)?void 0:l.secondary)??f},text:{primary:(null==(s=e.palette.text)?void 0:s.primary)??d,secondary:(null==(u=e.palette.text)?void 0:u.secondary)??f,tertiary:(null==(c=e.palette.text)?void 0:c.tertiary)??`${d}, 0.34`}}},Nf=(e,t=_f)=>{const n={name:e.name??(r=t.name,`${r}-${Cf()}`),typography:Tf(e,t),typographyGlobal:Of(e,t),breakpoints:Df(e,t),palette:Pf(e,t),globalStyles:o.css("",""),cssVars:"",spacing:e.spacing.length?e.spacing:t.spacing};var r;const{cssVars:a,globalStyles:i}=kf(n);return n.cssVars=a,n.globalStyles=i,n},If=Nf({name:"Light",breakpoints:{},typography:{},typographyGlobal:{},palette:{},spacing:[]},_f),Af={light:If,dark:Nf({name:"Dark",breakpoints:{},typography:{},typographyGlobal:{},palette:{primary:"255, 255, 255",secondary:"0, 0, 0"},spacing:[]},If)},Lf=o.css(".",uu.root,"{box-sizing:border-box;}.",uu.label,"{display:block;}.",uu.inputContainer,"{display:flex;justify-content:space-between;}.",uu.disabled,"{opacity:0.34;}.",uu.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",uu.input,":hover{outline:none;}.",uu.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",uu.icon,"{cursor:pointer;display:flex;align-items:center;}.",uu.error,"{text-decoration:line-through;}.",uu.large,"{width:208px;.",uu.label,"{margin:0 0 6px 18px;}.",uu.inputContainer,"{height:40px;}.",uu.input,"{padding:9px 17px;}.",uu.icon,"{padding:12px 13px;}}.",uu.medium,"{width:188px;.",uu.label,"{margin:0 0 6px 14px;}.",uu.inputContainer,"{height:32px;}.",uu.input,"{padding:5px 13px;}.",uu.icon,"{padding:8px 11px;}}.",uu.small,"{width:164px;.",uu.label,"{margin:0 0 6px 12px;}.",uu.inputContainer,"{height:28px;}.",uu.input,"{padding:5px 11px;}.",uu.icon,"{padding:6px 9px;}}.",uu.withIcon,"{}.",uu.outlined," .",uu.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",uu.underlined," .",uu.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",uu.dropdownItemPlaceholder,"{opacity:0.5;white-space:pre;}",""),Rf=o.css(".",du.root,"{width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid rgb(var(--lsd-icon-primary));border-radius:20px;&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",du.large,"{padding:3px 11px;gap:12px;height:28px;}.",du.small,"{padding:3px 7px;gap:8px;height:24px;}.",du.filled,"{background-color:rgb(var(--lsd-icon-primary));.",du.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",du.outlined,"{color:rgb(var(--lsd-text-primary));}.",du.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),jf=o.css(".",mu.root,"{}.",mu.list,"{display:flex;flex-direction:row;align-items:center;list-style-type:none;margin:0;padding:0;}.",mu.disabled,"{.",mu.list,"{opacity:0.34;cursor:initial;pointer-events:none;}}.",mu.listBox,"{display:flex;flex-direction:column;overflow:auto;border:1px solid rgb(var(--lsd-border-primary));margin-top:10px;position:absolute;width:auto!important;}.",mu.listBox,">li{cursor:pointer;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}.",mu.listBox," li>a{width:164px;padding:5px 11px;}",""),Mf=o.css(".",pu.root,"{list-style-type:none;display:flex;align-items:center;}.",mu.list,">li:not(:last-child)::after{display:inline-block;margin-inline:12px;content:'/';}.",pu.itemLink,"{text-decoration:none;cursor:pointer;}.",pu.outlined,"{padding:3px 11px;border:1px solid rgb(var(--lsd-border-primary));}",pu.large,"{}",pu.small,"{}.",mu.root,":not(.",mu.disabled,"){.",pu.itemLink,"{&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}}",""),Ff=o.css(".",bu.root,"{width:auto;cursor:pointer;padding:6px 24px;}.",bu.disabled,"{cursor:default;opacity:0.34;}.",bu.large,"{padding:10px 40px;}.",bu.medium,"{padding:6px 24px;}.",bu.small,"{padding:6px 12px;}.",bu.root,":hover{&:not(.",bu.disabled,"){.",bu.text,"{text-decoration:underline;}}}.",bu.withIcon,"{display:flex;align-items:center;}.",bu.icon,"{display:flex;justify-content:center;align-items:center;height:100%;}.",bu.large,".",bu.withIcon,"{padding:10px 0px 10px 18px;.",bu.icon,"{width:42px;}}.",bu.medium,".",bu.withIcon,"{padding:6px 0px 6px 14px;.",bu.icon,"{width:38px;}}.",bu.small,".",bu.withIcon,"{padding:6px 0px 6px 12px;.",bu.icon,"{width:34px;}}.",bu.outlined,"{background:none;border:1px solid rgb(var(--lsd-border-primary));.",bu.text,"{color:rgb(var(--lsd-text-primary));}}.",bu.filled,"{background:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-primary));.",bu.text,"{color:rgb(var(--lsd-text-secondary));}}",""),Bf=o.css(".",Sc.root,"{border:1px solid rgb(var(--lsd-border-primary));visibility:hidden;position:absolute!important;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));user-select:none;}.",Sc.container,"{display:flex;flex-direction:column;padding:8px;}.",Sc.open,"{opacity:1;visibility:visible;}.",Sc.header,"{display:flex;justify-content:center;align-items:center;height:32px;margin-bottom:8px;}.",Sc.weekDay,"{display:flex;justify-content:center;align-items:center;aspect-ratio:1/1;margin-bottom:4px;}.",Sc.changeYear,"{position:relative;display:flex;justify-content:center;align-items:center;padding:2px 0xp 2px 8px;gap:6px;border:1px solid transparent;}.",Sc.changeYearActive,"{.",Sc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Sc.changeYearIconContainer,"{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none;}.",Sc.month,"{margin-right:8px;}.",Sc.monthAndYear,"{display:flex;align-items:center;justify-content:center;}.",Sc.dayContainer,"{cursor:pointer;background:transparent;position:relative;box-sizing:border-box;border:1px solid transparent;}.",Sc.day,"{aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;}.",Sc.day,":hover{cursor:pointer;text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}.",Sc.day," label:hover{cursor:pointer;}.",Sc.daySelected,"{border:1px solid rgb(var(--lsd-border-primary));}.",Sc.dayDisabled,"{opacity:0.3;cursor:default;}.",Sc.todayIndicator,"{position:absolute;left:50%;transform:translateX(-50%);bottom:2px;}.",Sc.disabled,"{pointer-events:none;border:1px solid rgba(var(--lsd-border-primary), 0.3);label{opacity:0.3;}.",Sc.button,"{opacity:0.3;}.",Sc.daySelected,"{opacity:0.3;}}.",Sc.button,"{border:1px solid rgb(var(--lsd-border-primary));cursor:pointer;background:transparent;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:absolute;}.",Sc.nextMonthButton,"{top:8px;right:8px;}.",Sc.previousMonthButton,"{top:8px;left:8px;}.",Sc.dayBorderLeft,"{border-left:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderRight,"{border-right:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderLeftAndRight,"{border-left:1px double rgb(var(--lsd-border-primary));border-right:1px double rgb(var(--lsd-border-primary));}.",Sc.dayBorderTopAndBottom,"{border-top:1px double rgb(var(--lsd-border-primary));border-bottom:1px double rgb(var(--lsd-border-primary));}.",Sc.monthTable,"{border-collapse:collapse;}.",Sc.yearDropdown,"{box-sizing:border-box;position:absolute;top:100%;left:0;max-height:200px;overflow-y:auto;width:100%;border:1px solid rgb(var(--lsd-border-primary));border-top:none;z-index:1;.",Sc.year,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Sc.yearDropdownHidden,"{visibility:hidden;}.",Sc.year,"{display:flex;cursor:pointer;transition:background-color 0.2s;align-items:center;background:rgb(var(--lsd-surface-primary));:hover{text-decoration:underline;}}.",Sc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}.",Sc.large,"{.",Sc.year,"{padding:6px 0px 6px 14px;}.",Sc.changeYearIconContainer,"{width:32px;}}.",Sc.medium,"{.",Sc.year,"{padding:6px 0px 6px 12px;}.",Sc.changeYearIconContainer,"{width:28px;}}.",Sc.small,"{.",Sc.year,"{padding:6px 0px 6px 12px;}.",Sc.changeYearIconContainer,"{width:28px;}}",""),zf=o.css(".",Qc.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Qc.root,">.",ed.root,"{margin-bottom:-1px;}.",Qc.large,"{}.",Qc.medium,"{}.",Qc.small,"{}",""),$f=o.css(".",Kc.root,"{box-sizing:border-box;padding:14px 22px;border:1px solid rgb(var(--lsd-border-primary));}",""),Uf=o.css(".",ed.root,"{box-sizing:border-box;padding:10px 18px;text-align:center;border:1px solid rgb(var(--lsd-border-primary));}.",ed.title,"{overflow:hidden;word-break:break-all;}.",ed.large,"{padding:10px 18px;}.",ed.medium,"{padding:6px 14px;}.",ed.small,"{padding:6px 12px;}",""),Hf=o.css(".",ad.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",ad.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",ad.root,":not(.",ad.disabled,"){&:hover,&.",ad.focused,"{text-decoration:underline;}.",ad.input,"{cursor:pointer;}}.",ad.disabled,"{opacity:0.34;}.",ad.label,"{margin-left:18px;}.",ad.large,"{.",ad.label,"{margin-left:18px;}}.",ad.medium,"{.",ad.label,"{margin-left:14px;}}.",ad.small,"{.",ad.label,"{margin-left:12px;}}",""),Vf=o.css(".",id.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",id.label,"{margin-bottom:6px;}",""),qf=o.css(".",cd.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",cd.open,"{.",cd.content,"{border-top:1px solid transparent;}}.",cd.content,"{border:1px solid rgb(var(--lsd-border-primary));}",""),Wf=o.css(".",sd.root,"{box-sizing:border-box;}.",sd.root,":not(.",sd.disabled,"){.",sd.trigger,"{&:hover{.",sd.label,"{text-decoration:underline;}}}}.",sd.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer;background:none;border:1px solid rgb(var(--lsd-border-primary));&:focus{outline:none;}}.",sd.label,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:auto;}.",sd.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;}.",sd.icon,"{margin-right:8px;}.",sd.menuIcon,"{}.",sd.disabled,"{.",sd.trigger,"{opacity:0.34;cursor:initial;}}.",sd.large,"{.",sd.trigger,"{width:299px;height:40px;padding:9px 17px;}}.",sd.medium,"{.",sd.trigger,"{width:270px;height:32px;padding:5px 13px;}}.",sd.small,"{.",sd.trigger,"{width:235px;height:28px;padding:5px 11px;}}",""),Gf=o.css(".",fd.root,"{width:auto;box-sizing:border-box;}.",fd.label,"{display:block;}.",fd.icon,"{position:absolute;right:0;cursor:pointer;display:flex;align-items:center;background-color:rgb(var(--lsd-surface-primary));}.",fd.icon,":focus{background:blue;background-color:pink;border:1px solid rgb(var(--lsd-border-primary));}.",fd.noIcon,"{position:absolute;right:0;background-color:rgb(var(--lsd-surface-primary));padding:12px;}.",fd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));}.",fd.underlined,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}.",fd.inputContainer,"{position:relative;display:flex;align-items:center;justify-content:space-between;}.",fd.disabled,"{opacity:0.34;}.",fd.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;opacity:0.4;transition:opacity 0.2s ease-in-out;}.",fd.input,"::-webkit-inner-spin-button,.",fd.input,"::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;}.",fd.input,":hover{outline:none;}.",fd.supportingText,"{position:absolute;}.",fd.large,"{width:208px;.",fd.label,"{margin:0 0 6px 18px;}.",fd.inputContainer,"{height:40px;}.",fd.input,"{padding:9px 0px 9px 17px;}.",fd.icon,"{padding:12px 13px;}.",fd.supportingText,"{margin:6px 18px 0 18px;}}.",fd.medium,"{width:188px;.",fd.label,"{margin:0 0 6px 14px;}.",fd.inputContainer,"{height:32px;}.",fd.input,"{padding:5px 11px 5px 13px;}.",fd.icon,"{padding:8px 11px;}.",fd.supportingText,"{margin:6px 14px 0 14px;}}.",fd.small,"{width:164px;.",fd.label,"{margin:0 0 6px 12px;}.",fd.inputContainer,"{height:28px;}.",fd.input,"{padding:5px 9px 5px 11px;font-size:12px;}.",fd.icon,"{padding:6px 9px;}.",fd.supportingText,"{margin:6px 12px 0 12px;}}.",fd.input,":invalid,.",fd.inputFilled,"{color:rgb(var(--lsd-border-primary));opacity:1;}.",fd.error," .",fd.input,"::-webkit-datetime-edit-year-field,.",fd.error," .",fd.input,"::-webkit-datetime-edit-month-field,.",fd.error," .",fd.input,"::-webkit-datetime-edit-day-field{text-decoration:line-through;}@supports not selector(::-webkit-datetime-edit-day-field){.",fd.error," .",fd.input,"{text-decoration:line-through;}}",""),Zf=o.css(".",hd.root,"{width:fit-content;}.",hd.calendar,"{border-top:none!important;}.",hd.large,"{.",fd.large,"{width:318px;}}.",hd.medium,"{.",fd.medium,"{width:290px;}}.",hd.small,"{.",fd.small,"{width:262px;}}",""),Qf=o.css(".",yd.root,"{}.",yd.root,":not(.",yd.disabled,"):not(\n .",yd.error,"\n ){.",yd.trigger,"{&:hover,&:focus{.",yd.optionLabel,"{text-decoration:underline;}}}}.",yd.label,"{display:block;}.",yd.buttonContainer,"{display:flex;justify-content:space-between;}.",yd.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border:none;cursor:pointer;background:none;&:focus{outline:none;}}.",yd.optionLabel,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.",yd.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;}.",yd.icon,"{display:flex;align-items:center;}.",yd.menuIcon,"{}.",yd.supportingText,"{margin:6px 14px;}.",yd.error,"{.",yd.optionLabel,"{text-decoration:line-through;}}.",yd.disabled,"{opacity:0.34;cursor:initial;}.",yd.large,"{width:208px;&.",yd.error,"{width:230px;}.",yd.label,"{margin:0 0 6px 18px;}.",yd.buttonContainer,"{height:40px;}.",yd.trigger,"{padding:10px 0px 10px 18px;}.",yd.icons,"{padding:0px 14px;}}.",yd.medium,"{width:188px;&.",yd.error,"{width:210px;}.",yd.label,"{margin:0 0 6px 14px;}.",yd.buttonContainer,"{height:32px;}.",yd.trigger,"{padding:6px 0px 6px 14px;}.",yd.icons,"{padding:0px 12px;}}.",yd.small,"{width:164px;&.",yd.error,"{width:186px;}.",yd.label,"{margin:0 0 6px 12px;}.",yd.buttonContainer,"{height:28px;}.",yd.trigger,"{padding:6px 0px 6px 12px;}.",yd.icons,"{padding:0px 10px;}}.",yd.outlined,"{.",yd.buttonContainer,"{border:1px solid rgb(var(--lsd-border-primary));}}.",yd.underlined,"{.",yd.buttonContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}}",""),Yf=o.css(".",qs.root,"{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;border:1px solid rgb(var(--lsd-border-primary));:not(.",qs.disabled,"){cursor:pointer;&:hover,&:focus{outline:none;.",qs.label,"{text-decoration:underline;}}}}.",qs.label,"{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",qs.disabled,"{opacity:0.34;}.",qs.icon,"{margin-right:18px;flex-shrink:0;}.",qs.small,"{padding:5px 9px;height:28px;}.",qs.medium,"{padding:5px 11px;height:32px;}.",qs.large,"{padding:5px 13px;height:40px;}",""),Xf=o.css(".",kd.root,"{display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:pointer;background:none;padding:0;border:1px solid rgb(var(--lsd-border-primary));}.",kd.filled,"{background-color:rgb(var(--lsd-icon-primary));svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",kd.outlined,"{}.",kd.disabled,"{opacity:0.34;cursor:default;}.",kd.large,"{width:40px;height:40px;}.",kd.medium,"{width:32px;height:32px;}.",kd.small,"{width:28px;height:28px;}",""),Kf=o.css(".",Ed.root,"{display:flex;flex-direction:row;}.",Ed.outlined," .",kd.root,":not(:last-child){border-right:none;}",""),Jf=o.css(".",xs.root,"{}.",xs.primary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-primary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-primary));}}}.",xs.secondary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}}",""),ep=o.css(".",tu.root,"{position:absolute;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));overflow:auto;border:1px solid rgb(var(--lsd-border-primary));border-top:0;}.",tu.root,">div{border:0;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",tu.open,"{opacity:1;visibility:visible;}.",tu.large,"{max-height:220px;}.",tu.medium,"{max-height:176px;}.",tu.small,"{max-height:154px;}",""),tp=o.css(".",jd.root,"{color:rgb(var(--lsd-text-primary));white-space:pre-wrap;}.",jd.indentedInline,"{border-left:1px solid rgb(var(--lsd-border-primary));padding:4px 8px 4px 28px;}.",jd.parentheses,"{padding:0px;text-align:center;}.",jd.parentheses,"::before{content:'***';}.",jd.parentheses,"::after{content:'***';}",""),np=o.css(".",Bd.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",Bd.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",Bd.root,":not(.",Bd.disabled,"){&:hover{text-decoration:underline;}.",Bd.input,"{cursor:pointer;}}.",Bd.disabled,"{opacity:0.34;}.",Bd.label,"{margin-left:18px;}.",Bd.large,"{.",Bd.label,"{margin-left:18px;}}.",Bd.medium,"{.",Bd.label,"{margin-left:14px;}}.",Bd.small,"{.",Bd.label,"{margin-left:12px;}}",""),rp=o.css(".",$d.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",$d.label,"{margin-bottom:6px;}",""),ap=o.css(".",Vd.root,"{background:rgb(var(--lsd-surface-primary));border:1px solid transparent;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;&:hover{text-decoration:underline;}&:not(",Vd.selected,"){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Vd.text,"{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",Vd.icon,"{margin-left:14px;}.",Vd.selected,"{border:1px solid rgb(var(--lsd-border-primary));&:hover{text-decoration:none;}}.",Vd.withIcon,"{justify-content:space-between;}.",Vd.disabled,"{cursor:default;opacity:0.34;&:hover{text-decoration:none;}}.",Vd.small,"{padding:6px 12px;.",Vd.icon,"{margin-left:10px;}}.",Vd.medium,"{padding:6px 14px;.",Vd.icon,"{margin-left:12px;}}.",Vd.large,"{padding:10px 18px;.",Vd.icon,"{margin-left:14px;}}",""),op=o.css(".",Yd.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Yd.root,">.",Zd.root,"{margin-bottom:-1px;}.",Yd.large,"{}.",Yd.medium,"{}.",Yd.small,"{}",""),ip=o.css(".",Wd.root,"{table{border-collapse:collapse;text-align:center;table-layout:fixed;width:100%;height:auto;}table tr:first-of-type td label:has(input[type='radio']){display:none;}}.",Wd.toolbar,"{box-sizing:border-box;padding:10px;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;justify-content:space-between;}",""),lp=o.css(".",Zd.root,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}",""),sp=o.css(".",ef.root,"{border:1px solid rgb(var(--lsd-border-primary));}.",ef.root,":has(> label){width:40px;input{position:relative;width:14px;height:14px;margin:auto;}span{margin-left:14px!important;}}.",ef.large,"{padding:10px;}.",ef.medium,"{padding:6px 8px;}.",ef.small,"{padding:6px;}",""),up=o.css(".",nf.root,"{align-items:center;}",""),cp=o.css(".",ff.root,"{display:flex;flex-direction:row;overflow:auto;width:fit-content;max-width:100%;border-bottom:1px solid rgb(var(--lsd-border-primary));&>*{flex-shrink:0;}.",Vd.root,"{border-bottom:none;}}.",ff.fullWidth,"{width:100%;justify-content:stretch;&>*{width:100%;flex:1 0;}}.",ff.root,"{-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}}.",ff.leftScrollControl,"{left:0;}.",ff.rightScrollControl,"{right:0;}.",ff.rightScrollControl,",.",ff.leftScrollControl,"{top:0;flex:0 1;position:sticky;}",""),dp=o.css(".",hf.root,"{width:fit-content;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid rgb(var(--lsd-icon-primary));&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",hf.large,"{padding:3px 11px;gap:12px;height:28px;}.",hf.small,"{padding:3px 7px;gap:8px;height:24px;}.",hf.filled,"{background-color:rgb(var(--lsd-icon-primary));.",hf.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",hf.outlined,"{color:rgb(var(--lsd-text-primary));}.",hf.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),fp=o.css(".",yf.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",yf.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",yf.disabled,"{opacity:0.34;}.",yf.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",yf.input,":hover{outline:none;}.",yf.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",yf.error," .",yf.input,"{text-decoration:line-through;}.",yf.supportingText,"{width:fit-content;}.",yf.large,"{width:208px;&>*{padding:10px 14px 10px 18px;}}.",yf.medium,"{width:188px;&>*{padding:6px 12px 6px 14px;}}.",yf.small,"{width:164px;&>*{padding:6px 10px 6px 12px;}}.",yf.label,"{padding-top:0;padding-bottom:6px;}.",yf.supportingText,"{padding-bottom:0;padding-top:6px;}.",yf.outlined," .",yf.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",yf.underlined," .",yf.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",yf.clearButton,"{padding:0;width:auto;height:auto;margin:0;border:0;}.",yf.icon,"{}",""),pp=o.css("body *{font-family:var(--lsd-typography-generic-font-family);}.",gs.root,"{color:rgb(var(--lsd-text-primary));}.",gs.sansSerif,"{&,*{font-family:sans-serif;}}.",gs.serif,"{&,*{font-family:serif;}}.",gs.monospace,"{&,*{font-family:monospace;}}",ps.map((e=>o.css((e=>[...hs[e]??[],`.${gs[e]}`].join(", "))(e),"{color:rgb(var(--lsd-text-primary));font-weight:var(--lsd-",e,"-fontWeight);font-size:var(--lsd-",e,"-fontSize);line-height:var(--lsd-",e,"-lineHeight);}","")))," .",gs.primary,"{color:rgb(var(--lsd-text-primary));}.",gs.secondary,"{color:rgb(var(--lsd-text-secondary));}input{color:rgb(var(--lsd-text-primary));font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);}h1,h2,h3,h4,h5,h6,p,span{margin:0;}",""),hp={root:"lsd-toast",inlineContainer:"lsd-toast__inline-container",columnContainer:"lsd-toast__column-container",large:"lsd-toast--large",medium:"lsd-toast--medium",small:"lsd-toast--small",icon:"lsd-toast__icon",textContainer:"lsd-toast__text-container",columnIconContainer:"lsd-toast__column-icon-container",inlineIconContainer:"lsd-toast__inline-icon-container",title:"lsd-toast__title",information:"lsd-toast__information",inlineButtonContainer:"lsd-toast__inline-button-container",columnButtonContainer:"lsd-toast__column-button-container",buttonContainer:"lsd-toast__button-container",closeButton:"lsd-toast__close-button"},mp={toastContainer:"lsd-toast-provider__toast-container",topLeft:"lsd-toast-provider__toast--top-left",topCenter:"lsd-toast-provider__toast--top-center",topRight:"lsd-toast-provider__toast--top-right",bottomLeft:"lsd-toast-provider__toast--bottom-left",bottomCenter:"lsd-toast-provider__toast--bottom-center",bottomRight:"lsd-toast-provider__toast--bottom-right"},gp=[Ff,Xf,Kf,pp,Jf,ap,cp,ep,Qf,Yf,jf,Mf,zf,Uf,$f,dp,fp,Hf,Lf,tp,qf,Wf,Vf,Rf,np,rp,op,lp,ip,sp,up,o.css(".",Id.root,"{width:auto;box-sizing:border-box;}.",Id.mainContainer,":hover{text-decoration:underline;}.",Id.error,"{.",Id.mainContainer,"{text-decoration:line-through;}}.",Id.label,"{display:block;}.",Id.plusMinusIcons,"{display:flex;flex-shrink:0;}.",Id.inputContainer,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));border-left:0px;border-right:0px;}.",Id.errorIcon,"{cursor:pointer;display:flex;align-items:center;padding:10px 8px;}.",Id.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",Id.disabled,"{opacity:0.34;}.",Id.mainContainer,"{display:flex;align-items:center;}.",Id.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;text-align:center;padding:0 4px;}.",Id.input,"::-webkit-inner-spin-button{display:none;-webkit-appearance:none;}.",Id.input,":hover{outline:none;}.",Id.supportingText,"{position:absolute;}.",Id.large,"{.",Id.label,"{margin:0 0 6px 18px;}.",Id.inputContainer,"{height:40px;}.",Id.input,"{width:62px;}.",Id.plusMinusIcons,"{height:40px;width:40px;}.",Id.supportingText,"{margin:6px 18px 0 18px;}}.",Id.medium,"{.",Id.label,"{margin:0 0 6px 14px;}.",Id.inputContainer,"{height:32px;}.",Id.input,"{width:58px;}.",Id.plusMinusIcons,"{height:32px;width:32px;}.",Id.supportingText,"{margin:6px 14px 0 14px;}}.",Id.small,"{.",Id.label,"{margin:0 0 6px 12px;}.",Id.inputContainer,"{height:28px;}.",Id.input,"{width:50px;}.",Id.plusMinusIcons,"{height:28px;width:28px;}.",Id.supportingText,"{margin:6px 12px 0 12px;}}",""),o.css(".",Cd.root,"{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;justify-content:center;align-items:center;z-index:9999;}.",Cd.modalContainer,"{position:relative;background:rgb(var(--lsd-surface-primary));padding:20px;max-width:90%;box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}.",Cd.header,"{display:flex;justify-content:space-between;align-items:center;}.",Cd.title,"{}.",Cd.subtitle,"{}.",Cd.closeIcon,"{position:absolute;top:8px;right:8px;cursor:pointer;}.",Cd.titleAndSubtitleContainer,"{display:flex;flex-direction:column;}.",Cd.large,"{.",Cd.modalContainer,"{min-width:960px;}}.",Cd.medium,"{.",Cd.modalContainer,"{min-width:768px;}}.",Cd.small,"{.",Cd.modalContainer,"{min-width:614px;}}.",Cd.xsmall,"{.",Cd.modalContainer,"{min-width:490px;}}",""),o.css(".",Pd.root,"{display:flex;}",""),o.css(".",Od.root,"{margin:18px 0;}",""),Zf,Gf,Bf,o.css(".",hp.root,"{box-sizing:border-box;display:inline-flex;align-items:center;background:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));padding:8px;height:fit-content;}.",hp.inlineButtonContainer,"{flex-shrink:0;}.",hp.columnButtonContainer,"{margin-top:18px;margin-bottom:6px;}.",hp.inlineContainer,"{display:flex;align-items:center;justify-content:space-between;flex-grow:1;}.",hp.columnContainer,"{display:flex;flex-direction:column;justify-content:space-between;}.",hp.textContainer,"{display:flex;flex-direction:column;color:rgb(var(--lsd-text-secondary));padding-left:12px;}.",hp.title,"{position:relative;}.",hp.information,"{margin-top:4px;}.",hp.buttonContainer,"{min-height:28px;min-width:60px;width:fit-content;padding:0px 12px;}.",hp.closeButton,"{margin-bottom:auto;flex-shrink:0;height:28px;width:28px;margin-left:auto;}.",hp.columnIconContainer,"{display:flex;justify-content:center;margin-bottom:auto;position:relative;top:4px;padding-left:4px;}.",hp.inlineIconContainer,"{display:flex;align-items:center;justify-content:center;padding-left:4px;}.",hp.icon,"{position:relative;}.",hp.large,"{width:364px;}.",hp.medium,"{width:336px;}.",hp.small,"{width:296px;.",hp.icon,"{top:0px;}}",""),o.css(".",mp.toastContainer,"{position:fixed;transition:all 230ms cubic-bezier(0.21, 1.02, 0.73, 1);z-index:9999;}.",mp.topLeft,",.",mp.topCenter,",.",mp.topRight,"{top:0;}.",mp.bottomLeft,",.",mp.bottomCenter,",.",mp.bottomRight,"{bottom:0;}.",mp.topCenter,",.",mp.bottomCenter,"{left:50%;}.",mp.topRight,",.",mp.bottomRight,"{right:0;}",""),o.css(".",wu.root,"{display:flex;flex-direction:row;>*:not(:last-child){&.",bu.outlined,",.",bu.outlined,"{border-right:none;}}}",""),o.css(".",vd.root,"{box-sizing:border-box;.",fd.outlined,"{border:none;}.",fd.icon,"{padding:8px;}}.",vd.label,"{display:block;}.",vd.inputContainer,"{box-sizing:border-box;display:flex;align-items:center;border:1px solid transparent;}.",vd.calendar,"{border-top:none!important;.",Vc.arrowTip,"{transition:left 0.2s ease-in-out;}}.",vd.openCalendar,"{.",vd.inputContainer,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",vd.icon,"{cursor:pointer;display:flex;align-items:center;justify-content:center;flex-grow:1;padding:0 10px;}.",vd.disabled,"{opacity:0.3;}.",vd.supportingText,"{position:absolute;}.",vd.large,"{width:318px;.",fd.large,"{width:156px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:11px 12px;}.",vd.label,"{margin:0 0 6px 18px;}.",vd.inputContainer,"{height:40px;}.",vd.supportingText,"{margin:6px 18px 0 18px;}}.",vd.medium,"{width:290px;.",fd.medium,"{width:142px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:7px 8px;}.",vd.label,"{margin:0 0 6px 14px;}.",vd.inputContainer,"{height:32px;}.",vd.supportingText,"{margin:6px 14px 0 14px;}}.",vd.small,"{width:262px;.",fd.small,"{width:128px;}.",fd.input,"{padding-right:0;}.",fd.icon,"{padding:5px 7px;}.",vd.label,"{margin:0 0 6px 12px;}.",vd.inputContainer,"{height:28px;}.",vd.supportingText,"{margin:6px 12px 0 12px;}}.",vd.separator,"{margin-left:3px;width:1px;height:100%;}.",vd.separator,"{border-left:1px solid transparent;}.",vd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));.",vd.separator,"{border-left:1px solid rgb(var(--lsd-border-primary));}}",""),o.css(".",Vc.root,"{border:1px solid rgb(var(--lsd-border-primary));position:relative;}.",Vc.arrowTip,"{border:1px solid rgb(var(--lsd-border-primary));position:absolute;background:rgb(var(--lsd-surface-primary));}.",Vc.content,"{background:rgb(var(--lsd-surface-primary));width:100%;height:100%;position:relative;z-index:1;}","")],vp=({theme:e=Af.light})=>{const t=r.useMemo((()=>gp.map((t=>"function"==typeof t?t(e):t)).map((e=>We(o.Global,{styles:e},e.name)))),[e]);return We(qe,{children:t})},bp=({children:e})=>{const t=r.useRef(),n=r.useRef({}),[a,o]=r.useState({}),[i,l]=r.useState(!1),s=e=>{const t=n.current[e];t&&t.current&&Ld((()=>{o((n=>({...n,[e]:t.current.getBoundingClientRect()})))}))};r.useEffect((()=>{if("undefined"!=typeof window&&"undefined"!=typeof ResizeObserver)return t.current=new ResizeObserver((e=>{Ld((()=>{const t=Object.entries(n.current);e.map((e=>t.find((([t,n])=>n.current===e.target)))).forEach((e=>{if(e&&2===e.length){const[t]=e;s(t)}}))}))})),l(!0),()=>{var e;null==(e=t.current)||e.disconnect()}}),[]);return We(af.Provider,{value:{observe:(e,r)=>{t.current&&(n.current[e]=r,s(e),r.current instanceof Element&&t.current.observe(r.current))},unobserve:e=>{if(!t.current)return;const r=n.current[e];r&&(r.current instanceof Element&&t.current.unobserve(r.current),delete n.current[e],o((t=>Vl(t,e))))},rect:a,ready:i},children:e})},yp=r.createContext({theme:null}),wp=({title:e,information:t,onClose:n,size:r="large",toastRef:a,children:o,icon:i,actions:l,...s})=>{const u=bs(s),c=!t,d=void 0===i?Ns:i;return Ge("div",{ref:a,...ws(s),className:Qe(s.className,u.className,hp.root,hp[r]),children:[We("div",{className:Qe(c?hp.inlineIconContainer:hp.columnIconContainer),children:d&&We(d,{color:"primary",className:hp.icon})}),Ge("div",{className:c?hp.inlineContainer:hp.columnContainer,children:[Ge("div",{className:Qe(hp.textContainer),children:[!!e&&We(Vs,{className:hp.title,component:"div",variant:"small"===r?"label2":"label1",children:e}),!!t&&We(Vs,{className:hp.information,component:"div",variant:"small"===r?"label2":"label1",children:t})]}),!!l&&We("div",{className:Qe(hp.buttonContainer,c?hp.inlineButtonContainer:hp.columnButtonContainer),children:l})]}),We(_d,{onClick:n,className:hp.closeButton,size:"medium",children:We(Ps,{color:"primary"})})]})};wp.classes=hp;var xp=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,kp=(()=>{let e=0;return()=>(++e).toString()})(),_p=new Map,Ep=e=>{if(_p.has(e))return;let t=setTimeout((()=>{_p.delete(e),Op({type:4,toastId:e})}),1e3);_p.set(e,t)},Sp=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return t.toast.id&&(e=>{let t=_p.get(e);t&&clearTimeout(t)})(t.toast.id),{...e,toasts:e.toasts.map((e=>e.id===t.toast.id?{...e,...t.toast}:e))};case 2:let{toast:n}=t;return e.toasts.find((e=>e.id===n.id))?Sp(e,{type:1,toast:n}):Sp(e,{type:0,toast:n});case 3:let{toastId:r}=t;return r?Ep(r):e.toasts.forEach((e=>{Ep(e.id)})),{...e,toasts:e.toasts.map((e=>e.id===r||void 0===r?{...e,visible:!1}:e))};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter((e=>e.id!==t.toastId))};case 5:return{...e,pausedAt:t.time};case 6:let a=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map((e=>({...e,pauseDuration:e.pauseDuration+a})))}}},Cp=[],Tp={toasts:[],pausedAt:void 0},Op=e=>{Tp=Sp(Tp,e),Cp.forEach((e=>{e(Tp)}))},Dp={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Pp=e=>(t,n)=>{let r=((e,t="blank",n)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(null==n?void 0:n.id)||kp()}))(t,e,n);return Op({type:2,toast:r}),r.id},Np=(e,t)=>Pp("blank")(e,t);Np.error=Pp("error"),Np.success=Pp("success"),Np.loading=Pp("loading"),Np.custom=Pp("custom"),Np.dismiss=e=>{Op({type:3,toastId:e})},Np.remove=e=>Op({type:4,toastId:e}),Np.promise=(e,t,n)=>{let r=Np.loading(t.loading,{...n,...null==n?void 0:n.loading});return e.then((e=>(Np.success(xp(t.success,e),{id:r,...n,...null==n?void 0:n.success}),e))).catch((e=>{Np.error(xp(t.error,e),{id:r,...n,...null==n?void 0:n.error})})),e};var Ip=(e,t)=>{Op({type:1,toast:{id:e,height:t}})},Ap=()=>{Op({type:5,time:Date.now()})},Lp=e=>{let{toasts:t,pausedAt:n}=((e={})=>{let[t,n]=r.useState(Tp);r.useEffect((()=>(Cp.push(n),()=>{let e=Cp.indexOf(n);e>-1&&Cp.splice(e,1)})),[t]);let a=t.toasts.map((t=>{var n,r;return{...e,...e[t.type],...t,duration:t.duration||(null==(n=e[t.type])?void 0:n.duration)||(null==e?void 0:e.duration)||Dp[t.type],style:{...e.style,...null==(r=e[t.type])?void 0:r.style,...t.style}}}));return{...t,toasts:a}})(e);r.useEffect((()=>{if(n)return;let e=Date.now(),r=t.map((t=>{if(t.duration===1/0)return;let n=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(n<0))return setTimeout((()=>Np.dismiss(t.id)),n);t.visible&&Np.dismiss(t.id)}));return()=>{r.forEach((e=>e&&clearTimeout(e)))}}),[t,n]);let a=r.useCallback((()=>{n&&Op({type:6,time:Date.now()})}),[n]),o=r.useCallback(((e,n)=>{let{reverseOrder:r=!1,gutter:a=8,defaultPosition:o}=n||{},i=t.filter((t=>(t.position||o)===(e.position||o)&&t.height)),l=i.findIndex((t=>t.id===e.id)),s=i.filter(((e,t)=>t<l&&e.visible)).length;return i.filter((e=>e.visible)).slice(...r?[s+1]:[0,s]).reduce(((e,t)=>e+(t.height||0)+a),0)}),[t]);return{toasts:t,handlers:{updateHeight:Ip,startPause:Ap,endPause:a,calculateOffset:o}}};const Rp=r.createContext(null),jp=({toastsPropsMap:e,className:t,...n})=>{const{toasts:r,handlers:a}=Lp(),{startPause:o,endPause:i,calculateOffset:l,updateHeight:s}=a;return We(lu,{id:"toast",children:r.map((r=>{const a=e.get(r.id);if(!a)return console.warn("Could not find toast with id",r.id),null;const{position:u,duration:c,...d}=a,f=l(r,{reverseOrder:!1,gutter:8,defaultPosition:u}),{transform:p,positionClassName:h}=((e,t)=>{if(!e)return{positionClassName:"",transform:`translateY(${t}px)`};let n="";const r=e.includes("center"),a=e.includes("bottom");return"top-left"===e?n=mp.topLeft:"top-center"===e?n=mp.topCenter:"top-right"===e?n=mp.topRight:"bottom-left"===e?n=mp.bottomLeft:"bottom-center"===e?n=mp.bottomCenter:"bottom-right"===e&&(n=mp.bottomRight),{positionClassName:n,transform:`translateY(${a?-t:t}px) translateX(${r?"-50%":"0"})`}})(u,f);return We("div",{onMouseEnter:o,onMouseLeave:i,...n,className:Qe(mp.toastContainer,h,t),style:{transform:p,...n.style},children:We(wp,{className:Qe(d.className),toastRef:e=>{if(e&&"number"!=typeof r.height){const t=e.getBoundingClientRect().height;s(r.id,t)}},...d,style:{opacity:r.visible?1:0,...d.style},onClose:()=>{var e;Np.dismiss(r.id),null==(e=d.onClose)||e.call(d)}},r.id)},`container-${r.id}`)}))})};t.AddIcon=_s,t.ArrowForwardIcon=Ss,t.Autocomplete=cu,t.Badge=fu,t.Breadcrumb=gu,t.BreadcrumbItem=hu,t.Button=yu,t.ButtonGroup=xu,t.CALENDAR_MAX_YEAR=Gc,t.CALENDAR_MIN_YEAR=Wc,t.Calendar=Zc,t.CalendarIcon=Us,t.Card=Xc,t.CardBody=Jc,t.CardHeader=td,t.CheckIcon=Ds,t.Checkbox=od,t.CheckboxGroup=ld,t.CheckboxIcon=Ts,t.CheckboxOutlineBlankIcon=Os,t.ChevronDownIcon=Es,t.ChevronLeftIcon=js,t.ChevronRightIcon=Ms,t.ChevronUpIcon=Cs,t.CloseIcon=Ps,t.Collapse=dd,t.CollapseHeader=ud,t.DateField=pd,t.DatePicker=gd,t.DateRangePicker=bd,t.Dropdown=wd,t.DropdownItem=Ws,t.DropdownMenu=ru,t.ErrorIcon=Ns,t.FolderIcon=Is,t.IconButton=_d,t.IconButtonGroup=Sd,t.KeyboardReturnIcon=As,t.LSD_NAMESPACE="lsd",t.LsdIcon=ks,t.MenuIcon=Ls,t.Modal=Td,t.ModalBody=Dd,t.ModalFooter=Nd,t.MoreIcon=Rs,t.NumberInput=Ad,t.PickIcon=Bs,t.Portal=lu,t.PortalContext=au,t.PortalProvider=Rd,t.Quote=Md,t.RadioButton=zd,t.RadioButtonCheckedIcon=$s,t.RadioButtonGroup=Ud,t.RadioButtonIcon=zs,t.RemoveIcon=Hs,t.SearchIcon=Fs,t.THEME_BREAKPOINTS=fs,t.THEME_TYPOGRAPHY_PROPERTIES=ms,t.THEME_TYPOGRAPHY_VARIANTS=ps,t.THEME_VARIANT_PROPERTIES=["typography"],t.TabItem=qd,t.Table=Jd,t.TableBody=Gd,t.TableHeader=Qd,t.TableItem=tf,t.TableRow=rf,t.Tabs=pf,t.Tag=mf,t.TextField=wf,t.ThemeProvider=({theme:e,children:t,injectCssVars:n=!0})=>We(bp,{children:We(Rd,{children:Ge(yp.Provider,{value:{theme:e},children:[We(vp,{theme:e}),n&&We(o.Global,{styles:e.globalStyles}),We(o.ThemeProvider,{theme:e,children:t})]})})}),t.Toast=wp,t.ToastContext=Rp,t.ToastProvider=({providerToastOptions:e,children:t,...n})=>{const[a,o]=r.useState(new Map);return Ge(Rp.Provider,{value:(t,n)=>{const r={...e,...n},a=Np("",{duration:null==r?void 0:r.duration});t&&o((e=>{const n=new Map(e);return n.set(a,{...t,...r}),n}))},children:[t,We(jp,{toastsPropsMap:a,...n})]})},t.TooltipBase=qc,t.Typography=Vs,t.createTheme=Nf,t.createThemeGlobalStyles=kf,t.defaultThemes=Af,t.useCanUsePortal=ou,t.usePortal=iu,t.useTheme=()=>r.useContext(yp).theme??Af.light,t.useToast=function(){const e=r.useContext(Rp);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},t.withTheme=e=>t=>e(t)},90602:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ae});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),a=Math.abs,o=String.fromCharCode,i=Object.assign;function l(e){return e.trim()}function s(e,t,n){return e.replace(t,n)}function u(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function d(e,t,n){return e.slice(t,n)}function f(e){return e.length}function p(e){return e.length}function h(e,t){return t.push(e),e}var m=1,g=1,v=0,b=0,y=0,w="";function x(e,t,n,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:m,column:g,length:i,return:""}}function k(e,t){return i(x("",null,null,"",null,null,0),e,{length:-e.length},t)}function _(){return y=b>0?c(w,--b):0,g--,10===y&&(g=1,m--),y}function E(){return y=b<v?c(w,b++):0,g++,10===y&&(g=1,m++),y}function S(){return c(w,b)}function C(){return b}function T(e,t){return d(w,e,t)}function O(e){switch(e){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 D(e){return m=g=1,v=f(w=e),b=0,[]}function P(e){return w="",e}function N(e){return l(T(b-1,L(91===e?e+2:40===e?e+1:e)))}function I(e){for(;(y=S())&&y<33;)E();return O(e)>2||O(y)>3?"":" "}function A(e,t){for(;--t&&E()&&!(y<48||y>102||y>57&&y<65||y>70&&y<97););return T(e,C()+(t<6&&32==S()&&32==E()))}function L(e){for(;E();)switch(y){case e:return b;case 34:case 39:34!==e&&39!==e&&L(y);break;case 40:41===e&&L(e);break;case 92:E()}return b}function R(e,t){for(;E()&&e+y!==57&&(e+y!==84||47!==S()););return"/*"+T(t,b-1)+"*"+o(47===e?e:E())}function j(e){for(;!O(S());)E();return T(e,b)}var M="-ms-",F="-moz-",B="-webkit-",z="comm",$="rule",U="decl",H="@keyframes";function V(e,t){for(var n="",r=p(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function q(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case U:return e.return=e.return||e.value;case z:return"";case H:return e.return=e.value+"{"+V(e.children,r)+"}";case $:e.value=e.props.join(",")}return f(n=V(e.children,r))?e.return=e.value+"{"+n+"}":""}function W(e){return P(G("",null,null,null,[""],e=D(e),0,[0],e))}function G(e,t,n,r,a,i,l,d,p){for(var m=0,g=0,v=l,b=0,y=0,w=0,x=1,k=1,T=1,O=0,D="",P=a,L=i,M=r,F=D;k;)switch(w=O,O=E()){case 40:if(108!=w&&58==c(F,v-1)){-1!=u(F+=s(N(O),"&","&\f"),"&\f")&&(T=-1);break}case 34:case 39:case 91:F+=N(O);break;case 9:case 10:case 13:case 32:F+=I(w);break;case 92:F+=A(C()-1,7);continue;case 47:switch(S()){case 42:case 47:h(Q(R(E(),C()),t,n),p);break;default:F+="/"}break;case 123*x:d[m++]=f(F)*T;case 125*x:case 59:case 0:switch(O){case 0:case 125:k=0;case 59+g:-1==T&&(F=s(F,/\f/g,"")),y>0&&f(F)-v&&h(y>32?Y(F+";",r,n,v-1):Y(s(F," ","")+";",r,n,v-2),p);break;case 59:F+=";";default:if(h(M=Z(F,t,n,m,g,a,d,D,P=[],L=[],v),i),123===O)if(0===g)G(F,t,M,M,P,i,v,d,L);else switch(99===b&&110===c(F,3)?100:b){case 100:case 108:case 109:case 115:G(e,M,M,r&&h(Z(e,M,M,0,0,a,d,D,a,P=[],v),L),a,L,v,d,r?P:L);break;default:G(F,M,M,M,[""],L,0,d,L)}}m=g=y=0,x=T=1,D=F="",v=l;break;case 58:v=1+f(F),y=w;default:if(x<1)if(123==O)--x;else if(125==O&&0==x++&&125==_())continue;switch(F+=o(O),O*x){case 38:T=g>0?1:(F+="\f",-1);break;case 44:d[m++]=(f(F)-1)*T,T=1;break;case 64:45===S()&&(F+=N(E())),b=S(),g=v=f(D=F+=j(C())),O++;break;case 45:45===w&&2==f(F)&&(x=0)}}return i}function Z(e,t,n,r,o,i,u,c,f,h,m){for(var g=o-1,v=0===o?i:[""],b=p(v),y=0,w=0,k=0;y<r;++y)for(var _=0,E=d(e,g+1,g=a(w=u[y])),S=e;_<b;++_)(S=l(w>0?v[_]+" "+E:s(E,/&\f/g,v[_])))&&(f[k++]=S);return x(e,t,n,0===o?$:c,f,h,m)}function Q(e,t,n){return x(e,t,n,z,o(y),d(e,2,-2),0)}function Y(e,t,n,r){return x(e,t,n,U,d(e,0,r),d(e,r+1,-1),r)}var X=function(e,t,n){for(var r=0,a=0;r=a,a=S(),38===r&&12===a&&(t[n]=1),!O(a);)E();return T(e,b)},K=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(O(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=X(b-1,t,n);break;case 2:e[n]+=N(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=o(r)}}while(r=E());return e}(D(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var a=[],o=K(t,a),i=n.props,l=0,s=0;l<o.length;l++)for(var u=0;u<i.length;u++,s++)e.props[s]=a[l]?o[l].replace(/&\f/g,i[u]):i[u]+" "+o[l]}}},te=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function ne(e,t){switch(function(e,t){return 45^c(e,0)?(((t<<2^c(e,0))<<2^c(e,1))<<2^c(e,2))<<2^c(e,3):0}(e,t)){case 5103:return B+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return B+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return B+e+F+e+M+e+e;case 6828:case 4268:return B+e+M+e+e;case 6165:return B+e+M+"flex-"+e+e;case 5187:return B+e+s(e,/(\w+).+(:[^]+)/,B+"box-$1$2"+M+"flex-$1$2")+e;case 5443:return B+e+M+"flex-item-"+s(e,/flex-|-self/,"")+e;case 4675:return B+e+M+"flex-line-pack"+s(e,/align-content|flex-|-self/,"")+e;case 5548:return B+e+M+s(e,"shrink","negative")+e;case 5292:return B+e+M+s(e,"basis","preferred-size")+e;case 6060:return B+"box-"+s(e,"-grow","")+B+e+M+s(e,"grow","positive")+e;case 4554:return B+s(e,/([^-])(transform)/g,"$1"+B+"$2")+e;case 6187:return s(s(s(e,/(zoom-|grab)/,B+"$1"),/(image-set)/,B+"$1"),e,"")+e;case 5495:case 3959:return s(e,/(image-set\([^]*)/,B+"$1$`$1");case 4968:return s(s(e,/(.+:)(flex-)?(.*)/,B+"box-pack:$3"+M+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+B+e+e;case 4095:case 3583:case 4068:case 2532:return s(e,/(.+)-inline(.+)/,B+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(f(e)-1-t>6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return s(e,/(.+:)(.+)-([^]+)/,"$1"+B+"$2-$3$1"+F+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~u(e,"stretch")?ne(s(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,f(e)-3-(~u(e,"!important")&&10))){case 107:return s(e,":",":"+B)+e;case 101:return s(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+B+(45===c(e,14)?"inline-":"")+"box$3$1"+B+"$2$3$1"+M+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return B+e+M+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case U:e.return=ne(e.value,e.length);break;case H:return V([k(e,{value:s(e.value,"@","@"+B)})],r);case $:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([k(e,{props:[s(t,/:(read-\w+)/,":"+F+"$1")]})],r);case"::placeholder":return V([k(e,{props:[s(t,/:(plac\w+)/,":"+B+"input-$1")]}),k(e,{props:[s(t,/:(plac\w+)/,":"+F+"$1")]}),k(e,{props:[s(t,/:(plac\w+)/,M+"input-$1")]})],r)}return""}))}}],ae=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var a=e.stylisPlugins||re;var o,i,l={},s=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)l[t[n]]=!0;s.push(e)}));var u,c,d,f,h=[q,(f=function(e){u.insert(e)},function(e){e.root||(e=e.return)&&f(e)})],m=(c=[ee,te].concat(a,h),d=p(c),function(e,t,n,r){for(var a="",o=0;o<d;o++)a+=c[o](e,t,n,r)||"";return a});i=function(e,t,n,r){u=n,V(W(e?e+"{"+t.styles+"}":t.styles),m),r&&(g.inserted[t.name]=!0)};var g={key:t,sheet:new r({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:l,registered:{},insert:i};return g.sheet.hydrate(s),g}},45042:(e,t,n)=>{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:()=>r})},80123:(e,t,n)=>{"use strict";n.d(t,{C:()=>g,E:()=>T,T:()=>y,_:()=>v,a:()=>k,b:()=>_,c:()=>S,h:()=>h,i:()=>p,u:()=>w,w:()=>b});var r=n(67294),a=n(90602);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}var i=function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var r=e(n);return t.set(n,r),r}},l=n(8679),s=n.n(l),u=function(e,t){return s()(e,t)},c=n(70444),d=n(48137),f=n(27278),p=!0,h={}.hasOwnProperty,m=r.createContext("undefined"!=typeof HTMLElement?(0,a.Z)({key:"css"}):null);var g=m.Provider,v=function(){return(0,r.useContext)(m)},b=function(e){return(0,r.forwardRef)((function(t,n){var a=(0,r.useContext)(m);return e(t,a,n)}))};p||(b=function(e){return function(t){var n=(0,r.useContext)(m);return null===n?(n=(0,a.Z)({key:"css"}),r.createElement(m.Provider,{value:n},e(t,n))):e(t,n)}});var y=r.createContext({});var w=function(){return r.useContext(y)},x=i((function(e){return i((function(t){return function(e,t){return"function"==typeof t?t(e):o({},e,t)}(e,t)}))})),k=function(e){var t=r.useContext(y);return e.theme!==t&&(t=x(t)(e.theme)),r.createElement(y.Provider,{value:t},e.children)};function _(e){var t=e.displayName||e.name||"Component",n=function(t,n){var a=r.useContext(y);return r.createElement(e,o({theme:a,ref:n},t))},a=r.forwardRef(n);return a.displayName="WithTheme("+t+")",u(a,e)}var E="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",S=function(e,t){var n={};for(var r in t)h.call(t,r)&&(n[r]=t[r]);return n[E]=e,n},C=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,c.hC)(t,n,r),(0,f.L)((function(){return(0,c.My)(t,n,r)})),null};var T=b((function(e,t,n){var a=e.css;"string"==typeof a&&void 0!==t.registered[a]&&(a=t.registered[a]);var o=e[E],i=[a],l="";"string"==typeof e.className?l=(0,c.fp)(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var s=(0,d.O)(i,void 0,r.useContext(y));l+=t.key+"-"+s.name;var u={};for(var f in e)h.call(e,f)&&"css"!==f&&f!==E&&(u[f]=e[f]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(C,{cache:t,serialized:s,isStringTag:"string"==typeof o}),r.createElement(o,u))}))},70917:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CacheProvider:()=>r.C,ClassNames:()=>h,Global:()=>u,ThemeContext:()=>r.T,ThemeProvider:()=>r.a,__unsafe_useEmotionCache:()=>r._,createElement:()=>s,css:()=>c,jsx:()=>s,keyframes:()=>d,useTheme:()=>r.u,withEmotionCache:()=>r.w,withTheme:()=>r.b});var r=n(80123),a=n(67294),o=n(70444),i=n(27278),l=n(48137),s=(n(90602),n(8679),function(e,t){var n=arguments;if(null==t||!r.h.call(t,"css"))return a.createElement.apply(void 0,n);var o=n.length,i=new Array(o);i[0]=r.E,i[1]=(0,r.c)(e,t);for(var l=2;l<o;l++)i[l]=n[l];return a.createElement.apply(null,i)}),u=(0,r.w)((function(e,t){var n=e.styles,s=(0,l.O)([n],void 0,a.useContext(r.T));if(!r.i){for(var u,c=s.name,d=s.styles,f=s.next;void 0!==f;)c+=" "+f.name,d+=f.styles,f=f.next;var p=!0===t.compat,h=t.insert("",{name:c,styles:d},t.sheet,p);return p?null:a.createElement("style",((u={})["data-emotion"]=t.key+"-global "+c,u.dangerouslySetInnerHTML={__html:h},u.nonce=t.sheet.nonce,u))}var m=a.useRef();return(0,i.j)((function(){var e=t.key+"-global",n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),r=!1,a=document.querySelector('style[data-emotion="'+e+" "+s.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==a&&(r=!0,a.setAttribute("data-emotion",e),n.hydrate([a])),m.current=[n,r],function(){n.flush()}}),[t]),(0,i.j)((function(){var e=m.current,n=e[0];if(e[1])e[1]=!1;else{if(void 0!==s.next&&(0,o.My)(t,s.next,!0),n.tags.length){var r=n.tags[n.tags.length-1].nextElementSibling;n.before=r,n.flush()}t.insert("",s,n,!1)}}),[t,s.name]),null}));function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,l.O)(t)}var d=function(){var e=c.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}},f=function e(t){for(var n=t.length,r=0,a="";r<n;r++){var o=t[r];if(null!=o){var i=void 0;switch(typeof o){case"boolean":break;case"object":if(Array.isArray(o))i=e(o);else for(var l in i="",o)o[l]&&l&&(i&&(i+=" "),i+=l);break;default:i=o}i&&(a&&(a+=" "),a+=i)}}return a};var p=function(e){var t=e.cache,n=e.serializedArr;return(0,i.L)((function(){for(var e=0;e<n.length;e++)(0,o.My)(t,n[e],!1)})),null},h=(0,r.w)((function(e,t){var n=[],i=function(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];var i=(0,l.O)(r,t.registered);return n.push(i),(0,o.hC)(t,i,!1),t.key+"-"+i.name},s={css:i,cx:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return function(e,t,n){var r=[],a=(0,o.fp)(e,r,n);return r.length<2?n:a+t(r)}(t.registered,i,f(n))},theme:a.useContext(r.T)},u=e.children(s);return!0,a.createElement(a.Fragment,null,a.createElement(p,{cache:t,serializedArr:n}),u)}))},48137:(e,t,n)=>{"use strict";n.d(t,{O:()=>h});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},a=n(45042),o=/[A-Z]|^ms/g,i=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},s=function(e){return null!=e&&"boolean"!=typeof e},u=(0,a.Z)((function(e){return l(e)?e:e.replace(o,"-$&").toLowerCase()})),c=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(i,(function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1===r[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)f={name:r.name,styles:r.styles,next:f},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=d(e,t,n[a])+";";else for(var o in n){var i=n[o];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=o+"{"+t[i]+"}":s(i)&&(r+=u(o)+":"+c(o,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var l=d(e,t,i);switch(o){case"animation":case"animationName":r+=u(o)+":"+l+";";break;default:r+=o+"{"+l+"}"}}else for(var f=0;f<i.length;f++)s(i[f])&&(r+=u(o)+":"+c(o,i[f])+";")}return r}(e,t,n);case"function":if(void 0!==e){var a=f,o=n(e);return f=a,d(e,t,o)}}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var f,p=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var h=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,a="";f=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=d(n,t,o)):a+=o[0];for(var i=1;i<e.length;i++)a+=d(n,t,e[i]),r&&(a+=o[i]);p.lastIndex=0;for(var l,s="";null!==(l=p.exec(a));)s+="-"+l[1];var u=function(e){for(var t,n=0,r=0,a=e.length;a>=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+s;return{name:u,styles:a,next:f}}},27278:(e,t,n)=>{"use strict";var r;n.d(t,{L:()=>i,j:()=>l});var a=n(67294),o=!!(r||(r=n.t(a,2))).useInsertionEffect&&(r||(r=n.t(a,2))).useInsertionEffect,i=o||function(e){return e()},l=o||a.useLayoutEffect},70444:(e,t,n)=>{"use strict";n.d(t,{My:()=>o,fp:()=>r,hC:()=>a});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var a=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},o=function(e,t,n){a(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}},19044:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#fff",d:"M9 17.5V.5M.5 9h17"})))}},80255:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M11.764 5.294 7.06 10l4.705 4.706",stroke:"#000",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))}},67146:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M11.667 6.417h-7.1l3.261-3.261L7 2.333 2.333 7 7 11.667l.823-.823-3.255-3.26h7.099V6.417Z",fill:"#fff"})))}},68425:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("rect",{width:20,height:20,rx:10,fill:"#000"})),a||(a=o.createElement("path",{d:"m9 8 2 2-2 2",stroke:"#fff",strokeWidth:1.2,strokeLinecap:"round",strokeLinejoin:"round"})))}},88121:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m7 2.333-.823.823 3.255 3.26H2.333v1.167h7.1l-3.256 3.261.823.823L11.667 7 7 2.333Z",fill:"#fff"})))}},62082:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M20 20a3.21 3.21 0 0 1-2.354-.98 3.21 3.21 0 0 1-.98-2.353c0-.917.327-1.702.98-2.355A3.21 3.21 0 0 1 20 13.333a3.21 3.21 0 0 1 2.354.98 3.21 3.21 0 0 1 .98 2.354 3.21 3.21 0 0 1-.98 2.354A3.21 3.21 0 0 1 20 20Zm-6.666 6.667v-2.334c0-.472.121-.906.364-1.302.244-.396.567-.698.969-.906.86-.43 1.736-.754 2.625-.97A11.418 11.418 0 0 1 20 20.834c.917 0 1.82.108 2.709.324.888.215 1.763.538 2.625.968.402.208.725.51.969.907.243.396.364.83.364 1.301v2.334H13.333ZM15 25h10v-.667a.817.817 0 0 0-.417-.708 10.844 10.844 0 0 0-2.27-.843 9.652 9.652 0 0 0-4.625 0c-.764.187-1.521.468-2.271.843a.815.815 0 0 0-.303.292.776.776 0 0 0-.114.416V25Zm5-6.667c.459 0 .851-.163 1.178-.49.326-.326.49-.719.489-1.176 0-.459-.164-.851-.49-1.178A1.602 1.602 0 0 0 20 15c-.458 0-.85.164-1.177.49-.327.328-.49.72-.49 1.178 0 .458.164.85.49 1.177.327.327.72.49 1.177.49Z",fill:"#fff"})),a||(a=o.createElement("rect",{x:.5,y:.5,width:39,height:39,rx:19.5,stroke:"#fff"})))}},80469:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m12.667 4.273-.94-.94L8.001 7.06 4.274 3.333l-.94.94L7.061 8l-3.727 3.727.94.94L8.001 8.94l3.726 3.727.94-.94L8.941 8l3.726-3.727Z",fill:"#fff",opacity:.6})))}},94793:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M2.917 12.833c-.321 0-.596-.114-.825-.343a1.121 1.121 0 0 1-.342-.823V3.5h1.167v8.167h6.416v1.166H2.917ZM5.25 10.5c-.32 0-.596-.114-.824-.343a1.121 1.121 0 0 1-.343-.824v-7c0-.32.115-.595.343-.824.229-.229.504-.343.824-.342h5.25c.32 0 .596.114.824.343.229.228.343.503.343.823v7c0 .321-.115.596-.343.825a1.121 1.121 0 0 1-.824.342H5.25Zm0-1.167h5.25v-7H5.25v7Z",fill:"#fff"})))}},14607:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M14.2 23.077c-1.733 0-3.147-1.575-3.147-3.504 0-1.926 1.379-3.5 3.149-3.5 1.75 0 3.183 1.574 3.148 3.5 0 1.929-1.398 3.504-3.15 3.504Zm11.623 0c-1.733 0-3.15-1.575-3.15-3.504 0-1.926 1.382-3.5 3.15-3.5 1.75 0 3.184 1.574 3.15 3.5 0 1.929-1.381 3.504-3.15 3.504ZM16.875 7.205l-.513-.938-1.057.175a27.255 27.255 0 0 0-6.93 2.133l-.38.177-.237.348C3.403 15.523 2.208 21.847 2.8 28.06l.065.677.55.4a28.181 28.181 0 0 0 8.463 4.238l1.317.403 1.855-4.528c3.183.787 6.717.788 9.898 0l1.845 4.53 1.317-.405a28.033 28.033 0 0 0 8.467-4.24l.545-.397.066-.67c.727-7.2-1.161-13.473-4.93-18.975l-.236-.345-.38-.173a27.625 27.625 0 0 0-6.924-2.133l-1.03-.172-.523.902c-.155.27-.301.544-.438.823a26.463 26.463 0 0 0-5.439 0c-.133-.266-.27-.53-.413-.79Zm-5.683 20.478c.328.19.675.377 1.016.547l-.748 1.827a25.041 25.041 0 0 1-5.713-2.964c-.375-5.231.688-10.508 4.273-15.95a24.256 24.256 0 0 1 4.707-1.521c.1.208.193.411.27.593l.455 1.072 1.153-.169a23.508 23.508 0 0 1 6.817 0l1.15.167.453-1.07c.078-.187.17-.39.267-.593a24.71 24.71 0 0 1 4.713 1.525c3.125 4.7 4.702 9.943 4.243 15.945a24.841 24.841 0 0 1-5.716 2.963l-.742-1.823c.343-.172.69-.359 1.022-.549.816-.47 1.695-1.056 2.255-1.616l-2.134-2.134c-.271.274-.871.7-1.628 1.137-.74.427-1.475.772-1.945.927-3.338 1.105-7.38 1.105-10.72 0-.468-.155-1.203-.5-1.943-.927-.757-.435-1.357-.863-1.63-1.137l-2.134 2.134c.562.56 1.442 1.146 2.259 1.616Z",fill:"#fff"})))}},50437:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:71,height:55,viewBox:"0 0 71 55",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("g",{clipPath:"url(#a)"},o.createElement("path",{d:"M60.105 4.898A58.55 58.55 0 0 0 45.653.415a.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 18.73-.944 32.144.293 45.39a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378c.372-.279.744-.569 1.1-.862a.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.961a.228.228 0 0 0 .092-.164c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084Zm-36.38 32.427c-3.497 0-6.38-3.211-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156Zm23.593 0c-3.498 0-6.38-3.211-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156Z",fill:"#23272A"}))),a||(a=o.createElement("defs",null,o.createElement("clipPath",{id:"a"},o.createElement("path",{fill:"#fff",d:"M0 0h71v55H0z"})))))}},23179:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),void 0===t?a.createElement("title",{id:n},"Discourse"):t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"})))}},7744:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M9.334 1.333H4c-.733 0-1.326.6-1.326 1.334l-.007 10.666c0 .734.593 1.334 1.327 1.334H12c.734 0 1.334-.6 1.334-1.334v-8l-4-4ZM4 13.333V2.667h4.667V6H12v7.333H4Z",fill:"#fff"})))}},19818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("circle",{cx:10,cy:10,r:8.333,fill:"#fff"})))}},38981:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M7 9.333 4.083 6.417 4.9 5.57l1.517 1.517V2.333h1.166v4.755L9.1 5.57l.817.846L7 9.333Zm-3.5 2.334c-.32 0-.596-.115-.824-.343a1.121 1.121 0 0 1-.343-.824V8.75H3.5v1.75h7V8.75h1.167v1.75c0 .32-.115.596-.343.824a1.121 1.121 0 0 1-.824.343h-7Z",fill:"#fff"})))}},28487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:12,height:12,viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m2 4 4 4 4-4",stroke:"#909091",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"})))}},94177:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.707 2.393.9.9c.526.52.526 1.367 0 1.887L4.787 14H2v-2.787l6.933-6.94 1.887-1.88c.52-.52 1.367-.52 1.887 0ZM3.333 12.667l.94.04 6.547-6.554-.94-.94-6.547 6.547v.907Z",fill:"#fff"})))}},96867:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M14.667 2.667H1.34l-.007 10.667h13.334V2.667ZM13.333 12H2.667V5.334L8 8.667l5.333-3.333V12ZM8 7.334 2.667 4h10.666L8 7.334Z",fill:"#fff"})))}},58611:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.192 4H3.428V2.857h9.715v9.715H12V4.808l-8.167 8.168-.809-.808L11.192 4Z",fill:"#fff"})))}},13042:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M1.804 16.292a.836.836 0 0 0 .696.374H15a.832.832 0 0 0 .766-.505l2.5-5.833a.833.833 0 0 0-.766-1.162h-.833v-2.5C16.667 5.747 15.919 5 15 5H9.454l-2.13-1.667h-3.99c-.92 0-1.667.748-1.667 1.667v10.833h.006a.834.834 0 0 0 .131.46ZM15 6.666v2.5H5a.832.832 0 0 0-.766.505l-.9 2.103V6.666H15Z",fill:"#000"})))}},96367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M4.667 11.083v-1.75h-1.75V8.166h2.916v2.917H4.667Zm3.5 0V8.166h2.916v1.167h-1.75v1.75H8.167Zm-5.25-5.25V4.666h1.75v-1.75h1.166v2.917H2.917Zm5.25 0V2.916h1.166v1.75h1.75v1.167H8.167Z",fill:"#fff"})))}},6907:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M1.75 2.917V5.25h1.167V2.917H5.25V1.75H2.917A1.17 1.17 0 0 0 1.75 2.917ZM2.917 8.75H1.75v2.333a1.17 1.17 0 0 0 1.167 1.167H5.25v-1.167H2.917V8.75Zm8.166 2.333H8.75v1.167h2.333a1.17 1.17 0 0 0 1.167-1.167V8.75h-1.167v2.333Zm0-9.333H8.75v1.167h2.333V5.25h1.167V2.917a1.17 1.17 0 0 0-1.167-1.167Z",fill:"#fff"})))}},59570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M20 4.4a16 16 0 0 0-16 16c0 7.072 4.592 13.072 10.944 15.2.8.128 1.056-.368 1.056-.8v-2.704c-4.432.96-5.376-2.144-5.376-2.144-.736-1.856-1.776-2.352-1.776-2.352-1.456-.992.112-.96.112-.96 1.6.112 2.448 1.648 2.448 1.648C12.8 30.72 15.152 30 16.064 29.616c.144-1.04.56-1.744 1.008-2.144-3.552-.4-7.28-1.776-7.28-7.872 0-1.776.608-3.2 1.648-4.336-.16-.4-.72-2.064.16-4.224 0 0 1.344-.432 4.4 1.632a15.075 15.075 0 0 1 4-.528c1.36 0 2.736.176 4 .528 3.056-2.064 4.4-1.632 4.4-1.632.88 2.16.32 3.824.16 4.224 1.04 1.136 1.648 2.56 1.648 4.336 0 6.112-3.744 7.456-7.312 7.856.576.496 1.104 1.472 1.104 2.96V34.8c0 .432.256.944 1.072.8C31.424 33.456 36 27.472 36 20.4a16.001 16.001 0 0 0-16-16Z",fill:"#fff"})))}},26890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M256 411.12 0 202.667 256 0zM256 411.12l256-208.453L256 0z"})),a||(a=o.createElement("circle",{cx:256,cy:362.667,r:149.333})))}},42924:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"m4 13.333.667-2.666H2.333l.334-1.334H5l.667-2.666H3l.333-1.334H6l.667-2.666H8l-.667 2.666H10l.667-2.666H12l-.667 2.666h2.334l-.334 1.334H11l-.667 2.666H13l-.333 1.334H10l-.667 2.666H8l.667-2.666H6l-.667 2.666H4Zm2.333-4H9l.667-2.666H7l-.667 2.666Z",fill:"#fff"})))}},74297:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M8 14c-1.533 0-2.87-.508-4.009-1.525-1.139-1.017-1.791-2.287-1.958-3.808H3.4c.156 1.155.67 2.11 1.542 2.866.872.756 1.892 1.134 3.058 1.134 1.3 0 2.403-.453 3.309-1.359.905-.906 1.358-2.008 1.358-3.308 0-1.3-.453-2.403-1.359-3.309C10.402 3.786 9.3 3.333 8 3.333a4.5 4.5 0 0 0-2.15.534 4.954 4.954 0 0 0-1.683 1.466H6v1.334H2v-4h1.333v1.566A5.954 5.954 0 0 1 8 2c.833 0 1.614.158 2.342.475a6.107 6.107 0 0 1 1.9 1.283c.539.54.966 1.172 1.283 1.9C13.842 6.386 14 7.166 14 8c0 .833-.158 1.614-.475 2.342a6.108 6.108 0 0 1-1.283 1.9 6.11 6.11 0 0 1-1.9 1.283A5.793 5.793 0 0 1 8 14Zm1.867-3.2L7.333 8.267v-3.6h1.334v3.066L10.8 9.867l-.933.933Z",fill:"#fff"})))}},33336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12.667 2A1.333 1.333 0 0 1 14 3.333v9.334A1.334 1.334 0 0 1 12.667 14H3.333A1.334 1.334 0 0 1 2 12.667V3.333A1.333 1.333 0 0 1 3.333 2h9.334Zm-.334 10.333V8.8a2.173 2.173 0 0 0-2.173-2.173c-.567 0-1.227.346-1.547.866v-.74h-1.86v5.58h1.86V9.047a.93.93 0 1 1 1.86 0v3.286h1.86ZM4.587 5.707a1.12 1.12 0 0 0 1.12-1.12 1.124 1.124 0 1 0-1.12 1.12Zm.926 6.626v-5.58H3.667v5.58h1.846Z",fill:"#fff"})))}},78951:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#fff",d:"M.5 9h17"})))}},84629:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,a,o=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("g",{clipPath:"url(#a)"},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.79 6.75a4.979 4.979 0 1 1 9.957 0 4.979 4.979 0 0 1-9.957 0ZM6.768.572a6.179 6.179 0 1 0 3.817 11.037l5.146 5.146a1 1 0 0 0 1.414-1.414l-5.207-5.207A6.179 6.179 0 0 0 6.768.571Z",fill:"#000"}))),a||(a=o.createElement("defs",null,o.createElement("clipPath",{id:"a"},o.createElement("path",{fill:"#fff",d:"M0 0h18v18H0z"})))))}},23816:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:179,height:178,viewBox:"0 0 179 178",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M104.512 88.178c-10.667.615-17.352-1.87-28.02-1.254a44.732 44.732 0 0 0-7.853 1.146c1.575-19.73 15.538-36.988 34.525-38.085 11.652-.672 23.298 6.522 23.93 18.2.621 11.479-8.131 19.158-22.58 19.992l-.002.001Zm-28.645 40.355c-11.162.631-22.317-6.104-22.923-17.033-.596-10.742 7.79-17.93 21.633-18.71 10.218-.575 16.623 1.751 26.84 1.174a43.776 43.776 0 0 0 7.522-1.073c-1.506 18.464-14.881 34.617-33.072 35.642ZM89.5.001C40.346 0 .5 39.846.5 89c0 49.154 39.846 89 89 89s89-39.847 89-89-39.846-89-89-89",fill:"#000"})))}},35245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.906 17.987c9.395-4.094 15.66-6.792 18.795-8.096 8.95-3.723 10.81-4.37 12.022-4.39.267-.005.863.06 1.249.374.326.264.416.622.459.873.043.25.096.822.053 1.268-.485 5.097-2.583 17.463-3.65 23.171-.453 2.415-1.342 3.225-2.203 3.304-1.872.172-3.293-1.237-5.106-2.425-2.836-1.86-4.439-3.017-7.192-4.831-3.182-2.097-1.12-3.25.694-5.133.475-.493 8.72-7.993 8.88-8.674.02-.085.039-.402-.15-.57-.188-.167-.466-.11-.667-.064-.284.064-4.816 3.06-13.594 8.985-1.286.883-2.451 1.314-3.495 1.29-1.15-.024-3.364-.65-5.01-1.185-2.018-.656-3.622-1.003-3.483-2.117.073-.58.872-1.174 2.398-1.78Z",fill:"#fff"})))}},68902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:24,height:24,xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421},"aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M12 0C5.374 0 0 5.372 0 12c0 6.627 5.374 12 12 12 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12Zm3.224 17.871c.188.133.43.166.646.085a.678.678 0 0 0 .422-.491c.507-2.382 1.737-8.412 2.198-10.578a.457.457 0 0 0-.151-.443.47.47 0 0 0-.465-.082c-2.446.906-9.979 3.732-13.058 4.871a.484.484 0 0 0-.316.467.483.483 0 0 0 .346.445c1.381.413 3.193.988 3.193.988s.847 2.558 1.288 3.858a.512.512 0 0 0 .352.336.505.505 0 0 0 .474-.121l1.805-1.704s2.084 1.527 3.266 2.369Zm-6.423-5.062.98 3.231.218-2.046 5.941-5.358a.162.162 0 0 0 .019-.22.165.165 0 0 0-.219-.037l-6.939 4.43Z"})))}},86089:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:17,height:14,viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M16.557 1.597a6.802 6.802 0 0 1-1.95.534A3.406 3.406 0 0 0 16.1.251a6.782 6.782 0 0 1-2.157.824 3.398 3.398 0 0 0-5.788 3.1A9.647 9.647 0 0 1 1.153.624a3.395 3.395 0 0 0-.059 3.31c.264.494.645.915 1.11 1.225a3.389 3.389 0 0 1-1.538-.425v.044a3.398 3.398 0 0 0 2.725 3.33c-.5.136-1.025.156-1.534.06a3.399 3.399 0 0 0 3.173 2.357A6.817 6.817 0 0 1 0 11.934a9.607 9.607 0 0 0 5.207 1.526c6.249 0 9.665-5.176 9.665-9.665 0-.146-.004-.293-.01-.439A6.905 6.905 0 0 0 16.556 1.6l.001-.002Z",fill:"#000"})))}},92358:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,a=n(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M22.62 19.134 32.63 7.5h-2.373l-8.69 10.102L14.627 7.5H6.62l10.496 15.275-10.496 12.2h2.372l9.177-10.668 7.33 10.668h8.005L22.62 19.134Zm-3.248 3.776-1.063-1.521L9.847 9.285h3.643l6.829 9.768 1.063 1.521 8.877 12.697h-3.643l-7.244-10.36v-.001Z",fill:"#fff"})))}},4074:(e,t,n)=>{"use strict";n.r(t),n.d(t,{HOSTNAMES:()=>o,SCRIPT_URL:()=>a,SITE_ID:()=>r});const r="FUTMI",a="https://fathom.status.im/tracker.js",o=[]},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(87462),o=n(68356),i=n.n(o),l=n(16887);const s={"0444839e":[()=>n.e(175).then(n.bind(n,62093)),"@site/docs/guides/js-waku/manage-filter.md",62093],"0f1b9a4a":[()=>n.e(5158).then(n.bind(n,36280)),"@site/docs/guides/js-waku/run-waku-nodejs.md",36280],"1067bd84":[()=>Promise.all([n.e(532),n.e(4881),n.e(5447)]).then(n.bind(n,45173)),"@site/docs/learn/faq.md",45173],"1236ce69":[()=>n.e(3235).then(n.bind(n,64180)),"@site/docs/research/research-and-studies/rln-key-benchmarks.md",64180],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,18652)),"@theme/DocItem",18652],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,93717)),"@theme/DocPage",93717],"1f1f54c7":[()=>n.e(2285).then(n.bind(n,55345)),"@site/docs/guides/js-waku/store-retrieve-messages.md",55345],20987266:[()=>Promise.all([n.e(532),n.e(4881),n.e(7442)]).then(n.bind(n,26820)),"@site/docs/guides/nwaku/faq.md",26820],"2f51beae":[()=>n.e(231).then(n.bind(n,59043)),"@site/docs/learn/concepts/discv5.md",59043],"3b240eda":[()=>Promise.all([n.e(532),n.e(3178)]).then(n.bind(n,68458)),"@site/docs/guides/js-waku/use-waku-react.md",68458],"3fbcf129":[()=>n.e(8173).then(n.bind(n,71899)),"@site/docs/research/research-and-studies/message-propagation.md",71899],"406e0176":[()=>Promise.all([n.e(532),n.e(3855)]).then(n.bind(n,89472)),"@site/docs/guides/nwaku/run-node.md",89472],"41a4e09e":[()=>n.e(9169).then(n.bind(n,68518)),"@site/docs/learn/waku-vs-libp2p.md",68518],"488ca57d":[()=>Promise.all([n.e(532),n.e(6839)]).then(n.bind(n,76201)),"@site/docs/guides/js-waku/index.md",76201],"4aba8864":[()=>n.e(357).then(n.bind(n,19034)),"@site/docs/learn/glossary.md",19034],"4bb5c570":[()=>n.e(161).then(n.bind(n,46771)),"@site/docs/guides/js-waku/configure-discovery.md",46771],"4e726341":[()=>n.e(2588).then(n.bind(n,82493)),"@site/docs/research/research-and-studies/incentivisation.md",82493],"500a151f":[()=>n.e(4545).then(n.bind(n,41725)),"@site/docs/terms.md",41725],"5277fe18":[()=>Promise.all([n.e(532),n.e(1374)]).then(n.bind(n,48153)),"@site/docs/guides/js-waku/use-waku-create-app.md",48153],"570575fa":[()=>n.e(345).then(n.bind(n,73266)),"@site/docs/research/benchmarks/test-results-summary.md",73266],"606377f0":[()=>n.e(5832).then(n.bind(n,89955)),"@site/docs/learn/security-features.md",89955],60832973:[()=>n.e(7304).then(n.bind(n,40259)),"@site/docs/guides/nwaku/configure-nwaku.md",40259],"63c569e1":[()=>n.e(1160).then(n.bind(n,45557)),"@site/docs/migrations/js-waku/migration_v0.026_0.027.md",45557],"6778e957":[()=>n.e(3292).then(n.bind(n,82844)),"@site/docs/learn/concepts/peer-discovery.md",82844],"6c6e315a":[()=>n.e(8319).then(n.bind(n,40029)),"@site/docs/learn/research.md",40029],"6e8bfb6f":[()=>n.e(6512).then(n.bind(n,16783)),"@site/docs/guides/nwaku/run-docker.md",16783],"7c28fd94":[()=>n.e(906).then(n.bind(n,17217)),"@site/docs/guides/nwaku/run-docker-compose.md",17217],"80a3009a":[()=>n.e(3116).then(n.bind(n,67868)),"@site/docs/learn/concepts/peer-exchange.md",67868],"80ec2a43":[()=>n.e(3634).then(n.bind(n,69399)),"@site/docs/guides/nwaku/config-methods.md",69399],"8a655033":[()=>n.e(1385).then(n.bind(n,45948)),"@site/docs/guides/nwaku/configure-discovery.md",45948],"8c5da4da":[()=>n.e(1923).then(n.bind(n,88006)),"@site/docs/privacy-policy.md",88006],"8eff6037":[()=>n.e(5844).then(n.bind(n,64985)),"@site/docs/guides/nwaku/config-options.md",64985],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"97983a7b":[()=>n.e(1937).then(n.bind(n,56055)),"@site/docs/research/research-and-studies/capped-bandwidth.md",56055],a44b8792:[()=>n.e(5787).then(n.bind(n,33447)),"@site/docs/learn/concepts/dns-discovery.md",33447],a494bfbc:[()=>Promise.all([n.e(532),n.e(4881),n.e(2675)]).then(n.bind(n,43815)),"@site/docs/guides/js-waku/faq.md",43815],b54b2767:[()=>n.e(727).then(n.bind(n,12381)),"@site/docs/learn/concepts/network-domains.md",12381],b551b2b5:[()=>n.e(101).then(n.bind(n,46645)),"@site/docs/guides/nwaku/find-node-address.md",46645],b99d0044:[()=>n.e(1201).then(n.bind(n,34765)),"@site/docs/learn/waku-network.md",34765],c57f3997:[()=>n.e(7683).then(n.bind(n,56804)),"@site/docs/guides/js-waku/light-send-receive.md",56804],c5bc235e:[()=>n.e(830).then(n.t.bind(n,83769,19)),"/home/jenkins/workspace/website/docs.waku.org/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],c764ec94:[()=>n.e(3076).then(n.bind(n,73979)),"@site/docs/learn/concepts/content-topics.md",73979],c9ea0dcf:[()=>n.e(2941).then(n.bind(n,22103)),"@site/docs/guides/getting-started.md",22103],d3c3b3be:[()=>Promise.all([n.e(532),n.e(4881),n.e(8824)]).then(n.bind(n,46442)),"@site/docs/guides/nwaku/upgrade-instructions.md",46442],d53fc737:[()=>n.e(6471).then(n.bind(n,57704)),"@site/docs/rules-of-engagement.md",57704],db32d859:[()=>n.e(6653).then(n.bind(n,47215)),"@site/docs/security.md",47215],df0a719b:[()=>n.e(6059).then(n.bind(n,61131)),"@site/docs/research/research-and-studies/maximum-bandwidth.md",61131],df28445d:[()=>Promise.all([n.e(532),n.e(2355)]).then(n.bind(n,30282)),"@site/docs/guides/js-waku/message-encryption.md",30282],e168415d:[()=>n.e(5306).then(n.bind(n,96608)),"@site/docs/research/benchmarks/postgres-adoption.md",96608],e610d71e:[()=>n.e(617).then(n.bind(n,92247)),"@site/docs/guides/js-waku/debug-waku-dapp.md",92247],e63bb37c:[()=>n.e(6321).then(n.bind(n,77362)),"@site/docs/learn/concepts/static-peers.md",77362],ef85d46a:[()=>n.e(6618).then(n.bind(n,63351)),"@site/docs/learn/concepts/transports.md",63351],f2470003:[()=>Promise.all([n.e(532),n.e(2811)]).then(n.bind(n,43733)),"@site/docs/guides/nwaku/build-source.md",43733],f7974e9c:[()=>n.e(5838).then(n.bind(n,34602)),"@site/docs/research/index.md",34602],fb5ea66b:[()=>n.e(5740).then(n.bind(n,898)),"@site/docs/learn/concepts/protocols.md",898]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>Promise.all([n.e(532),n.e(2568)]).then(n.bind(n,92568)),modules:["@theme/NotFound"],webpack:()=>[92568],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],h=[],m=(0,c.Z)(o);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),h.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/",component:f("/","3c9"),routes:[{path:"/",component:f("/","0f1"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/",component:f("/guides/js-waku/","9af"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/configure-discovery",component:f("/guides/js-waku/configure-discovery","dfe"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/debug-waku-dapp",component:f("/guides/js-waku/debug-waku-dapp","c0d"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/faq",component:f("/guides/js-waku/faq","1ad"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/light-send-receive",component:f("/guides/js-waku/light-send-receive","77b"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/manage-filter",component:f("/guides/js-waku/manage-filter","d72"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/message-encryption",component:f("/guides/js-waku/message-encryption","d96"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/run-waku-nodejs",component:f("/guides/js-waku/run-waku-nodejs","30f"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/store-retrieve-messages",component:f("/guides/js-waku/store-retrieve-messages","1c5"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/use-waku-create-app",component:f("/guides/js-waku/use-waku-create-app","76f"),exact:!0,sidebar:"guides"},{path:"/guides/js-waku/use-waku-react",component:f("/guides/js-waku/use-waku-react","ed9"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/build-source",component:f("/guides/nwaku/build-source","995"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/config-methods",component:f("/guides/nwaku/config-methods","c44"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/config-options",component:f("/guides/nwaku/config-options","def"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/configure-discovery",component:f("/guides/nwaku/configure-discovery","a6b"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/configure-nwaku",component:f("/guides/nwaku/configure-nwaku","a95"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/faq",component:f("/guides/nwaku/faq","ad1"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/find-node-address",component:f("/guides/nwaku/find-node-address","786"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-docker",component:f("/guides/nwaku/run-docker","d03"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-docker-compose",component:f("/guides/nwaku/run-docker-compose","ca4"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/run-node",component:f("/guides/nwaku/run-node","9f1"),exact:!0,sidebar:"guides"},{path:"/guides/nwaku/upgrade-instructions",component:f("/guides/nwaku/upgrade-instructions","8ee"),exact:!0,sidebar:"guides"},{path:"/learn/concepts/content-topics",component:f("/learn/concepts/content-topics","45b"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/discv5",component:f("/learn/concepts/discv5","01f"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/dns-discovery",component:f("/learn/concepts/dns-discovery","c5b"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/network-domains",component:f("/learn/concepts/network-domains","5d8"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/peer-discovery",component:f("/learn/concepts/peer-discovery","913"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/peer-exchange",component:f("/learn/concepts/peer-exchange","e58"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/protocols",component:f("/learn/concepts/protocols","13a"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/static-peers",component:f("/learn/concepts/static-peers","9c6"),exact:!0,sidebar:"learn"},{path:"/learn/concepts/transports",component:f("/learn/concepts/transports","6fb"),exact:!0,sidebar:"learn"},{path:"/learn/faq",component:f("/learn/faq","74d"),exact:!0,sidebar:"learn"},{path:"/learn/glossary",component:f("/learn/glossary","cf5"),exact:!0,sidebar:"learn"},{path:"/learn/research",component:f("/learn/research","13c"),exact:!0,sidebar:"learn"},{path:"/learn/security-features",component:f("/learn/security-features","72b"),exact:!0,sidebar:"learn"},{path:"/learn/waku-network",component:f("/learn/waku-network","f0c"),exact:!0,sidebar:"learn"},{path:"/learn/waku-vs-libp2p",component:f("/learn/waku-vs-libp2p","c45"),exact:!0,sidebar:"learn"},{path:"/migrations/js-waku/migration_v0.026_0.027",component:f("/migrations/js-waku/migration_v0.026_0.027","949"),exact:!0},{path:"/privacy-policy",component:f("/privacy-policy","4cd"),exact:!0},{path:"/research/",component:f("/research/","e8b"),exact:!0,sidebar:"research"},{path:"/research/benchmarks/postgres-adoption",component:f("/research/benchmarks/postgres-adoption","563"),exact:!0,sidebar:"research"},{path:"/research/benchmarks/test-results-summary",component:f("/research/benchmarks/test-results-summary","6d0"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/capped-bandwidth",component:f("/research/research-and-studies/capped-bandwidth","ee6"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/incentivisation",component:f("/research/research-and-studies/incentivisation","d49"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/maximum-bandwidth",component:f("/research/research-and-studies/maximum-bandwidth","80a"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/message-propagation",component:f("/research/research-and-studies/message-propagation","46a"),exact:!0,sidebar:"research"},{path:"/research/research-and-studies/rln-key-benchmarks",component:f("/research/research-and-studies/rln-key-benchmarks","5d8"),exact:!0,sidebar:"research"},{path:"/rules-of-engagement",component:f("/rules-of-engagement","0fc"),exact:!0},{path:"/security",component:f("/security","2fb"),exact:!0},{path:"/terms",component:f("/terms","37d"),exact:!0}]},{path:"*",component:f("*")}]},26724:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.onRouteDidUpdate=void 0;const r=n(70655),a=n(4074);r.__importDefault(n(10412)).default.canUseDOM&&(()=>{if(a.HOSTNAMES.length>0?!a.HOSTNAMES.includes(window.location.hostname):"localhost"===window.location.hostname)return;!function(e,t,n,r){t[r]=t[r]||function(){(t[r].q=t[r].q||[]).push(arguments)};const a=e.createElement("script"),o=e.getElementsByTagName("script")[0];a.async=1,a.src=n,a.id="fathom-script",o.parentNode.insertBefore(a,o)}(document,window,a.SCRIPT_URL,"fathom");const{fathom:e}=window;e("set","siteId",a.SITE_ID),e("trackPageview")})();t.onRouteDidUpdate=e=>{let{location:t,previousLocation:n}=e;window.fathom&&t.pathname!==n?.pathname&&window.fathom("trackPageview")}},85711:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createPromise=t.ResultType=void 0;const r=n(70655),a=n(90022),o=n(91073),i=n(67133),l=n(98202),s=r.__importStar(n(61029)),u=e=>{let{versionUrl:t,searchContextByPaths:n}=e,r=window.location.pathname;if(r=r.endsWith("/")?r:r+"/",!Array.isArray(n)||!r.startsWith(t))return"";const a=r.substring(t.length);return n.find((e=>a===e||a.startsWith(`${e}/`)))??""};class c{constructor(e){this.config=e,this.loading=!1,this.source=null,this.init=async()=>{this.loading=!0;const{wrappedIndexes:e,zhDictionary:t}=await(async e=>{const{wrappedIndexes:t,zhDictionary:n}=await(0,a.fetchIndexes)(e.versionUrl,e.searchContext);return{wrappedIndexes:t,zhDictionary:n}})({versionUrl:this.baseUrl,searchContext:u({versionUrl:this.baseUrl,searchContextByPaths:this.searchContextByPaths})});this.source=(0,l.SearchSourceFactory)(e,t,this.config.resultsLimit)},this.query=async e=>{if(!this.source)throw new Error("Not initialized");const{promise:n,callback:r}=(0,t.createPromise)();return this.source&&this.source(e,r),{results:(await n).map((e=>this.formatResult(e)))}},this.formatResult=e=>({...e,type:this.resultTypeToString(e.type),page:e.page?this.formatDocument(e.page):null,document:e.document?this.formatDocument(e.document):null,highlighted:(0,i.highlightStemmed)(e.document.t,(0,o.getStemmedPositions)(e.metadata,"t"),e.tokens)}),this.resultTypeToString=e=>({0:d.Title,1:d.Heading,2:d.Paragraph}[e]),this.formatDocument=e=>({id:e.i,title:e.t,url:e.u,hash:e.h,parentId:e.p,breadcrumb:e.b,sectionTitle:e.s}),this.baseUrl=e.preferredVersionPath,this.searchContextByPaths=e.searchContextByPaths??""}}var d;!function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(d=t.ResultType||(t.ResultType={}));t.createPromise=()=>{let e,t;const n=new Promise(((n,r)=>{e=n,t=r}));return{reject:t,resolve:e,promise:n,callback:(n,r)=>{r?t(r):e(n)}}};(async()=>{if("undefined"==typeof window)return;const e=window;e.getProxiedGeneratedData=()=>s,e.createSearchInstance=async e=>new c(e)})()},55061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IconEmail=t.IconRemove=t.IconAdd=t.IconDownload=t.IconAvatar=t.IconX=t.IconTelegramWhite=t.IconDiscordWhite=t.IconExternalLink=t.IconFullscreenExit=t.IconFullscreen=t.IconEdit=t.IconClose=t.IconHistory=t.IconCopy=t.IconGScholar=t.IconDropdown=t.IconSearch=t.IconFolderFilled=t.IconDot=t.IconLinkedin=t.IconDiscourse=t.IconTelegram=t.IconTwitter=t.IconStatus=t.IconDiscord=t.IconGithub=t.IconFolder=t.IconArrowLeft=t.IconArrowRight=t.IconArrowLeftCircle=t.IconArrowRightCircle=t.Icon=void 0;const r=n(70655),a=n(86010),o=r.__importDefault(n(67294)),i=r.__importDefault(n(27861)),l=r.__importDefault(n(19044)),s=r.__importDefault(n(80255)),u=r.__importDefault(n(67146)),c=r.__importDefault(n(68425)),d=r.__importDefault(n(88121)),f=r.__importDefault(n(62082)),p=r.__importDefault(n(80469)),h=r.__importDefault(n(94793)),m=r.__importDefault(n(14607)),g=r.__importDefault(n(50437)),v=r.__importDefault(n(23179)),b=r.__importDefault(n(19818)),y=r.__importDefault(n(38981)),w=r.__importDefault(n(28487)),x=r.__importDefault(n(94177)),k=r.__importDefault(n(58611)),_=r.__importDefault(n(13042)),E=r.__importDefault(n(96367)),S=r.__importDefault(n(6907)),C=r.__importDefault(n(59570)),T=r.__importDefault(n(26890)),O=r.__importDefault(n(74297)),D=r.__importDefault(n(33336)),P=r.__importDefault(n(78951)),N=r.__importDefault(n(84629)),I=r.__importDefault(n(23816)),A=r.__importDefault(n(35245)),L=r.__importDefault(n(68902)),R=r.__importDefault(n(86089)),j=r.__importDefault(n(92358)),M=r.__importDefault(n(96867));t.Icon=e=>{const{children:t,size:n="m"}=e;return o.default.createElement("div",{className:(0,a.clsx)(i.default.icon,i.default[n],e.stroke&&i.default.stroke,e.fill&&i.default.fill,e.className&&e.className)},t)};t.IconArrowRightCircle=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(c.default,null));t.IconArrowLeftCircle=e=>o.default.createElement(t.Icon,null,o.default.createElement(s.default,null));t.IconArrowRight=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(d.default,null));t.IconArrowLeft=e=>o.default.createElement(t.Icon,null,o.default.createElement(u.default,null));t.IconFolder=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(_.default,null));t.IconGithub=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(C.default,null));t.IconDiscord=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(g.default,null));t.IconStatus=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(I.default,null));t.IconTwitter=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(R.default,null));t.IconTelegram=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(L.default,null));t.IconDiscourse=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(v.default,null));t.IconLinkedin=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(D.default,null));t.IconDot=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(b.default,null));t.IconFolderFilled=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(_.default,null));t.IconSearch=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(N.default,null));t.IconDropdown=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(w.default,null));t.IconGScholar=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(T.default,null));t.IconCopy=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(h.default,null));t.IconHistory=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(O.default,null));t.IconClose=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(p.default,null));t.IconEdit=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(x.default,null));t.IconFullscreen=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(S.default,null));t.IconFullscreenExit=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(E.default,null));t.IconExternalLink=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(k.default,null));t.IconDiscordWhite=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(m.default,null));t.IconTelegramWhite=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(A.default,null));t.IconX=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(j.default,null));t.IconAvatar=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(f.default,null));t.IconDownload=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(y.default,null));t.IconAdd=e=>o.default.createElement(t.Icon,{...e,stroke:!0},o.default.createElement(l.default,null));t.IconRemove=e=>o.default.createElement(t.Icon,{...e,stroke:!0},o.default.createElement(P.default,null));t.IconEmail=e=>o.default.createElement(t.Icon,{...e},o.default.createElement(M.default,null))},78870:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(55061),t)},40466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;const r=n(70655),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294)),i=n(89164),l=n(96507),s=n(38954);n(22473);t.Modal=e=>{let{open:t=!1,onClose:n,keepMounted:r=!1,className:u,children:c,...d}=e;const f=(0,l.useHydrated)(),p=()=>{n&&n()};return(0,i.useKeyPressEvent)((e=>"Escape"===e.code),(e=>{p()})),f&&(t||r)?o.default.createElement(s.Portal,{containerId:"lsd-presentation",id:d.id},o.default.createElement("div",{className:(0,a.default)(u,"l-modal",t&&"l-modal--open"),...d},o.default.createElement("div",{className:"l-modal__container"},o.default.createElement("div",{className:"l-modal__content"},c),o.default.createElement("div",{className:"l-modal__backdrop",onClick:p})))):o.default.createElement(o.default.Fragment,null)}},38954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Portal=void 0;const r=n(70655).__importDefault(n(67294)),a=n(73935),o=n(40653);t.Portal=e=>{let{children:t,containerId:n,id:i}=e;if("undefined"==typeof window)return r.default.createElement(r.default.Fragment,null);const l=(0,o.usePortal)({parentId:n});return(0,a.createPortal)(t,l,i)}},40653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePortal=void 0;const r=n(67294),a=n(89321);t.usePortal=e=>{let{parentId:t}=e;const n=(0,r.useRef)();return n.current||(n.current=document.createElement("div")),(0,r.useEffect)((()=>{if(n.current)return document.getElementById(t)?.appendChild(n.current),()=>{const e=n.current;e&&(0,a.settleSync)((()=>document.getElementById(t)?.removeChild(e)))}}),[t,n.current]),n.current}},19843:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LightBoxWrapper=t.useLightBox=t.LightBoxContext=t.LightBoxProvider=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(29785)),i=r.__importDefault(n(86010)),l=r.__importStar(n(67294)),s=r.__importStar(n(33199)),u=n(89164),c=n(55061),d=n(38954),f=n(96507),p=n(53708),h=r.__importDefault(n(10153));t.LightBoxProvider=e=>{let{children:n}=e;const r=(0,f.useHydrated)(),s=(0,u.useWindowScroll)(),[m,g]=(0,l.useState)(null),[v,b]=(0,l.useState)({opacity:"0.5"}),y=(0,p.useIsMobile)(),w=(0,l.useMemo)((()=>({opacity:1,transform:"scale(1) translate(0px, 0px)",transition:"0.3s"})),[m]),x=e=>{g(e);const t=document.body.clientWidth,n=window.innerHeight,r=window.innerWidth>768?.9375*t:t-32,a=n-128,o=e.getBoundingClientRect(),i=Math.min(a/o.height,r/o.width),l=[o.left+o.width/2,o.top+o.height/2],s=[t/2,n/2].map(((e,t)=>(e-l[t])/i));b({zIndex:202,transform:`scale(${i}) translate(${s[0]}px, ${s[1]}px)`,position:"relative"})},k=()=>{g(null)};return(0,l.useEffect)((()=>{m&&window.innerWidth>768&&k()}),[s]),(0,l.useEffect)((()=>{if(y&&m){document.querySelector("html").style.overflow="hidden"}else{document.querySelector("html").style.overflow="initial"}}),[y,m]),l.default.createElement(t.LightBoxContext.Provider,{value:{active:m,style:w,activeStyle:v,display:x,close:k,toggle:e=>{const t=m;k(),t!==e&&x(e)}}},n,r&&l.default.createElement(d.Portal,{containerId:"lsd-presentation"},l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.backdrop,m&&h.default.visible)}),l.default.createElement("div",{className:(0,i.default)(h.default.navWrapper,m&&h.default.visible)},l.default.createElement("nav",{className:(0,i.default)(h.default.nav,"navbar",m&&h.default.visible)},l.default.createElement(o.default,null),l.default.createElement(a.IconButton,{size:"medium",onClick:k},l.default.createElement(c.IconFullscreenExit,null)))))))},t.LightBoxContext=l.default.createContext({style:{},activeStyle:{},active:null,close:null,toggle:null,display:null});t.useLightBox=()=>{const e=(0,l.useContext)(t.LightBoxContext);return{getStyle:t=>({...e.style,...t===e.active?e.activeStyle:{}}),style:e.style,activeStyle:e.activeStyle,active:e.active,isActive:!!e.active,close:e.close,toggle:e.toggle,display:e.display,isActiveElement:t=>e.active===t}};t.LightBoxWrapper=e=>{let{children:n}=e;const r=(0,l.useRef)(null),o=(0,l.useRef)(null),{getStyle:u,display:d,isActiveElement:f}=(0,t.useLightBox)(),m=(0,p.useIsMobile)(),g=(0,l.useCallback)((e=>{let{x:t,y:n,scale:r}=e;const{current:a}=o;if(a){const e=(0,s.make3dTransformValue)({x:t,y:n,scale:r});a.style.setProperty("transform",e)}}),[]),v=m&&r.current&&f(r.current)?l.default.createElement(s.default,{onUpdate:g,doubleTapZoomOutOnMaxScale:!0,maxZoom:3},l.default.createElement("div",{ref:o},n)):l.default.createElement(l.default.Fragment,null,n,l.default.createElement(a.IconButton,{className:h.default.fullscreenButton,size:"medium",onClick:()=>r.current&&d(r.current)},l.default.createElement(c.IconFullscreen,null)));return l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.wrapper,f(r.current)&&h.default.active),ref:r,style:r.current?u(r.current):{}},v))}},78991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeProvider=void 0;const r=n(70655),a=n(31665),o=n(70917),i=r.__importDefault(n(67294)),l=n(92198);t.ThemeProvider=e=>{let{children:t}=e;const n=(0,l.useTheme)();return i.default.createElement(a.ThemeProvider,{theme:n.current,injectCssVars:!1},i.default.createElement(o.Global,{styles:n.cssVars}),t)}},27967:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(78991),t)},89321:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.settleSync=t.settle=void 0;t.settle=async e=>{try{return["function"==typeof e?await e():await e,void 0]}catch(t){return[void 0,t]}};t.settleSync=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}}},28097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureTrailingSlash=t.ensureTrailingString=void 0;t.ensureTrailingString=(e,t)=>e.endsWith(t)?e:e+t;t.ensureTrailingSlash=e=>(0,t.ensureTrailingString)(e,"/")},92198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTheme=void 0;const r=n(31665),a=n(82818),o=n(70917),i=n(67294),l=n(54400);t.useTheme=()=>{const e=(0,a.useColorMode)(),{typography:t}=(0,l.useThemeOptions)(),n=t?.genericFontFamily??"sans-serif",s=r.defaultThemes,u=(0,i.useMemo)((()=>{const e={breakpoints:{},palette:{},typography:{},typographyGlobal:{genericFontFamily:n},spacing:[]};return{light:(0,r.createTheme)(e,s.light),dark:(0,r.createTheme)(e,s.dark)}}),[s,n]);return{dark:u.dark,light:u.light,current:u[e.colorMode],colorMode:e.colorMode,cssVars:(c=u.light,d=u.dark,f=u.light,(0,i.useMemo)((()=>o.css` - html:not([data-theme]) { - ${f.cssVars} - } - - html[data-theme='light'] { - ${c.cssVars} - } - - html[data-theme='dark'] { - ${d.cssVars} - } - `),[d,c]))};var c,d,f}},55873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useEventListener=void 0;const r=n(67294);t.useEventListener=(e,t,n,a,o)=>{const i=(0,r.useMemo)((()=>"string"==typeof e?e:e()),[]),l=(0,r.useMemo)((()=>"function"==typeof t?t():t),[t]);(0,r.useEffect)((()=>{if(l?.addEventListener&&l?.removeEventListener)return l.addEventListener(i,n,a),()=>{l.removeEventListener(i,n,a)}}),[i,l])}},96507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHydrated=void 0;const r=n(67294);t.useHydrated=()=>{const[e,t]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{t(!0)}),[]),e}},53708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIsMobile=void 0;const r=n(89164);t.useIsMobile=()=>(0,r.useMedia)("(max-width: 1199px)")},81803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePersistedHistory=void 0;const r=n(89164);t.usePersistedHistory=(e,t)=>{const n=t?.unique??!1,a=t?.equals??((e,t)=>e===t),o=t?.maxItems??null,[i,l]=(0,r.useLocalStorage)("logos-docusaurus-theme-"+e,[]),s=e=>{l((i??[]).filter(((t,n)=>!e(t,n))))};return{add:e=>{const t=i??[],r=[e,...n?t.filter((t=>!a(t,e))):t];l(o?r.slice(0,o):r)},clear:()=>{l([])},remove:s,removeByIndex:e=>{s(((t,n)=>n===e))},list:i}}},54400:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocThemeOptions=t.useThemeOptions=void 0;const r=n(70655),a=n(80143),o=r.__importDefault(n(52263));t.useThemeOptions=()=>{const{siteConfig:{customFields:e={}}}=(0,o.default)();return e["logos-docusaurus-theme"]??{}};t.useDocThemeOptions=()=>{const e=(0,a.useActivePlugin)(),n=(0,t.useThemeOptions)();return e?n?.docs?.[e?.pluginId]??{}:{}}},521:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useWindowEventListener=void 0;const r=n(55873);t.useWindowEventListener=function(e,t,n,a){void 0===a&&(a=[]),(0,r.useEventListener)(e,(()=>"undefined"!=typeof window&&window),t,n,a)}},66354:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(95999),i=r.__importDefault(n(72389)),l=r.__importDefault(n(55211)),s=r.__importDefault(n(67080)),u=r.__importDefault(n(86010)),c=r.__importDefault(n(67294)),d=r.__importDefault(n(8633));t.Z=c.default.memo((function(e){let{className:t,buttonClassName:n,value:r,onChange:f}=e;const p=(0,i.default)(),h=(0,o.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,o.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,o.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return c.default.createElement(a.IconButton,{className:(0,u.default)("clean-btn",d.default.toggle,t,!p&&d.default.toggleButtonDisabled,n),type:"button",onClick:()=>f("dark"===r?"light":"dark"),disabled:!p,title:h,"aria-label":h,"aria-live":"polite"},c.default.createElement(s.default,{className:(0,u.default)(d.default.toggleIcon,d.default.lightToggleIcon)}),c.default.createElement(l.default,{className:(0,u.default)(d.default.toggleIcon,d.default.darkToggleIcon)}))}))},52601:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(79762));t.Z=function(e){let{style:t,links:n,logo:r,copyright:s}=e;const[u,c]=(e=>{const t=[],n=[];for(const r of e)"title"in r&&"string"==typeof r.title&&r.title.startsWith("shared:")?n.push({...r,title:r.title.slice(7)}):t.push(r);return[t,n]})(n.props.links);return i.default.createElement("footer",{className:(0,o.default)("footer",{"footer--dark":"dark"===t})},i.default.createElement("div",{className:(0,o.default)("container","container-fluid",l.default.firstRow)},(r||s)&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"footer__bottom text--center"},r&&i.default.createElement("div",{className:"margin-bottom--sm"},r),s)),i.default.cloneElement(n,{links:u})),i.default.createElement("div",{className:(0,o.default)(l.default.secondRow)},i.default.createElement("span",{className:(0,o.default)("footer__bottom text--center")},"Built by"," ",i.default.createElement("a",{href:"https://free.technology/",target:"_blank",className:(0,o.default)(l.default.footerLink)},"IFT")),i.default.cloneElement(n,{links:c})),i.default.createElement(a.Button,{className:l.default.backToTop,size:"small",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},"Back to top \u2191"))}},90988:(e,t,n)=>{"use strict";const r=n(70655).__importDefault(n(67294)),a=n(82818),o=n(91338),i=(0,a.composeProviders)([o.AnnouncementBarProvider,o.ScrollControllerProvider,o.DocsPreferredVersionContextProvider,o.PluginHtmlClassNameProvider,o.NavbarProvider]);t.Z=function(e){let{children:t}=e;return r.default.createElement(i,null,t)}},16853:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(39960)),i=r.__importDefault(n(44996)),l=r.__importDefault(n(52263)),s=n(82818),u=r.__importDefault(n(16019));function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=a.default.createElement(u.default,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.default.createElement("div",{className:r},l):l}t.default=function(e){const{siteConfig:{title:t}}=(0,l.default)(),{navbar:{title:n,logo:r}}=(0,s.useThemeConfig)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,i.default)(r?.href||"/"),h=n?"":t,m=r?.alt??h;return a.default.createElement(o.default,{to:p,...f,...r?.target&&{target:r.target}},r&&a.default.createElement(c,{logo:r,alt:m,imageClassName:u}),null!=n&&a.default.createElement("b",{className:d},n))}},10428:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=r.__importDefault(n(29865)),c=r.__importDefault(n(4710)),d=r.__importDefault(n(33760)),f=r.__importDefault(n(86010)),p=r.__importDefault(n(67294)),h=n(96507),m=r.__importDefault(n(90826));function g(e){let{items:t}=e;return p.default.createElement(p.default.Fragment,null,t.map(((e,t)=>p.default.createElement(o.ErrorCauseBoundary,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},p.default.createElement(c.default,{...e})))))}t.Z=function(){const e=(0,h.useHydrated)(),t=(0,i.useNavbarMobileSidebar)(),n=(0,o.useThemeConfig)().navbar.items,[r,c]=(0,i.splitNavbarItems)(n.filter((e=>!["search"].includes(e.type??"")))),v=n.find((e=>"search"===e.type));return p.default.createElement("div",{className:"navbar__inner"},p.default.createElement("div",{className:"navbar__left"},p.default.createElement(s.default,null)),p.default.createElement("div",{className:"navbar__left-items"},p.default.createElement(g,{items:r})),p.default.createElement("div",{className:"navbar__right-items"},p.default.createElement(g,{items:c}),p.default.createElement(a.IconButtonGroup,{className:m.default.iconButtonGroup,size:"medium"},p.default.createElement(l.default,{key:"color-toggle",className:(0,f.default)(m.default.colorModeToggle,"navbar__color-mode-toggle")}),e&&p.default.createElement(p.default.Fragment,{key:"search"},v&&p.default.createElement(d.default,null)),p.default.createElement(p.default.Fragment,{key:"mobile-sidebar-toggle"},!t.disabled&&p.default.createElement(u.default,null)))))}},4818:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=n(82818),l=n(91338),s=n(95999),u=r.__importDefault(n(2203)),c=r.__importDefault(n(97087));function d(e){return a.default.createElement("div",{role:"presentation",...e,className:(0,o.default)("navbar-sidebar__backdrop",e.className)})}t.Z=function(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,i.useThemeConfig)(),f=(0,l.useNavbarMobileSidebar)(),{navbarRef:p,isNavbarVisible:h}=(0,l.useHideableNavbar)(n);return a.default.createElement("nav",{ref:p,"aria-label":(0,s.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.default)("navbar","navbar--fixed-top",n&&[c.default.navbarHideable,!h&&c.default.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":f.shown})},t,a.default.createElement(d,{onClick:f.toggle}),a.default.createElement(u.default,null))}},29785:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(16853));t.default=function(){return a.default.createElement(o.default,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}},42977:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=n(91338),i=n(95999),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=n(31665),c=r.__importDefault(n(33760));function d(){const e=(0,o.useNavbarMobileSidebar)();return a.default.createElement("button",{type:"button","aria-label":(0,i.translate)({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()},a.default.createElement(u.CloseIcon,null))}t.Z=function(){return a.default.createElement("div",{className:"navbar-sidebar__brand"},a.default.createElement(s.default,null),a.default.createElement(l.default,{className:"margin-right--md"}),a.default.createElement(c.default,null),a.default.createElement(d,null))}},82892:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=n(91338),l=r.__importDefault(n(88507));t.Z=function(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:s}=(0,i.useNavbarSecondaryMenu)();return a.default.createElement("div",{className:(0,o.default)("navbar-sidebar",s&&"navbar-sidebar--show-secondary")},t,a.default.createElement("div",{className:(0,o.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":s})},a.default.createElement("div",{className:"navbar-sidebar__item menu"},n,!s&&a.default.createElement(l.default,null)),a.default.createElement("div",{className:"navbar-sidebar__item menu"},r)))}},38732:(e,t,n)=>{"use strict";const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(95999)),s=n(78870),u=r.__importDefault(n(67294));function c(e){return u.default.createElement("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back"},u.default.createElement(s.IconArrowLeft,null),u.default.createElement(a.Typography,null,u.default.createElement(l.default,{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)"},"Back to main menu")))}t.Z=function(){const e=0===(0,o.useThemeConfig)().navbar.items.length,t=(0,i.useNavbarSecondaryMenu)();return u.default.createElement(u.default.Fragment,null,!e&&u.default.createElement(c,{onClick:()=>t.hide()}),t.content)}},27654:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=n(31665),o=n(82818),i=n(91338),l=r.__importDefault(n(4710)),s=r.__importDefault(n(51125)),u=r.__importDefault(n(86010)),c=r.__importStar(n(67294)),d=r.__importDefault(n(83244));function f(e,t){return e.some((e=>function(e,t){return!!(0,i.isSamePath)(e.to,t)||!!(0,o.isRegexpStringMatch)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function p(e){let{items:t,position:n,className:r,onClick:o,...i}=e;const f=(0,c.useRef)(null),[p,h]=(0,c.useState)(!1);return(0,c.useEffect)((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&h(!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)}}),[f]),c.default.createElement("div",{ref:f,className:(0,u.default)("navbar__item",d.default.dropdownNavbarItem,"dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":p})},c.default.createElement(s.default,{"aria-haspopup":"true","aria-expanded":p,role:"button",href:i.to?void 0:"#",className:(0,u.default)("navbar__link",r),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),h(!p))}},i.children??i.label),c.default.createElement(a.ChevronDownIcon,{className:(0,u.default)("margin-left-8","cursor-pointer")}),c.default.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>c.default.createElement(l.default,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))))}function h(e){let{items:t,className:n,position:r,onClick:d,...p}=e;const h=(0,i.useLocalPathname)(),m=f(t,h),{collapsed:g,toggleCollapsed:v,setCollapsed:b}=(0,o.useCollapsible)({initialState:()=>!m});return(0,c.useEffect)((()=>{m&&b(!m)}),[h,m,b]),c.default.createElement("li",{className:(0,u.default)("menu__list-item",{"menu__list-item--collapsed":g})},c.default.createElement(s.default,{role:"button",className:(0,u.default)("menu__link menu__link--sublist menu__link--sublist-caret",n),...p,onClick:e=>{e.preventDefault(),v()}},c.default.createElement(a.Typography,{variant:"body1"},p.children??p.label)),c.default.createElement(o.Collapsible,{lazy:!0,as:"ul",className:"menu__list",collapsed:g},t.map(((e,t)=>c.default.createElement(l.default,{mobile:!0,isDropdownItem:!0,onClick:d,activeClassName:"menu__link--active",...e,key:t})))))}t.default=function(e){let{mobile:t=!1,...n}=e;const r=t?h:p;return c.default.createElement(r,{...n})}},12197:(e,t,n)=>{"use strict";const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(52263)),i=n(91338),l=n(95999),s=n(28143),u=r.__importDefault(n(27654));t.Z=function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...c}=e;const{i18n:{currentLocale:d,locales:f,localeConfigs:p}}=(0,o.default)(),h=(0,i.useAlternatePageUtils)(),{search:m,hash:g}=(0,s.useLocation)(),v=[...n,...f.map((e=>{const n=`${`pathname://${h.createUrl({locale:e,fullyQualified:!1})}`}${m}${g}`;return{label:p[e]?.label,lang:p[e]?.htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[d]?.label.substring(0,2).toUpperCase();return a.default.createElement(u.default,{...c,mobile:t,label:a.default.createElement(a.default.Fragment,null,b),items:v})}},51125:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=n(31665),o=r.__importDefault(n(13919)),i=r.__importDefault(n(39960)),l=n(82818),s=r.__importDefault(n(44996)),u=r.__importDefault(n(67294)),c=n(55061),d=r.__importDefault(n(88822));t.default=function(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:f,label:p,html:h,isDropdownLink:m,prependBaseUrlToHref:g,...v}=e;const b=(0,s.default)(r),y=(0,s.default)(t),w=(0,s.default)(f,{forcePrependBaseUrl:!0}),x=p&&f&&!(0,o.default)(f),k=h?{dangerouslySetInnerHTML:{__html:h}}:{children:u.default.createElement(a.Typography,{component:"div",variant:"body2",className:d.default.linkContent},p,x&&u.default.createElement(c.IconExternalLink,{className:d.default.externalLinkIcon}))};return f?u.default.createElement(i.default,{href:g?w:f,...v,...k}):u.default.createElement(i.default,{to:b,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,l.isRegexpStringMatch)(n,t.pathname):t.pathname.startsWith(y)},...v,...k})}},85140:(e,t,n)=>{"use strict";const r=n(70655),a=n(91338),o=r.__importDefault(n(67294)),i=n(19843),l=n(27967),s=n(54400),u=r.__importDefault(n(36459));t.Z=function(e){let{children:t}=e;const n=(0,s.useDocThemeOptions)(),r=n?.sidebar?.hide;return o.default.createElement(a.ColorModeProvider,null,o.default.createElement(l.ThemeProvider,null,o.default.createElement(i.LightBoxProvider,null,o.default.createElement("div",{className:u.default.root,"data-hidden-doc-sidebar":r},t))))}},7020:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchBar=void 0;const r=n(70655),a=n(31665),o=r.__importStar(n(67294)),i=n(40466),l=n(81803),s=n(521),u=n(71044),c=r.__importDefault(n(31259)),d=n(19323),f=n(72997),p=n(43110);t.SearchBar=e=>{let{}=e;const t=(0,l.usePersistedHistory)("search",{unique:!0,equals:(e,t)=>e.title===t.title&&e.href===t.href,maxItems:10}),n=(0,u.useSearch)(),r=(0,o.useRef)(null),[h,m]=(0,o.useState)(""),[g,v]=(0,o.useState)([]),[b,y]=(0,o.useState)(!1);(0,o.useEffect)((()=>{h.length>0?(async e=>{const{results:t}=await n.query(e);v(t)})(h):v([])}),[h]),(0,o.useEffect)((()=>{b?(()=>{const e=r.current;if(!e)return;const t=e.querySelector("input");t&&setTimeout((()=>{t.focus()}),50)})():m("")}),[b]);return(0,s.useWindowEventListener)("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"KeyK"===e.code&&(e.preventDefault(),y(!0))}),{},[]),o.default.createElement(o.default.Fragment,null,o.default.createElement(a.IconButton,{onClick:()=>y(!0),size:"medium"},o.default.createElement(a.SearchIcon,null)),o.default.createElement(i.Modal,{keepMounted:!0,id:"search-modal",open:b,onClose:()=>y(!1),className:c.default.modal},o.default.createElement("div",{className:c.default.header},o.default.createElement(f.SearchInput,{containerRef:r,onClear:()=>{m("")},value:h,onChange:e=>{m(e.target.value)}}),o.default.createElement(a.IconButton,{className:c.default.closeButton,size:"medium",onClick:()=>y(!1)},o.default.createElement(a.CloseIcon,{color:"primary"}))),h.length>0&&o.default.createElement(p.SearchResults,{results:g,onNavigate:(e,n)=>{e.preventDefault(),y(!1),t.add(n),window.location.href=n.href}}),0===h.length&&o.default.createElement(d.SearchHistory,{history:t.list??[],onRemove:t.removeByIndex,onClose:()=>y(!1)})))}},19323:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchHistory=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(55061),s=n(33493),u=r.__importDefault(n(61699));t.SearchHistory=e=>{let{history:t=[],onRemove:n,onClose:r,className:c,children:d,...f}=e;return i.default.createElement("div",{className:(0,o.default)(c,u.default.root,0===t.length&&u.default.empty),...f},0===t.length?i.default.createElement(s.SearchResultMessage,null,"No recent searches"):i.default.createElement(i.default.Fragment,null,i.default.createElement(a.Typography,{className:u.default.title,variant:"subtitle2",component:"div"},"Recent"),t.map(((e,t)=>i.default.createElement("div",{key:t,className:u.default.item},i.default.createElement(l.IconHistory,null),i.default.createElement(a.Typography,{variant:"subtitle2",component:"a",href:e.href,className:u.default.itemTitle,dangerouslySetInnerHTML:{__html:e.title},onClick:()=>r&&r()}),i.default.createElement("button",{className:"clean-btn",onClick:()=>n(t)},i.default.createElement(l.IconClose,null)))))))}},72997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchInput=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(89164),s=r.__importDefault(n(9592));t.SearchInput=e=>{let{value:t="",active:n,onChange:r,onClear:u,onFocus:c,onCancel:d,className:f,inputProps:{ref:p,...h}={placeholder:""},containerRef:m,...g}=e;const v=(0,l.useMedia)("(max-width: 996px)"),b=n||t?.length>0;return i.default.createElement("div",{ref:m,className:(0,o.default)(s.default.root,b&&s.default.expanded,f),onKeyDown:e=>{"Escape"===e.code&&t.length>0&&(e.stopPropagation(),u&&u())},...g},i.default.createElement(a.TextField,{className:s.default.textField,value:t,placeholder:b||v?h.placeholder:"",onChange:r,onFocus:e=>{c&&c()},clearButton:!0,icon:i.default.createElement(a.SearchIcon,{color:"primary"}),...h}))}},49067:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultGroup=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(1443));t.SearchResultGroup=e=>{let{className:t,title:n="",children:r,...s}=e;return i.default.createElement("div",{className:(0,o.default)(l.default.root,t),...s},i.default.createElement("div",null,i.default.createElement(a.Typography,{variant:"subtitle2"},n)),i.default.createElement("ul",null,r))}},38594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(49067),t)},51105:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItem=void 0;const r=n(70655),a=r.__importDefault(n(39960)),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(7744)),s=r.__importDefault(n(42924)),u=n(95571),c=n(36301),d=r.__importDefault(n(18589)),f={[c.SearchDocumentType.Title]:i.default.createElement(l.default,{className:(0,o.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Heading]:i.default.createElement(s.default,{className:(0,o.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Paragraph]:i.default.createElement(s.default,{className:(0,o.default)(d.default.icon,d.default.fill)})};t.SearchResultItem=e=>{let{type:t,level:n=0,href:r,title:l,content:s,className:c,linkProps:{className:p,...h}={},...m}=e;const g=f[t];return i.default.createElement(a.default,{href:r,className:(0,o.default)(d.default.root,d.default[`level${n}`],p),...h},i.default.createElement(u.SearchResultItemBase,{title:l,content:s,icon:g,...m}))}},13383:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(51105),t)},86704:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItemBase=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(86620));t.SearchResultItemBase=e=>{let{icon:t,title:n,content:r,className:s,...u}=e;return i.default.createElement("li",{className:(0,o.default)(l.default.root,s),...u},i.default.createElement("span",null,t),i.default.createElement("div",null,n&&i.default.createElement(a.Typography,{variant:"subtitle2",component:"span",dangerouslySetInnerHTML:{__html:n}})))}},95571:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(70655).__exportStar(n(86704),t)},33493:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultMessage=void 0;const r=n(70655),a=n(31665),o=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(38076));t.SearchResultMessage=e=>{let{className:t,children:n,...r}=e;return i.default.createElement(a.Typography,{className:(0,o.default)(t,l.default.root),variant:"subtitle2",component:"div",...r},i.default.createElement("span",null,n))}},43110:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResults=void 0;const r=n(70655),a=r.__importDefault(n(86010)),o=r.__importStar(n(67294)),i=n(38594),l=n(13383),s=n(33493),u=n(81104),c=r.__importDefault(n(20550));t.SearchResults=e=>{let{results:t,className:n,onNavigate:r,...d}=e;const f=t.length,p=(0,o.useMemo)((()=>(0,u.groupSearchResult)(t)),[t]);return o.default.createElement("div",{className:(0,a.default)(c.default.root,0===f&&c.default.noResults)},0===f&&o.default.createElement(s.SearchResultMessage,null,"No result."),o.default.createElement("div",{className:(0,a.default)(c.default.groups)},p.map(((e,t)=>{let[n,a]=e;return o.default.createElement(o.default.Fragment,{key:t},o.default.createElement(i.SearchResultGroup,{className:c.default.group,title:n},a.map(((e,t)=>o.default.createElement(l.SearchResultItem,{key:t,type:e.type,level:e.level,href:e.href,title:e.title,content:e.content,linkProps:r?{onClick:t=>r(t,e)}:{}})))))}))))}},71044:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearch=void 0;const r=n(67294),a=n(36043);t.useSearch=()=>{const{createSearchInstance:e}=window,t=(0,a.useSearchContextPath)(),[n,o]=(0,r.useState)(!1),i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{o(!1),(async()=>{i.current=await e({resultsLimit:50,preferredVersionPath:t[0],searchContextByPaths:t[1]}),await i.current.init(),o(!0)})()}),[t[0],t[1]]),{loaded:n,query:async e=>await i.current.query(e)}}},36043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearchContextPath=void 0;const r=n(80143),a=n(28097),o=()=>window.getProxiedGeneratedData().searchContextByPaths;t.useSearchContextPath=()=>{const e=o(),t=(0,r.useActivePluginAndVersion)();if(!t)return["/",""];const{activePlugin:{pluginData:{path:n}},activeVersion:i}=t;return i?[n!==i.path?(0,a.ensureTrailingSlash)(i.path):"/",e]:["/",""]}},33760:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(44763)),o=r.__importDefault(n(67294)),i=n(7020);t.default=()=>"undefined"==typeof window?o.default.createElement(o.default.Fragment,null):o.default.createElement(a.default,{fallback:()=>o.default.createElement(o.default.Fragment,null)},o.default.createElement(i.SearchBar,null))},36301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchDocumentType=void 0,function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(t.SearchDocumentType||(t.SearchDocumentType={}))},81104:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupSearchResult=void 0;const r=n(70655),a=r.__importDefault(n(7739)),o=r.__importDefault(n(57557)),i=n(36301);t.groupSearchResult=e=>Object.entries((0,a.default)(e.map((e=>(e=>{const{type:t,document:n,page:r,highlighted:a,score:o}=e,{url:l,hash:s=""}=n,u=l+s;switch(t){case i.SearchDocumentType.Title:return{type:t,level:0,url:l,hash:s,href:u,score:o,title:a,content:"",category:n.breadcrumb?.[1]??n.title};case i.SearchDocumentType.Heading:{const e=r;return{type:t,level:1,url:l,hash:s,href:u,score:o,title:a,content:"",category:e?.breadcrumb?.[1]??e?.title??""}}case i.SearchDocumentType.Paragraph:{const e=r;return{type:t,level:2,url:l,hash:s,href:u,score:o,title:n.sectionTitle||n.title||"",content:a,category:e?.breadcrumb?.[1]??e?.title??""}}}})(e))),"category")).map((e=>{let[t,n]=e;return[t,n.map((e=>(0,o.default)(e,"category"))).sort(((e,t)=>e.score>t.score?-1:1))]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).map((e=>{let[t,n]=e;return[t,Object.entries((0,a.default)(n,"url")).map((e=>{let[t,n]=e,r=[...n].sort(((e,t)=>e.type===i.SearchDocumentType.Title||e.score>t.score?-1:1));const a=r[0]?.type===i.SearchDocumentType.Title;return r=a?r.filter((e=>!(e.type===i.SearchDocumentType.Heading&&""===e.hash))):r,r=r.map(((e,t)=>({...e,level:a?0===t?0:1:0}))),[t,r]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).flatMap((e=>{let[t,n]=e;return n}))]}))},16019:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(70655),a=r.__importDefault(n(67294)),o=r.__importDefault(n(86010)),i=r.__importDefault(n(72389)),l=n(82818),s=r.__importDefault(n(65787));t.default=function(e){const t=(0,i.default)(),{colorMode:n}=(0,l.useColorMode)(),{sources:r,className:u,alt:c,...d}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.default.createElement(a.default.Fragment,null,f.map((e=>a.default.createElement("img",{key:e,src:r[e],alt:c,className:(0,o.default)(s.default.themedImage,s.default[`themedImage--${e}`],u),...d}))))}},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(67294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},91091:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),o=n(73727),i=n(70405),l=n(10412);const s=[n(85711),n(32497),n(3310),n(18320),n(11057),n(93878),n(26724)];var u=n(723),c=n(16550),d=n(18790),f=n(85140),p=n(87462),h=n(35742),m=n(52263),g=n(44996),v=n(86668),b=n(10833),y=n(94711),w=n(19727),x=n(43320),k=n(90197);function _(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.default)(),n=(0,y.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.default)(),a=function(){const{siteConfig:{url:e}}=(0,m.default)(),{pathname:t}=(0,c.TH)();return e+(0,g.default)(t)}(),o=t?`${n}${t}`:a;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function S(){const{i18n:{currentLocale:e}}=(0,m.default)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(E,null),r.createElement(_,null),r.createElement(k.Z,{tag:x.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var O=n(98934),D=n(58940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),P("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class A extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.default.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const L=A,R="__docusaurus-base-url-issue-banner-container",j="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${R}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${j}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,m.default)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.default.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:R}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.default)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,m.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(h.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var H=n(44763);function V(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(H.default,null,r.createElement(D.M,null,r.createElement(O.t,null,r.createElement(f.Z,null,r.createElement(U,null),r.createElement(S,null),r.createElement($,null),r.createElement(L,{location:T(t)},e)))))}var q=n(16887);const W=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var G=n(99670);const Z=new Set,Q=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!Y()&&!Q.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,G.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!Q.has(e))(e)&&(Q.add(e),I(e))},K=Object.freeze(X);if(l.default.canUseDOM){window.docusaurus=K;const e=a.hydrate;I(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),a=n(36809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"guides/getting-started","docs":[{"id":"guides/getting-started","path":"/","sidebar":"guides"},{"id":"guides/js-waku/configure-discovery","path":"/guides/js-waku/configure-discovery","sidebar":"guides"},{"id":"guides/js-waku/debug-waku-dapp","path":"/guides/js-waku/debug-waku-dapp","sidebar":"guides"},{"id":"guides/js-waku/faq","path":"/guides/js-waku/faq","sidebar":"guides"},{"id":"guides/js-waku/index","path":"/guides/js-waku/","sidebar":"guides"},{"id":"guides/js-waku/light-send-receive","path":"/guides/js-waku/light-send-receive","sidebar":"guides"},{"id":"guides/js-waku/manage-filter","path":"/guides/js-waku/manage-filter","sidebar":"guides"},{"id":"guides/js-waku/message-encryption","path":"/guides/js-waku/message-encryption","sidebar":"guides"},{"id":"guides/js-waku/run-waku-nodejs","path":"/guides/js-waku/run-waku-nodejs","sidebar":"guides"},{"id":"guides/js-waku/store-retrieve-messages","path":"/guides/js-waku/store-retrieve-messages","sidebar":"guides"},{"id":"guides/js-waku/use-waku-create-app","path":"/guides/js-waku/use-waku-create-app","sidebar":"guides"},{"id":"guides/js-waku/use-waku-react","path":"/guides/js-waku/use-waku-react","sidebar":"guides"},{"id":"guides/nwaku/build-source","path":"/guides/nwaku/build-source","sidebar":"guides"},{"id":"guides/nwaku/config-methods","path":"/guides/nwaku/config-methods","sidebar":"guides"},{"id":"guides/nwaku/config-options","path":"/guides/nwaku/config-options","sidebar":"guides"},{"id":"guides/nwaku/configure-discovery","path":"/guides/nwaku/configure-discovery","sidebar":"guides"},{"id":"guides/nwaku/configure-nwaku","path":"/guides/nwaku/configure-nwaku","sidebar":"guides"},{"id":"guides/nwaku/faq","path":"/guides/nwaku/faq","sidebar":"guides"},{"id":"guides/nwaku/find-node-address","path":"/guides/nwaku/find-node-address","sidebar":"guides"},{"id":"guides/nwaku/run-docker","path":"/guides/nwaku/run-docker","sidebar":"guides"},{"id":"guides/nwaku/run-docker-compose","path":"/guides/nwaku/run-docker-compose","sidebar":"guides"},{"id":"guides/nwaku/run-node","path":"/guides/nwaku/run-node","sidebar":"guides"},{"id":"guides/nwaku/upgrade-instructions","path":"/guides/nwaku/upgrade-instructions","sidebar":"guides"},{"id":"learn/concepts/content-topics","path":"/learn/concepts/content-topics","sidebar":"learn"},{"id":"learn/concepts/discv5","path":"/learn/concepts/discv5","sidebar":"learn"},{"id":"learn/concepts/dns-discovery","path":"/learn/concepts/dns-discovery","sidebar":"learn"},{"id":"learn/concepts/network-domains","path":"/learn/concepts/network-domains","sidebar":"learn"},{"id":"learn/concepts/peer-discovery","path":"/learn/concepts/peer-discovery","sidebar":"learn"},{"id":"learn/concepts/peer-exchange","path":"/learn/concepts/peer-exchange","sidebar":"learn"},{"id":"learn/concepts/protocols","path":"/learn/concepts/protocols","sidebar":"learn"},{"id":"learn/concepts/static-peers","path":"/learn/concepts/static-peers","sidebar":"learn"},{"id":"learn/concepts/transports","path":"/learn/concepts/transports","sidebar":"learn"},{"id":"learn/faq","path":"/learn/faq","sidebar":"learn"},{"id":"learn/glossary","path":"/learn/glossary","sidebar":"learn"},{"id":"learn/research","path":"/learn/research","sidebar":"learn"},{"id":"learn/security-features","path":"/learn/security-features","sidebar":"learn"},{"id":"learn/waku-network","path":"/learn/waku-network","sidebar":"learn"},{"id":"learn/waku-vs-libp2p","path":"/learn/waku-vs-libp2p","sidebar":"learn"},{"id":"migrations/js-waku/migration_v0.026_0.027","path":"/migrations/js-waku/migration_v0.026_0.027"},{"id":"privacy-policy","path":"/privacy-policy"},{"id":"research/benchmarks/postgres-adoption","path":"/research/benchmarks/postgres-adoption","sidebar":"research"},{"id":"research/benchmarks/test-results-summary","path":"/research/benchmarks/test-results-summary","sidebar":"research"},{"id":"research/index","path":"/research/","sidebar":"research"},{"id":"research/research-and-studies/capped-bandwidth","path":"/research/research-and-studies/capped-bandwidth","sidebar":"research"},{"id":"research/research-and-studies/incentivisation","path":"/research/research-and-studies/incentivisation","sidebar":"research"},{"id":"research/research-and-studies/maximum-bandwidth","path":"/research/research-and-studies/maximum-bandwidth","sidebar":"research"},{"id":"research/research-and-studies/message-propagation","path":"/research/research-and-studies/message-propagation","sidebar":"research"},{"id":"research/research-and-studies/rln-key-benchmarks","path":"/research/research-and-studies/rln-key-benchmarks","sidebar":"research"},{"id":"rules-of-engagement","path":"/rules-of-engagement"},{"id":"security","path":"/security"},{"id":"terms","path":"/terms"}],"draftIds":[],"sidebars":{"guides":{"link":{"path":"/","label":"guides/getting-started"}},"learn":{"link":{"path":"/learn/waku-network","label":"learn/waku-network"}},"research":{"link":{"path":"/research/","label":"research/index"}}}}],"breadcrumbs":false}}}'),i=JSON.parse('{"defaultLocale":"en-GB","locales":["en-GB"],"path":"i18n","currentLocale":"en-GB","localeConfigs":{"en-GB":{"label":"British English","direction":"ltr","htmlLang":"en-GB","calendar":"gregory","path":"en-GB"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.3"},"logos-docusaurus-search-local":{"type":"package","name":"@acid-info/logos-docusaurus-search-local","version":"1.0.0-alpha.111"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.1"},"logos-docusaurus-theme":{"type":"package","name":"@acid-info/logos-docusaurus-theme","version":"1.0.0-alpha.143"},"docusaurus-fathom":{"type":"package","name":"@acid-info/docusaurus-fathom","version":"1.0.0-alpha.111"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(67294),a=n(10412),o=n(35742),i=n(18780),l=n(59351);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.default,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});const r="undefined"!=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}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(70405);function o(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(87462),a=n(67294),o=n(73727),i=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}});var d=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.default)(),{withBaseUrl:x}=(0,d.useBaseUrlUtils)(),k=(0,a.useContext)(c),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>_.current));const E=f||p;const S=(0,s.default)(E),C=E?.replace("pathname://","");let T=void 0!==C?(O=C,v&&(e=>e.startsWith("/"))(O)?x(O):O):void 0;var O;T&&S&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const D=(0,a.useRef)(!1),P=n?o.OL:o.rU,N=u.default.canUseIntersectionObserver,I=(0,a.useRef)(),A=()=>{D.current||null==T||(window.docusaurus.preload(T),D.current=!0)};(0,a.useEffect)((()=>(!N&&S&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&I.current&&I.current.disconnect()})),[I,T,N,S]);const L=T?.startsWith("#")??!1,R=!T||!S||L;return R||g||k.collectLink(T),R?a.createElement("a",(0,r.Z)({ref:_,href:T},E&&!S&&{target:"_blank",rel:"noopener noreferrer"},b)):a.createElement(P,(0,r.Z)({},b,{onMouseEnter:A,onTouchStart:A,innerRef:e=>{_.current=e,N&&e&&S&&(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!=T&&window.docusaurus.prefetch(T))}))})),I.current.observe(e))},to:T},n&&{isActive:m,activeClassName:h}))}const p=a.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.r(t),n.d(t,{default:()=>a,hasProtocol:()=>r})},28143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Redirect:()=>r.l_,matchPath:()=>r.LX,useHistory:()=>r.k6,useLocation:()=>r.TH});var r=n(16550)},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),a=n(52263),o=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.hasProtocol)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(67294),a=n(58940);function o(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(67294),a=n(98934);function o(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(67294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},80143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{useActiveDocContext:()=>b,useActivePlugin:()=>p,useActivePluginAndVersion:()=>h,useActiveVersion:()=>v,useAllDocsData:()=>d,useDocVersionSuggestions:()=>y,useDocsData:()=>f,useLatestVersion:()=>g,useVersions:()=>m});var r=n(16550),a=n(52263),o=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.default)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function h(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function m(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return s(t,n)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},88507:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>T});var r=n(67294),a=n(86668),o=n(42489),i=n(87462),l=n(39960),s=n(44996),u=n(13919),c=n(39471);function d(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:d,...f}=t,p=(0,s.default)(n),h=(0,s.default)(a,{forcePrependBaseUrl:!0});return r.createElement(l.default,(0,i.Z)({className:"footer__link-item"},a?{href:d?h:a}:{to:p},f),o,a&&!(0,u.default)(a)&&r.createElement(c.Z,null))}function f(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(d,{item:t}))}function p(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(f,{key:t,item:e})))))}function h(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(p,{key:t,column:e}))))}function m(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function g(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(d,{item:t})}function v(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(g,{item:e}),t.length!==n+1&&r.createElement(m,null))))))}function b(e){let{links:t}=e;return(0,o.a)(t)?r.createElement(h,{columns:t}):r.createElement(v,{links:t})}var y=n(86010),w=n(16019);const x={footerLogoLink:"footerLogoLink_BH7S"};function k(e){let{logo:t}=e;const{withBaseUrl:n}=(0,s.useBaseUrlUtils)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(w.default,{className:(0,y.default)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function _(e){let{logo:t}=e;return t.href?r.createElement(l.default,{href:t.href,className:x.footerLogoLink,target:t.target},r.createElement(k,{logo:t})):r.createElement(k,{logo:t})}function E(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}var S=n(52601);function C(){const{footer:e}=(0,a.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:i}=e;return r.createElement(S.Z,{style:i,links:n&&n.length>0&&r.createElement(b,{links:n}),logo:o&&r.createElement(_,{logo:o}),copyright:t&&r.createElement(E,{copyright:t})})}const T=r.memo(C)},55211:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(87462),a=n(67294);function o(e){return a.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},67080:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(87462),a=n(67294);function o(e){return a.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}},59351:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var r=n(67294),a=n(86010),o=n(44763),i=n(10833),l=n(55225),s=n(35281),u=n(19727);const c={skipToContent:"skipToContent_fXgn"};function d(){return r.createElement(l.l,{className:c.skipToContent})}var f=n(86668),p=n(59689),h=n(87462),m=n(95999);function g(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const v={closeButton:"closeButton_CVFx"};function b(e){return r.createElement("button",(0,h.Z)({type:"button","aria-label":(0,m.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.default)("clean-btn close",v.closeButton,e.className)}),r.createElement(g,{width:14,height:14,strokeWidth:3.1}))}const y={content:"content_knG7"};function w(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,h.Z)({},e,{className:(0,a.default)(y.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const x={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function k(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:x.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:x.announcementBarPlaceholder}),r.createElement(w,{className:x.announcementBarContent}),i&&r.createElement(b,{onClick:n,className:x.announcementBarClose}))}var _=n(4818),E=n(10428);function S(){return r.createElement(_.Z,null,r.createElement(E.Z,null))}var C=n(88507),T=n(90988),O=n(69690);function D(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(m.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(O.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(O.aG,{error:t})))))}const P={mainWrapper:"mainWrapper_z2l0"};function N(e){const{children:t,noFooter:n,wrapperClassName:c,title:f,description:p}=e;return(0,u.t)(),r.createElement(T.Z,null,r.createElement(i.d,{title:f,description:p}),r.createElement(d,null),r.createElement(k,null),r.createElement(S,null),r.createElement("div",{id:l.u,className:(0,a.default)(s.k.wrapper.main,P.mainWrapper,c)},r.createElement(o.default,{fallback:e=>r.createElement(D,e)},t)),!n&&r.createElement(C.default,null))}},2101:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),a=n(86668),o=n(92949),i=n(66354);const l={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function s(e){let{className:t}=e;const n=(0,a.L)().navbar.style,s=(0,a.L)().colorMode.disableSwitch,{colorMode:u,setColorMode:c}=(0,o.I)();return s?null:r.createElement(i.Z,{className:t,buttonClassName:"dark"===n?l.darkNavbarColorModeToggle:void 0,value:u,onChange:c})}},29865:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),a=n(93163),o=n(95999),i=n(87462);function l(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,i.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function s(){const{toggle:e,shown:t}=(0,a.e)();return r.createElement("button",{onClick:e,"aria-label":(0,o.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(l,null))}},2203:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(67294),a=n(93163),o=n(69800),i=n(82892),l=n(42977),s=n(87462),u=n(86668),c=n(4710);function d(){const e=(0,a.e)(),t=(0,u.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(c.default,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}var f=n(38732);function p(){const e=(0,a.e)();return(0,o.N)(e.shown),e.shouldRender?r.createElement(i.Z,{header:r.createElement(l.Z,null),primaryMenu:r.createElement(d,null),secondaryMenu:r.createElement(f.Z,null)}):null}},4710:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var r=n(67294),a=n(87462),o=n(86010),i=n(51125);function l(e){let{className:t,isDropdownItem:n=!1,...l}=e;const s=r.createElement(i.default,(0,a.Z)({className:(0,o.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},l));return n?r.createElement("li",null,s):s}function s(e){let{className:t,isDropdownItem:n,...l}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(i.default,(0,a.Z)({className:(0,o.default)("menu__link",t)},l)))}function u(e){let{mobile:t=!1,position:n,...o}=e;const i=t?s:l;return r.createElement(i,(0,a.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var c=n(27654),d=n(12197),f=n(33760);const p={searchBox:"searchBox_ZlJk"};function h(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.default)(n,p.searchBox)},t)}var m=n(80143),g=n(53438);var v=n(60373),b=n(95999),y=n(16550);const w=e=>e.docs.find((t=>t.id===e.mainDocId));const x={default:u,localeDropdown:d.Z,search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(h,{className:n},r.createElement(f.default,null))},dropdown:c.default,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.default)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(o),s=(0,g.vY)(t,o);return null===s?null:r.createElement(u,(0,a.Z)({exact:!0},i,{isActive:()=>l?.path===s.path||!!l?.sidebar&&l.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(o),s=(0,g.oz)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(u,(0,a.Z)({exact:!0},i,{isActive:()=>l?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...i}=e;const l=(0,g.lO)(o)[0],s=t??l.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(u,(0,a.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:d,hash:f}=(0,y.TH)(),p=(0,m.useActiveDocContext)(n),h=(0,m.useVersions)(n),{savePreferredVersionName:x}=(0,v.J)(n),k=[...i,...h.map((e=>{const t=p.alternateDocVersions[e.name]??w(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>x(e.name)}})),...l],_=(0,g.lO)(n)[0],E=t&&k.length>1?(0,b.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):_.label,S=t&&k.length>1?void 0:w(_).path;return k.length<=1?r.createElement(u,(0,a.Z)({},s,{mobile:t,label:E,to:S,isActive:o?()=>!1:void 0})):r.createElement(c.default,(0,a.Z)({},s,{mobile:t,label:E,to:S,items:k,isActive:o?()=>!1:void 0}))}};function k(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=x[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(35742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>p});var r=n(67294),a=n(72389),o=n(50012),i=n(902),l=n(86668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.default)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(67294),a=n(10412),o=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.default.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{c.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},65130:(e,t,n)=>{"use strict";n.d(t,{b:()=>i,k:()=>l});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,content:n}=e;const a=function(e){return(0,r.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return r.createElement(o.Provider,{value:a},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocProvider");return e}},14353:(e,t,n)=>{"use strict";n.d(t,{D:()=>l,f:()=>s});var r=n(67294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t}=e;const[n,a]=(0,r.useState)(null),o=(0,r.useMemo)((()=>({expandedItem:n,setExpandedItem:a})),[n]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocSidebarItemsExpandedStateProvider");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>g,Oh:()=>y});var r=n(67294),a=n(80143),o=n(29935),i=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function h(){const e=(0,a.useAllDocsData)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=o.m);const t=(0,a.useDocsData)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a.useAllDocsData)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(67294),a=n(13102),o=n(87524),i=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},2730:(e,t,n)=>{"use strict";n.d(t,{a:()=>i});var r=n(67294),a=n(12466),o=n(85936);function i(e){let{threshold:t}=e;const[n,i]=(0,r.useState)(!1),l=(0,r.useRef)(!1),{startScroll:s,cancelScroll:u}=(0,a.Ct)();return(0,a.RF)(((e,n)=>{let{scrollY:r}=e;const a=n?.scrollY;a&&(l.current?l.current=!1:r>=a?(u(),i(!1)):r<t?i(!1):r+window.innerHeight<document.documentElement.scrollHeight&&i(!0))})),(0,o.S)((e=>{e.location.hash&&(l.current=!0,i(!1))})),{shown:n,scrollToTop:()=>s(0)}}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(67294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},69800:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(67294);function a(e){void 0===e&&(e=!0),(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},66412:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(92949),a=n(86668);function o(){const{prism:e}=(0,a.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}},96841:(e,t,n)=>{"use strict";n.d(t,{S:()=>s});var r=n(67294),a=n(86668);function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const r=e.find((e=>o(e).top>=n));if(r){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(r))?r:e[e.indexOf(r)-1]??null}return e[e.length-1]??null}function l(){const e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.L)();return(0,r.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function s(e){const t=(0,r.useRef)(void 0),n=l();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:r,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:l}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(r),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const r=[];for(let a=t;a<=n;a+=1)r.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),u=i(s,{anchorTopOffset:n.current}),c=e.find((e=>u&&u.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===c)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),a=n(10412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.default.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},82818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Collapsible:()=>C,ErrorBoundaryError:()=>G.aG,ErrorBoundaryTryAgainButton:()=>G.Cw,ErrorCauseBoundary:()=>G.QW,HtmlClassNameProvider:()=>D.FG,NavbarSecondaryMenuFiller:()=>N.Zo,PageMetadata:()=>D.d,ReactContextError:()=>O.i6,SkipToContentFallbackId:()=>W.u,SkipToContentLink:()=>W.l,ThemeClassNames:()=>T.k,composeProviders:()=>O.Qc,createStorageSlot:()=>a.WA,duplicates:()=>U.l,filterDocCardListItems:()=>i.MN,isMultiColumnFooterLinks:()=>z.a,isRegexpStringMatch:()=>$,listStorageKeys:()=>a._f,listTagsByLetters:()=>R,prefersReducedMotion:()=>g.n,processAdmonitionProps:()=>q,translateTagsPageTitle:()=>L,uniq:()=>U.j,useCollapsible:()=>b,useColorMode:()=>P.I,useContextualSearchFilters:()=>o._q,useCurrentSidebarCategory:()=>i.jA,useDocsPreferredVersion:()=>V.J,useEvent:()=>O.zX,useIsomorphicLayoutEffect:()=>O.LI,usePluralForm:()=>p,usePrevious:()=>O.D9,usePrismTheme:()=>H.p,useSearchLinkCreator:()=>B,useSearchQueryString:()=>F,useStorageSlot:()=>a.Nk,useThemeConfig:()=>r.L,useWindowSize:()=>I.i});var r=n(86668),a=n(50012),o=n(43320),i=n(53438),l=n(67294),s=n(52263);const u=["zero","one","two","few","many","other"];function c(e){return u.filter((t=>e.includes(t)))}const d={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function f(){const{i18n:{currentLocale:e}}=(0,s.default)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),d}}),[e])}function p(){const e=f();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=n.select(t),o=n.pluralForms.indexOf(a);return r[Math.min(o,r.length-1)]}(n,t,e)}}var h=n(87462),m=n(10412),g=n(91442);const v="ease-in-out";function b(e){let{initialState:t}=e;const[n,r]=(0,l.useState)(t??!1),a=(0,l.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const y={display:"none",overflow:"hidden",height:"0px"},w={display:"block",overflow:"visible",height:"auto"};function x(e,t){const n=t?y:w;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function k(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,l.useRef)(!1);(0,l.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,g.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??v}`,height:`${t}px`}}function i(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return x(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=y.height,e.style.overflow=y.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function _(e){if(!m.default.canUseDOM)return e?y:w}function E(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:o,className:i,disableSSRStyle:s}=e;const u=(0,l.useRef)(null);return k({collapsibleRef:u,collapsed:n,animation:a}),l.createElement(t,{ref:u,style:s?void 0:_(n),onTransitionEnd:e=>{"height"===e.propertyName&&(x(u.current,n),o?.(n))},className:i},r)}function S(e){let{collapsed:t,...n}=e;const[r,a]=(0,l.useState)(!t),[o,i]=(0,l.useState)(t);return(0,l.useLayoutEffect)((()=>{t||a(!0)}),[t]),(0,l.useLayoutEffect)((()=>{r&&i(t)}),[r,t]),r?l.createElement(E,(0,h.Z)({},n,{collapsed:o})):null}function C(e){let{lazy:t,...n}=e;const r=t?S:E;return l.createElement(r,n)}var T=n(35281),O=n(902),D=n(10833),P=n(92949),N=n(13102),I=n(87524),A=n(95999);const L=()=>(0,A.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function R(e){const t={};return Object.values(e).forEach((e=>{const n=function(e){return e[0].toUpperCase()}(e.label);t[n]??=[],t[n].push(e)})),Object.entries(t).sort(((e,t)=>{let[n]=e,[r]=t;return n.localeCompare(r)})).map((e=>{let[t,n]=e;return{letter:t,tags:n.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}var j=n(91980);const M="q";function F(){return(0,j.Nc)(M)}function B(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,s.default)(),{algolia:{searchPagePath:n}}=t;return(0,l.useCallback)((t=>`${e}${n}?${M}=${encodeURIComponent(t)}`),[e,n])}var z=n(42489);function $(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var U=n(67392),H=n(66412),V=n(60373);function q(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=l.Children.toArray(e),n=t.find((e=>l.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=l.createElement(l.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n?.props.children,rest:r}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var W=n(55225),G=n(69690)},91338:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AnnouncementBarProvider:()=>h.pl,BlogPostProvider:()=>d,Collapsible:()=>r.Collapsible,ColorModeProvider:()=>k.S,DEFAULT_SEARCH_TAG:()=>S.HX,DocProvider:()=>l.b,DocSidebarItemsExpandedStateProvider:()=>a.D,DocsPreferredVersionContextProvider:()=>p.L5,DocsSidebarProvider:()=>i.b,DocsVersionProvider:()=>o.q,ErrorBoundaryError:()=>r.ErrorBoundaryError,ErrorBoundaryTryAgainButton:()=>r.ErrorBoundaryTryAgainButton,ErrorCauseBoundary:()=>r.ErrorCauseBoundary,HtmlClassNameProvider:()=>r.HtmlClassNameProvider,NavbarProvider:()=>B,NavbarSecondaryMenuFiller:()=>r.NavbarSecondaryMenuFiller,PageMetadata:()=>r.PageMetadata,PluginHtmlClassNameProvider:()=>j.VC,ReactContextError:()=>r.ReactContextError,ScrollControllerProvider:()=>L.OC,SkipToContentFallbackId:()=>r.SkipToContentFallbackId,SkipToContentLink:()=>r.SkipToContentLink,ThemeClassNames:()=>r.ThemeClassNames,composeProviders:()=>r.composeProviders,containsLineNumbers:()=>E.nt,createStorageSlot:()=>r.createStorageSlot,docVersionSearchTag:()=>S.os,duplicates:()=>r.duplicates,filterDocCardListItems:()=>r.filterDocCardListItems,findFirstCategoryLink:()=>C.Wl,findSidebarCategory:()=>C.em,getPrismCssVariables:()=>E.QC,isActiveSidebarItem:()=>C._F,isDocsPluginEnabled:()=>C.cE,isMultiColumnFooterLinks:()=>r.isMultiColumnFooterLinks,isRegexpStringMatch:()=>r.isRegexpStringMatch,isSamePath:()=>R.Mg,keyboardFocusedClassName:()=>U.h,listStorageKeys:()=>r.listStorageKeys,listTagsByLetters:()=>r.listTagsByLetters,parseCodeBlockTitle:()=>E.bc,parseLanguage:()=>E.Vo,parseLines:()=>E.nZ,prefersReducedMotion:()=>r.prefersReducedMotion,processAdmonitionProps:()=>r.processAdmonitionProps,splitNavbarItems:()=>F,translateTagsPageTitle:()=>r.translateTagsPageTitle,uniq:()=>r.uniq,useAlternatePageUtils:()=>_.l,useAnnouncementBar:()=>h.nT,useBackToTopButton:()=>G.a,useBlogPost:()=>f,useCodeWordWrap:()=>W,useCollapsible:()=>r.useCollapsible,useColorMode:()=>r.useColorMode,useContextualSearchFilters:()=>r.useContextualSearchFilters,useCurrentSidebarCategory:()=>r.useCurrentSidebarCategory,useDoc:()=>l.k,useDocById:()=>C.xz,useDocRouteMetadata:()=>C.hI,useDocSidebarItemsExpandedState:()=>a.f,useDocsPreferredVersion:()=>r.useDocsPreferredVersion,useDocsPreferredVersionByPluginId:()=>p.Oh,useDocsSidebar:()=>i.V,useDocsVersion:()=>o.E,useDocsVersionCandidates:()=>C.lO,useEvent:()=>r.useEvent,useFilteredAndTreeifiedTOC:()=>A.b,useHideableNavbar:()=>$,useHistoryPopHandler:()=>I.Rb,useHistorySelector:()=>I.xL,useHomePageRoute:()=>R.Ns,useIsomorphicLayoutEffect:()=>r.useIsomorphicLayoutEffect,useKeyboardNavigation:()=>U.t,useLayoutDoc:()=>C.vY,useLayoutDocsSidebar:()=>C.oz,useLocalPathname:()=>N,useLocationChange:()=>O.S,useLockBodyScroll:()=>H.N,useNavbarMobileSidebar:()=>g.e,useNavbarSecondaryMenu:()=>x,usePluralForm:()=>r.usePluralForm,usePrevious:()=>r.usePrevious,usePrismTheme:()=>r.usePrismTheme,useQueryStringValue:()=>I._X,useScrollController:()=>L.sG,useScrollPosition:()=>L.RF,useScrollPositionBlocker:()=>L.o5,useSearchLinkCreator:()=>r.useSearchLinkCreator,useSearchQueryString:()=>r.useSearchQueryString,useSidebarBreadcrumbs:()=>C.s1,useSmoothScrollTo:()=>L.Ct,useStorageSlot:()=>r.useStorageSlot,useTOCHighlight:()=>z.S,useTabs:()=>m.Y,useThemeConfig:()=>r.useThemeConfig,useTitleFormatter:()=>T.p,useTreeifiedTOC:()=>A.a,useWindowSize:()=>r.useWindowSize});var r=n(82818),a=n(14353),o=n(74477),i=n(1116),l=n(65130),s=n(67294),u=n(902);const c=s.createContext(null);function d(e){let{children:t,content:n,isBlogPostPage:r=!1}=e;const a=function(e){let{content:t,isBlogPostPage:n}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:n})),[t,n])}({content:n,isBlogPostPage:r});return s.createElement(c.Provider,{value:a},t)}function f(){const e=(0,s.useContext)(c);if(null===e)throw new u.i6("BlogPostProvider");return e}var p=n(60373),h=n(59689),m=n(70989),g=n(93163),v=n(13102);const b=s.createContext(null);function y(e){let{children:t}=e;const n=function(){const e=(0,g.e)(),t=(0,v.HY)(),[n,r]=(0,s.useState)(!1),a=null!==t.component,o=(0,u.D9)(a);return(0,s.useEffect)((()=>{a&&!o&&r(!0)}),[a,o]),(0,s.useEffect)((()=>{a?e.shown||r(!0):r(!1)}),[e.shown,a]),(0,s.useMemo)((()=>[n,r]),[n])}();return s.createElement(b.Provider,{value:n},t)}function w(e){if(e.component){const t=e.component;return s.createElement(t,e.props)}}function x(){const e=(0,s.useContext)(b);if(!e)throw new u.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,r=(0,s.useCallback)((()=>n(!1)),[n]),a=(0,v.HY)();return(0,s.useMemo)((()=>({shown:t,hide:r,content:w(a)})),[r,a,t])}var k=n(92949),_=n(94711),E=n(37016),S=n(43320),C=n(53438),T=n(82128),O=n(85936),D=n(16550),P=n(52263);function N(){const{siteConfig:{baseUrl:e}}=(0,P.default)(),{pathname:t}=(0,D.TH)();return t.replace(e,"/")}var I=n(91980),A=n(39665),L=n(12466),R=n(48596),j=n(10833);const M="right";function F(e){function t(e){return"left"===(e.position??M)}return[e.filter(t),e.filter((e=>!t(e)))]}function B(e){let{children:t}=e;return s.createElement(v.n2,null,s.createElement(g.M,null,s.createElement(y,null,t)))}var z=n(96841);function $(e){const[t,n]=(0,s.useState)(e),r=(0,s.useRef)(!1),a=(0,s.useRef)(0),o=(0,s.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,o)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(r.current)return void(r.current=!1);const l=o?.scrollY,s=document.documentElement.scrollHeight-a.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,O.S)((t=>{if(!e)return;const a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0)return r.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}var U=n(19727),H=n(69800);const V={attributes:!0,characterData:!0,childList:!0,subtree:!0};function q(e,t){const[n,r]=(0,s.useState)(),a=(0,s.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=V);const r=(0,u.zX)(t),a=(0,u.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,a),()=>t.disconnect()}),[e,r,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function W(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!1),a=(0,s.useRef)(null),o=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");r(n)}),[a]);return q(a,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:o}}var G=n(2730)},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},37016:(e,t,n)=>{"use strict";n.d(t,{QC:()=>p,Vo:()=>d,bc:()=>u,nZ:()=>f,nt:()=>c});var r=n(87594),a=n.n(r);const o=/title=(?<quote>["'])(?<title>.*?)\1/,i=/\{(?<range>[\d,-]+)\}/,l={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function s(e,t){const n=e.map((e=>{const{start:n,end:r}=l[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function u(e){return e?.match(o)?.groups.title??""}function c(e){return Boolean(e?.includes("showLineNumbers"))}function d(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}function f(e,t){let n=e.replace(/\n$/,"");const{language:r,magicComments:o,metastring:u}=t;if(u&&i.test(u)){const e=u.match(i).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${u}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,r=a()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(r),code:n}}if(void 0===r)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return s(["js","jsBlock"],t);case"jsx":case"tsx":return s(["js","jsBlock","jsx"],t);case"html":return s(["js","jsBlock","html"],t);case"python":case"py":case"bash":return s(["bash"],t);case"markdown":case"md":return s(["html","jsx","bash"],t);default:return s(Object.keys(l),t)}}(r,o),d=n.split("\n"),f=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),p=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),h=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let a=0;a<d.length;){const e=d[a].match(c);if(!e){a+=1;continue}const t=e.slice(1).find((e=>void 0!==e));p[t]?f[p[t]].range+=`${a},`:h[t]?f[h[t]].start=a:m[t]&&(f[m[t]].range+=`${f[m[t]].start}-${a-1},`),d.splice(a,1)}n=d.join("\n");const g={};return Object.entries(f).forEach((e=>{let[t,{range:n}]=e;a()(n).forEach((e=>{g[e]??=[],g[e].push(t)}))})),{lineClassNames:g,code:n}}function p(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[r,a]=e;const o=t[r];o&&"string"==typeof a&&(n[o]=a)})),n}},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,Wl:()=>m,_F:()=>y,cE:()=>f,em:()=>h,hI:()=>S,jA:()=>g,lO:()=>k,oz:()=>_,s1:()=>x,vY:()=>E,xz:()=>p});var r=n(67294),a=n(16550),o=n(18790),i=n(80143),l=n(60373),s=n(74477),u=n(1116),c=n(67392),d=n(48596);const f=!!i.useAllDocsData;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=h(n.items,t);if(e)return e}}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const v=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||b(e.items,t))}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.useActivePlugin)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.useActiveDocContext)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.useLatestVersion)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function _(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function C(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Cw:()=>s,QW:()=>c});var r=n(87462),a=n(67294),o=n(95999),i=n(18780);const l={errorBoundaryError:"errorBoundaryError_a6uf"};function s(e){return a.createElement("button",(0,r.Z)({type:"button"},e),a.createElement(o.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return a.createElement("p",{className:l.errorBoundaryError},n)}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(52263);function a(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>u,xL:()=>s});var r=n(67294),a=n(16550),o=n(61688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function u(e){return s((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=u(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(67294),a=n(86010),o=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(82128);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.default)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>a,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(67294);const a=n(10412).default.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l 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 s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(67294),a=n(723),o=n(52263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.default)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f,sG:()=>u});var r=n(67294),a=n(10412),o=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.default.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(80143),a=n(52263),o=n(60373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.default)(),t=(0,r.useAllDocsData)(),n=(0,r.useActivePluginAndVersion)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>f,u:()=>s});var r=n(87462),a=n(67294),o=n(16550),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function u(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function c(){const e=(0,a.useRef)(null),{action:t}=(0,o.k6)(),n=(0,a.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(s);t&&u(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&u(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({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 f(e){const t=e.children??d,{containerRef:n,onClick:o}=c();return a.createElement("div",{ref:n,role:"region","aria-label":d},a.createElement("a",(0,r.Z)({},e,{href:`#${s}`,onClick:o}),t))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c,_f:()=>f});var r=n(67294),a=n(61688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function f(e){void 0===e&&(e=o);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},70989:(e,t,n)=>{"use strict";n.d(t,{Y:()=>f});var r=n(67294),a=n(16550),o=n(91980),i=n(67392),l=n(50012);function s(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function u(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??s(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function c(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const i=(0,a.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(i.location.search);t.set(l,e),i.replace({...i.location,search:t.toString()})}),[l,i])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=u(e),[i,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!c({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[f,p]=d({queryString:n,groupId:a}),[h,m]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,l.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),g=(()=>{const e=f??h;return c({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{g&&s(g)}),[g]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!c({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),p(e),m(e)}),[p,m,o]),tabValues:o}}},39665:(e,t,n)=>{"use strict";n.d(t,{a:()=>o,b:()=>l});var r=n(67294);function a(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t}));const r=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):r.push(a)})),r}function o(e){return(0,r.useMemo)((()=>a(e)),[e])}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:r}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:r});return function(e){return e.level>=n&&e.level<=r}(e)?[{...e,children:t}]:t}))}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,r.useMemo)((()=>i({toc:a(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(52263),a=n(16550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.default)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),a=n(16550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.default)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},90022:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fetchIndexes:()=>l,legacyFetchIndexes:()=>s});var r=n(31336),a=n.n(r),o=n(61029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=s(e,t),i.set(n,r)),r}async function s(e,t){{const n=`${e}${o.searchIndexUrl.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}}},98202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SearchSourceFactory:()=>s});var r=n(31336),a=n.n(r);var o=n(61029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.language);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>o;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){o=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.language)if("en"===i)o.removeDefaultStopWordFilter||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.r(t),n.d(t,{getStemmedPositions:()=>r})},67133:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`<mark>${r(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&o.push(a(e.substr(l),t));break}}return 0===o.length?n?`<mark>${r(e)}</mark>`:r(e):o.join("")}n.r(t),n.d(t,{highlightStemmed:()=>s,splitIntoChunks:()=>u});const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,r){void 0===r&&(r=l.searchResultContextMaxLength);const{chunkIndex:a,chunks:o}=u(e,t,n),i=o.slice(0,a),s=o[a],c=[s.html],d=o.slice(a+1);let f=s.textLength,p=0,h=0,m=!1,g=!1;for(;f<r;)if((p<=h||0===d.length)&&i.length>0){const e=i.pop();f+e.textLength<=r?(c.unshift(e.html),p+=e.textLength,f+=e.textLength):(m=!0,i.length=0)}else{if(!(d.length>0))break;{const e=d.shift();f+e.textLength<=r?(c.push(e.html),h+=e.textLength,f+=e.textLength):(g=!0,d.length=0)}}return(m||i.length>0)&&c.unshift("\u2026"),(g||d.length>0)&&c.push("\u2026"),c.join("")}function u(e,t,n){const o=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),s=c+d,o.push({html:a(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}},61029:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Mark:()=>i,docsPluginIdForPreferredVersion:()=>h,explicitSearchResultPath:()=>c,hideSearchBarWithNoSearchContext:()=>v,indexDocs:()=>m,language:()=>r,removeDefaultStemmer:()=>o,removeDefaultStopWordFilter:()=>a,searchBarPosition:()=>p,searchBarShortcut:()=>d,searchBarShortcutHint:()=>f,searchContextByPaths:()=>g,searchIndexUrl:()=>l,searchResultContextMaxLength:()=>u,searchResultLimits:()=>s});n(31336);const r=["en"],a=!1,o=!1,i=null,l="search-index{dir}.json?_=c96eb6ec",s=8,u=50,c=!1,d=!0,f=!0,p="left",h=void 0,m=!0,g=null,v=!1},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function a(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}n.r(t),n.d(t,{clsx:()=>a,default:()=>o});const o=a},20640:(e,t,n)=>{"use strict";var r=n(11742),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,i,l,s,u,c=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),l=document.createRange(),s=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=a[t.format]||a.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),l.selectNodeContents(u),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");c=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),u&&document.body.removeChild(u),i()}return c}},38252:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!=a--;){var i=o[a];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},99376:(e,t)=>{var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;for(var r=n(e),a=r.length,o=0;o<a;o++)if(!(r[o]in t))return!1;for(o=0;o<a;o++)if(e[r[o]]!==t[r[o]])return!1;return a===n(t).length}},42358:(e,t,n)=>{"use strict";n.d(t,{lX:()=>_,q_:()=>D,ob:()=>m,PP:()=>N,Ep:()=>h,Hp:()=>g});var r=n(87462);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()}const 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--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var u=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(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 m(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",x="hashchange";function k(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),b||(0,u.Z)(!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,l=i.forceRefresh,s=void 0!==l&&l,d=i.getUserConfirmation,g=void 0===d?y:d,_=i.keyLength,E=void 0===_?6:_,S=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return S&&(o=f(o,S)),m(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var O=v();function D(e){(0,r.Z)($,e),$.length=n.length,O.notifyListeners($.location,$.action)}function P(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||A(C(e.state))}function N(){A(C(k()))}var I=!1;function A(e){if(I)I=!1,D();else{O.confirmTransitionTo(e,"POP",g,(function(t){t?D({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(I=!0,M(a))}(e)}))}}var L=C(k()),R=[L.key];function j(e){return S+h(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,P),o&&window.addEventListener(x,N)):0===F&&(window.removeEventListener(w,P),o&&window.removeEventListener(x,N))}var z=!1;var $={length:n.length,action:"POP",location:L,createHref:j,push:function(e,t){var r="PUSH",o=m(e,t,T(),$.location);O.confirmTransitionTo(o,r,g,(function(e){if(e){var t=j(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),s)window.location.href=t;else{var u=R.indexOf($.location.key),c=R.slice(0,u+1);c.push(o.key),R=c,D({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=m(e,t,T(),$.location);O.confirmTransitionTo(o,r,g,(function(e){if(e){var t=j(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),s)window.location.replace(t);else{var u=R.indexOf($.location.key);-1!==u&&(R[u]=o.key),D({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=O.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var E="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function O(e){window.location.replace(C(window.location.href)+"#"+e)}function D(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?y:a,i=n.hashType,l=void 0===i?"slash":i,s=e.basename?p(c(e.basename)):"",d=S[l],g=d.encodePath,w=d.decodePath;function x(){var e=w(T());return s&&(e=f(e,s)),m(e)}var k=v();function _(e){(0,r.Z)(z,e),z.length=t.length,k.notifyListeners(z.location,z.action)}var D=!1,P=null;function N(){var e,t,n=T(),r=g(n);if(n!==r)O(r);else{var a=x(),i=z.location;if(!D&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(P===h(a))return;P=null,function(e){if(D)D=!1,_();else{var t="POP";k.confirmTransitionTo(e,t,o,(function(n){n?_({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(h(t));-1===n&&(n=0);var r=R.lastIndexOf(h(e));-1===r&&(r=0);var a=n-r;a&&(D=!0,j(a))}(e)}))}}(a)}}var I=T(),A=g(I);I!==A&&O(A);var L=x(),R=[h(L)];function j(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(E,N):0===M&&window.removeEventListener(E,N)}var B=!1;var z={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(s+h(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,z.location);k.confirmTransitionTo(r,n,o,(function(e){if(e){var t=h(r),a=g(s+t);if(T()!==a){P=t,function(e){window.location.hash=e}(a);var o=R.lastIndexOf(h(z.location)),i=R.slice(0,o+1);i.push(t),R=i,_({action:n,location:r})}else _()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,z.location);k.confirmTransitionTo(r,n,o,(function(e){if(e){var t=h(r),a=g(s+t);T()!==a&&(P=t,O(a));var o=R.indexOf(h(z.location));-1!==o&&(R[o]=t),_({action:n,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=k.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=k.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function P(e,t,n){return Math.min(Math.max(e,t),n)}function N(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=v();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function f(){return Math.random().toString(36).substr(2,u)}var p=P(l,0,o.length-1),g=o.map((function(e){return m(e,void 0,"string"==typeof e?f():e.key||f())})),b=h;function y(e){var t=P(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",a=m(e,t,f(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,f(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),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,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var v=i[g];if(!(o[v]||r&&r[v]||m&&m[v]||l&&l[v])){var b=f(n,v);try{u(t,v,b)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new 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=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},36808:(e,t,n)=>{var r,a;!function(o){if(void 0===(a="function"==typeof(r=o)?r.call(t,n,t,e):r)||(e.exports=a),!0,e.exports=o(),!!0){var i=window.Cookies,l=window.Cookies=o();l.noConflict=function(){return window.Cookies=i,l}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function a(){}function o(t,n,o){if("undefined"!=typeof document){"number"==typeof(o=e({path:"/"},a.defaults,o)).expires&&(o.expires=new Date(1*new Date+864e5*o.expires)),o.expires=o.expires?o.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(u){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var s in o)o[s]&&(l+="; "+s,!0!==o[s]&&(l+="="+o[s].split(";")[0]));return document.cookie=t+"="+n+l}}function i(e,n){if("undefined"!=typeof document){for(var a={},o=document.cookie?document.cookie.split("; "):[],i=0;i<o.length;i++){var l=o[i].split("="),s=l.slice(1).join("=");n||'"'!==s.charAt(0)||(s=s.slice(1,-1));try{var u=t(l[0]);if(s=(r.read||r)(s,u)||t(s),n)try{s=JSON.parse(s)}catch(c){}if(a[u]=s,e===u)break}catch(c){}}return e?a[e]:a}}return a.set=o,a.get=function(e){return i(e,!1)},a.getJSON=function(e){return i(e,!0)},a.remove=function(t,n){o(t,"",e(n,{expires:-1}))},a.defaults={},a.withConverter=n,a}((function(){}))}))},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),a=n(80401),o=n(57667),i=n(21327),l=n(81866);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},38407:(e,t,n)=>{var r=n(27040),a=n(14125),o=n(82117),i=n(67518),l=n(54705);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),a=n(11285),o=n(96e3),i=n(49916),l=n(95265);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=a,s.prototype.get=o,s.prototype.has=i,s.prototype.set=l,e.exports=s},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),a=n(90619),o=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=a,i.prototype.has=o,e.exports=i},46384:(e,t,n)=>{var r=n(38407),a=n(37465),o=n(63779),i=n(67599),l=n(44758),s=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=l,u.prototype.set=s,e.exports=u},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var a=-1,o=null==e?0:e.length;++a<o;){var i=e[a];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}},14636:(e,t,n)=>{var r=n(22545),a=n(35694),o=n(1469),i=n(44144),l=n(65776),s=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&a(e),d=!n&&!c&&i(e),f=!n&&!c&&!d&&s(e),p=n||c||d||f,h=p?r(e.length,String):[],m=h.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||l(g,m))||h.push(g);return h}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},34865:(e,t,n)=>{var r=n(89465),a=n(77813),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];o.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,a){return r(e,(function(e,r,o){t(a,e,n(e),o)})),a}},44037:(e,t,n)=>{var r=n(98363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},63886:(e,t,n)=>{var r=n(98363),a=n(81704);e.exports=function(e,t){return e&&r(t,a(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:(e,t,n)=>{var r=n(46384),a=n(77412),o=n(34865),i=n(44037),l=n(63886),s=n(64626),u=n(278),c=n(18805),d=n(1911),f=n(58234),p=n(46904),h=n(64160),m=n(43824),g=n(29148),v=n(38517),b=n(1469),y=n(44144),w=n(56688),x=n(13218),k=n(72928),_=n(3674),E=n(81704),S="[object Arguments]",C="[object Function]",T="[object Object]",O={};O[S]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[T]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[C]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,D,P,N,I){var A,L=1&n,R=2&n,j=4&n;if(D&&(A=N?D(t,P,N,I):D(t)),void 0!==A)return A;if(!x(t))return t;var M=b(t);if(M){if(A=m(t),!L)return u(t,A)}else{var F=h(t),B=F==C||"[object GeneratorFunction]"==F;if(y(t))return s(t,L);if(F==T||F==S||B&&!N){if(A=R||B?{}:v(t),!L)return R?d(t,l(A,t)):c(t,i(A,t))}else{if(!O[F])return N?t:{};A=g(t,F,L)}}I||(I=new r);var z=I.get(t);if(z)return z;I.set(t,A),k(t)?t.forEach((function(r){A.add(e(r,n,D,r,t,I))})):w(t)&&t.forEach((function(r,a){A.set(a,e(r,n,D,a,t,I))}));var $=M?void 0:(j?R?p:f:R?E:_)(t);return a($||t,(function(r,a){$&&(r=t[a=r]),o(A,a,e(r,n,D,a,t,I))})),A}},3118:(e,t,n)=>{var r=n(13218),a=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},89881:(e,t,n)=>{var r=n(47816),a=n(99291)(r);e.exports=a},21078:(e,t,n)=>{var r=n(62488),a=n(37285);e.exports=function e(t,n,o,i,l){var s=-1,u=t.length;for(o||(o=a),l||(l=[]);++s<u;){var c=t[s];n>0&&o(c)?n>1?e(c,n-1,o,i,l):r(l,c):i||(l[l.length]=c)}return l}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},97786:(e,t,n)=>{var r=n(71811),a=n(40327);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[a(t[n++])];return n&&n==o?e:void 0}},68866:(e,t,n)=>{var r=n(62488),a=n(1469);e.exports=function(e,t,n){var o=t(e);return a(e)?o:r(o,n(e))}},44239:(e,t,n)=>{var r=n(62705),a=n(89607),o=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):o(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},9454:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),a=n(37005);e.exports=function e(t,n,o,i,l){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,o,i,e,l))}},2492:(e,t,n)=>{var r=n(46384),a=n(67114),o=n(18351),i=n(16096),l=n(64160),s=n(1469),u=n(44144),c=n(36719),d="[object Arguments]",f="[object Array]",p="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,v){var b=s(e),y=s(t),w=b?f:l(e),x=y?f:l(t),k=(w=w==d?p:w)==p,_=(x=x==d?p:x)==p,E=w==x;if(E&&u(e)){if(!u(t))return!1;b=!0,k=!1}if(E&&!k)return v||(v=new r),b||c(e)?a(e,t,n,m,g,v):o(e,t,w,n,m,g,v);if(!(1&n)){var S=k&&h.call(e,"__wrapped__"),C=_&&h.call(t,"__wrapped__");if(S||C){var T=S?e.value():e,O=C?t.value():t;return v||(v=new r),g(T,O,n,m,v)}}return!!E&&(v||(v=new r),i(e,t,n,m,g,v))}},25588:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),a=n(90939);e.exports=function(e,t,n,o){var i=n.length,l=i,s=!o;if(null==e)return!l;for(e=Object(e);i--;){var u=n[i];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<l;){var c=(u=n[i])[0],d=e[c],f=u[1];if(s&&u[2]){if(void 0===d&&!(c in e))return!1}else{var p=new r;if(o)var h=o(d,f,c,e,t,p);if(!(void 0===h?a(f,d,3,o,p):h))return!1}}return!0}},28458:(e,t,n)=>{var r=n(23560),a=n(15346),o=n(13218),i=n(80346),l=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,c=s.toString,d=u.hasOwnProperty,f=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||a(e))&&(r(e)?f:l).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),a=n(41780),o=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&a(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),a=n(16432),o=n(6557),i=n(1469),l=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):l(e)}},280:(e,t,n)=>{var r=n(25726),a=n(86916),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),a=n(25726),o=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=a(e),n=[];for(var l in e)("constructor"!=l||!t&&i.call(e,l))&&n.push(l);return n}},91573:(e,t,n)=>{var r=n(2958),a=n(1499),o=n(42634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),a=n(27361),o=n(79095),i=n(15403),l=n(89162),s=n(42634),u=n(40327);e.exports=function(e,t){return i(e)&&l(t)?s(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?o(n,e):r(t,i,3)}}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},56560:(e,t,n)=>{var r=n(75703),a=n(38777),o=n(6557),i=a?function(e,t){return a(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=i},14259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),a=n(29932),o=n(1469),i=n(33448),l=r?r.prototype:void 0,s=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return a(t,e)+"";if(i(t))return s?s.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},57406:(e,t,n)=>{var r=n(71811),a=n(10928),o=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=o(e,t))||delete e[i(a(t))]}},74757:e=>{e.exports=function(e,t){return e.has(t)}},71811:(e,t,n)=>{var r=n(1469),a=n(15403),o=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:o(i(e))}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a?r.Buffer:void 0,l=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),a=r?r.prototype:void 0,o=a?a.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),a=n(89465);e.exports=function(e,t,n,o){var i=!n;n||(n={});for(var l=-1,s=t.length;++l<s;){var u=t[l],c=o?o(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),i?a(n,u,c):r(n,u,c)}return n}},18805:(e,t,n)=>{var r=n(98363),a=n(99551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(98363),a=n(51442);e.exports=function(e,t){return r(e,a(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),a=n(81119),o=n(67206),i=n(1469);e.exports=function(e,t){return function(n,l){var s=i(n)?r:a,u=t?t():{};return s(n,e,o(l,2),u)}}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,a){if(null==n)return n;if(!r(n))return e(n,a);for(var o=n.length,i=t?o:-1,l=Object(n);(t?i--:++i<o)&&!1!==a(l[i],i,l););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),l=i.length;l--;){var s=i[e?l:++a];if(!1===n(o[s],s,o))break}return t}}},60696:(e,t,n)=>{var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:(e,t,n)=>{var r=n(10852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=a},67114:(e,t,n)=>{var r=n(88668),a=n(82908),o=n(74757);e.exports=function(e,t,n,i,l,s){var u=1&n,c=e.length,d=t.length;if(c!=d&&!(u&&d>c))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,m=!0,g=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h<c;){var v=e[h],b=t[h];if(i)var y=u?i(b,v,h,t,e,s):i(v,b,h,e,t,s);if(void 0!==y){if(y)continue;m=!1;break}if(g){if(!a(t,(function(e,t){if(!o(g,t)&&(v===e||l(v,e,n,i,s)))return g.push(t)}))){m=!1;break}}else if(v!==b&&!l(v,b,n,i,s)){m=!1;break}}return s.delete(e),s.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),a=n(11149),o=n(77813),i=n(67114),l=n(68776),s=n(21814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,d,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+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 p=l;case"[object Set]":var h=1&r;if(p||(p=s),e.size!=t.size&&!h)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(p(e),p(t),r,u,d,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,i,l){var s=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!s)return!1;for(var d=c;d--;){var f=u[d];if(!(s?f in t:a.call(t,f)))return!1}var p=l.get(e),h=l.get(t);if(p&&h)return p==t&&h==e;var m=!0;l.set(e,t),l.set(t,e);for(var g=s;++d<c;){var v=e[f=u[d]],b=t[f];if(o)var y=s?o(b,v,f,t,e,l):o(v,b,f,e,t,l);if(!(void 0===y?v===b||i(v,b,n,o,l):y)){m=!1;break}g||(g="constructor"==f)}if(m&&!g){var w=e.constructor,x=t.constructor;w==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(m=!1)}return l.delete(e),l.delete(t),m}},99021:(e,t,n)=>{var r=n(85564),a=n(45357),o=n(30061);e.exports=function(e){return o(a(e,void 0,r),e+"")}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),a=n(99551),o=n(3674);e.exports=function(e){return r(e,o,a)}},46904:(e,t,n)=>{var r=n(68866),a=n(51442),o=n(81704);e.exports=function(e){return r(e,o,a)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var o=t[n],i=e[o];t[n]=[o,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),a=n(47801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),a=Object.prototype,o=a.hasOwnProperty,i=a.toString,l=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,l),n=e[l];try{e[l]=void 0;var r=!0}catch(s){}var a=i.call(e);return r&&(t?e[l]=n:delete e[l]),a}},99551:(e,t,n)=>{var r=n(34963),a=n(70479),o=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,l=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return o.call(e,t)})))}:a;e.exports=l},51442:(e,t,n)=>{var r=n(62488),a=n(85924),o=n(99551),i=n(70479),l=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=a(e);return t}:i;e.exports=l},64160:(e,t,n)=>{var r=n(18552),a=n(57071),o=n(53818),i=n(58525),l=n(70577),s=n(44239),u=n(80346),c="[object Map]",d="[object Promise]",f="[object Set]",p="[object WeakMap]",h="[object DataView]",m=u(r),g=u(a),v=u(o),b=u(i),y=u(l),w=s;(r&&w(new r(new ArrayBuffer(1)))!=h||a&&w(new a)!=c||o&&w(o.resolve())!=d||i&&w(new i)!=f||l&&w(new l)!=p)&&(w=function(e){var t=s(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return h;case g:return c;case v:return d;case b:return f;case y:return p}return t}),e.exports=w},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),a=n(35694),o=n(1469),i=n(65776),l=n(41780),s=n(40327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,d=!1;++u<c;){var f=s(t[u]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++u!=c?d:!!(c=null==e?0:e.length)&&l(c)&&i(f,c)&&(o(e)||a(e))}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),a=n(57157),o=n(93147),i=n(40419),l=n(77133);e.exports=function(e,t,n){var s=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return a(e,n);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 l(e,n);case"[object Map]":case"[object Set]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return o(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),a=n(85924),o=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(a(e))}},37285:(e,t,n)=>{var r=n(62705),a=n(35694),o=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||a(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},15403:(e,t,n)=>{var r=n(1469),a=n(33448),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||(i.test(e)||!o.test(e)||null!=t&&e in Object(t))}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,a=n(14429),o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),a=n(38407),o=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||a),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a&&r.process,l=function(){try{var e=o&&o.require&&o.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(t){}}();e.exports=l},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),a=Math.max;e.exports=function(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var o=arguments,i=-1,l=a(o.length-t,0),s=Array(l);++i<l;)s[i]=o[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=o[i];return u[t]=n(s),r(e,this,u)}}},40292:(e,t,n)=>{var r=n(97786),a=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,a(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),a="object"==typeof self&&self&&self.Object===Object&&self,o=r||a||Function("return this")();e.exports=o},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),a=n(21275)(r);e.exports=a},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var a=t(),o=16-(a-r);if(r=a,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),a=n(57071),o=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(i)}return n.set(e,t),this.size=n.size,this}},55514:(e,t,n)=>{var r=n(24523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(o,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},75703:e=>{e.exports=function(e){return function(){return e}}},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},7739:(e,t,n)=>{var r=n(89465),a=n(55189),o=Object.prototype.hasOwnProperty,i=a((function(e,t,n){o.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},35694:(e,t,n)=>{var r=n(9454),a=n(37005),o=Object.prototype,i=o.hasOwnProperty,l=o.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=s},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),a=n(41780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=n(95062),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,l=i&&i.exports===o?r.Buffer:void 0,s=(l?l.isBuffer:void 0)||a;e.exports=s},23560:(e,t,n)=>{var r=n(44239),a=n(13218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),a=n(7518),o=n(31167),i=o&&o.isMap,l=i?a(i):r;e.exports=l},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),a=n(85924),o=n(37005),i=Function.prototype,l=Object.prototype,s=i.toString,u=l.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=a(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==c}},72928:(e,t,n)=>{var r=n(29221),a=n(7518),o=n(31167),i=o&&o.isSet,l=i?a(i):r;e.exports=l},33448:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),a=n(7518),o=n(31167),i=o&&o.isTypedArray,l=i?a(i):r;e.exports=l},3674:(e,t,n)=>{var r=n(14636),a=n(280),o=n(98612);e.exports=function(e){return o(e)?r(e):a(e)}},81704:(e,t,n)=>{var r=n(14636),a=n(10313),o=n(98612);e.exports=function(e){return o(e)?r(e,!0):a(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:(e,t,n)=>{var r=n(83369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},57557:(e,t,n)=>{var r=n(29932),a=n(85990),o=n(57406),i=n(71811),l=n(98363),s=n(60696),u=n(99021),c=n(46904),d=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=i(t,e),u||(u=t.length>1),t})),l(e,c(e),n),u&&(n=a(n,7,s));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},39601:(e,t,n)=>{var r=n(40371),a=n(79152),o=n(15403),i=n(40327);e.exports=function(e){return o(e)?r(i(e)):a(e)}},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},31336:(e,t,n)=>{var r,a;!function(){var o,i,l,s,u,c,d,f,p,h,m,g,v,b,y,w,x,k,_,E,S,C,T,O,D,P,N,I,A,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var a=n[r],o=e[a];if(Array.isArray(o))t[a]=o.slice();else{if("string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o)throw new TypeError("clone is not deep and does not support nested objects");t[a]=o}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,a=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var o=0;o<r.length;o++){var i=r[o];i in n.elements&&a.push(i)}return new R.Set(a)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var a=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(a))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,a=[],o=0,i=0;o<=r;o++){var l=o-i;if(n.charAt(o).match(R.tokenizer.separator)||o==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=a.length,a.push(new R.Token(n.slice(i,o),s))}i=o+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],a=[],o=0;o<e.length;o++){var i=r(e[o],o,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)a.push(i[l]);else a.push(i)}e=a}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,a=Math.floor(r/2),o=this.elements[2*a];r>1&&(o<e&&(t=a),o>e&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:o<e?2*(a+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,a=n.length,o=r.length,i=0,l=0,s=0,u=0;s<a&&u<o;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),v=new RegExp(p),b=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,k=/.$/,_=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),S=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,O=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,D=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,P=/^(.+?)(s|t)(ion)$/,N=/^(.+?)e$/,I=/ll$/,A=new RegExp("^"+u+s+"[^aeiouwxy]$"),L=function(e){var t,n,r,a,o,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),o=y,(a=b).test(e)?e=e.replace(a,"$1$2"):o.test(e)&&(e=e.replace(o,"$1$2")),o=x,(a=w).test(e)){var c=a.exec(e);(a=h).test(c[1])&&(a=k,e=e.replace(a,""))}else o.test(e)&&(t=(c=o.exec(e))[1],(o=v).test(t)&&(s=E,u=S,(o=_).test(e=t)?e+="e":s.test(e)?(a=k,e=e.replace(a,"")):u.test(e)&&(e+="e")));return(a=C).test(e)&&(e=(t=(c=a.exec(e))[1])+"i"),(a=T).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+i[n])),(a=O).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+l[n])),o=P,(a=D).test(e)?(t=(c=a.exec(e))[1],(a=m).test(t)&&(e=t)):o.test(e)&&(t=(c=o.exec(e))[1]+c[2],(o=m).test(t)&&(e=t)),(a=N).test(e)&&(t=(c=a.exec(e))[1],o=g,s=A,((a=m).test(t)||o.test(t)&&!s.test(t))&&(e=t)),o=m,(a=I).test(e)&&o.test(e)&&(a=k,e=e.replace(a,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var a=r.pop();if(a.str.length>0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new R.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r<a;r++){var o=e[r],i=r==a-1;if("*"==o)t.edges[o]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[o]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),a=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<a;o++){var i=r[o];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var a=t[r];e=e+a+this.edges[a].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var a=Object.keys(n.qNode.edges),o=a.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<o;s++)for(var u=a[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var a=new R.TokenSet,o=e[r];t.edges[o]=a,this.uncheckedNodes.push({parent:t,char:o,child:a}),t=a}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){o[N=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var v=h[g],b=this.invertedIndex[v],y=b._index;for(m=0;m<s.fields.length;m++){var w=b[N=s.fields[m]],x=Object.keys(w),k=v+"/"+N,_=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(_),void 0===o[N]&&(o[N]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[N].upsert(y,s.boost,(function(e,t){return e+t})),!a[k]){for(var E=0;E<x.length;E++){var S,C=x[E],T=new R.FieldRef(C,N),O=w[C];void 0===(S=n[T])?n[T]=new R.MatchData(v,N,O):S.add(v,N,O)}a[k]=!0}}else void 0===i[N]&&(i[N]=R.Set.empty),i[N]=i[N].union(_)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){o[N=s.fields[m]]=o[N].intersect(c)}}var D=R.Set.complete,P=R.Set.empty;for(l=0;l<this.fields.length;l++){var N;o[N=this.fields[l]]&&(D=D.intersect(o[N])),i[N]&&(P=P.union(i[N]))}var I=Object.keys(n),A=[],L=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(l=0;l<I.length;l++){T=I[l];var j=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<I.length;l++){var M=(j=R.FieldRef.fromString(I[l])).docRef;if(D.contains(M)&&!P.contains(M)){var F,B=this.fieldVectors[j],z=r[j.fieldName].similarity(B);if(void 0!==(F=L[M]))F.score+=z,F.matchData.combine(n[j]);else{var $={ref:M,score:z,matchData:n[j]};L[M]=$,A.push($)}}}return A.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,a=Object.create(null),o=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<o.length;s++){var d,f=(d=o[s])[0],p=d[1];i.insert(f),a[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=a,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a<r.length;a++){var o=r[a],i=this._fields[o].extractor,l=i?i(e):e[o],s=this.tokenizer(l,{fields:[o]}),u=this.pipeline.run(s),c=new R.FieldRef(n,o),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][o][n]&&(this.invertedIndex[p][o][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var v=this.metadataWhitelist[g],b=p.metadata[v];null==this.invertedIndex[p][o][n][v]&&(this.invertedIndex[p][o][n][v]=[]),this.invertedIndex[p][o][n][v].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},a=0;a<t;a++){var o=R.FieldRef.fromString(e[a]),i=o.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[o]}var l=Object.keys(this._fields);for(a=0;a<l.length;a++){var s=l[a];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),a=0;a<n;a++){for(var o=R.FieldRef.fromString(t[a]),i=o.fieldName,l=this.fieldLengths[o],s=new R.Vector,u=this.fieldTermFrequencies[o],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[o.docRef].boost||1,h=0;h<d;h++){var m,g,v,b=c[h],y=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+y),g*=f,g*=p,v=Math.round(1e3*g)/1e3,s.insert(w,v)}e[o]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),a=Object.keys(n||{}),o=0;o<a.length;o++){var i=a[o];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],a=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var o=0;o<a.length;o++){var i=a[o],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),a=0;a<r.length;a++){var o=r[a];o in this.metadata[e][t]?this.metadata[e][t][o]=this.metadata[e][t][o].concat(n[o]):this.metadata[e][t][o]=n[o]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},27861:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={icon:"icon_S7Kx",s:"s_AZDZ",m:"m_thRi",l:"l_WHPt",fill:"fill_hNhN",stroke:"stroke_N8dm"}},10153:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={backdrop:"backdrop_Ifvc",navWrapper:"navWrapper_ybYI",nav:"nav_cMpg",visible:"visible_ynAX",wrapper:"wrapper_SWrM",fullscreenButton:"fullscreenButton_Bocn",active:"active_qZD5"}},8633:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={toggle:"toggle_K23S",toggleButton:"toggleButton_dl49",darkToggleIcon:"darkToggleIcon_lKkA",lightToggleIcon:"lightToggleIcon_K4TL",toggleButtonDisabled:"toggleButtonDisabled_AAS_"}},79762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={firstRow:"firstRow_ar1q",secondRow:"secondRow__ww3",backToTop:"backToTop_wDfN",footerLink:"footerLink_sh7M"}},90826:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={colorModeToggle:"colorModeToggle_GSaI",rightSection:"rightSection_CLeF",iconButtonGroup:"iconButtonGroup_ktNv"}},83244:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={dropdownNavbarItem:"dropdownNavbarItem_o23I"}},31259:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={modal:"modal_kLVz",closeButton:"closeButton_Rr0e",header:"header_QwCa"}},61699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ONDG",empty:"empty_a7qb",title:"title_uwS_",item:"item_RHYF",itemTitle:"itemTitle_jtAv"}},9592:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_xZfc",textField:"textField_af43"}},1443:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_N57j"}},18589:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_Ooa0",level1:"level1_fpUf",icon:"icon_sZn2",fill:"fill_fkan",stroke:"stroke_j3wH"}},86620:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_JWD1"}},38076:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_EFVO"}},20550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ltHz",noResults:"noResults_mD2O",groups:"groups_p1lF",divider:"divider_eGUz",topBar:"topBar_Dtew"}},22473:(e,t,n)=>{"use strict";n.r(t)},11057:(e,t,n)=>{"use strict";n.r(t)},93878:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},97087:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={navbarHideable:"navbarHideable_OoEf",navbarHidden:"navbarHidden_zoxl"}},88822:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={linkContent:"linkContent__x3v",externalLinkIcon:"externalLinkIcon_Qfue"}},65787:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={themedImage:"themedImage_kfRS","themedImage--light":"themedImage--light_BL8e","themedImage--dark":"themedImage--dark_OvIx"}},36459:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_QACb"}},97142:(e,t)=>{"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var a=n?e.msh.sheet:e.sh.sheet,o=a.insertRule(r,a.cssRules.length),i=(a.cssRules||a.rules)[o];if(i.index=o,n){var l=(i.cssRules||i.rules)[0];i.style=l.style,i.styleMap=l.styleMap}return i})}},52099:(e,t,n)=>{"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,a=this.rule.style;for(n in r)void 0===e[n]&&a.removeProperty(n);for(n in e)e[n]!==r[n]&&a.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},a.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var a=t[r];for(var o in a)a[o].del()}for(var r in e)if(void 0===t[r])for(var o in e[r]){(s=new n(o,r)).diff(e[r][o]),e[r][o]=s}else{var i=t[r],l=e[r];for(var o in i)l[o]||i[o].del();for(var o in l){var s;(s=i[o])?(s.diff(l[o]),l[o]=s):((s=new n(o,r)).diff(l[o]),l[o]=s)}}this.tree=e},e.VRule=n,e.VSheet=a}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function a(){this.tree={}}}},87749:(e,t)=>{t.z=function e(t,n,r,a){var o,i,l={},s=!1;for(o in n)"object"!=typeof(i=n[o])&&(s=!0,l[o]=i);for(o in s&&(t[a]||(t[a]={}),t[a][r]=l),n)if("object"==typeof(i=n[o]))if("@"===o[0])e(t,i,r,o);else{var u=o.indexOf("&")>-1,c=r.split(",");if(u)for(var d=0;d<c.length;d++)c[d]=o.replace(/&/g,c[d]);else for(d=0;d<c.length;d++)c[d]=c[d]+" "+o;e(t,i,c.join(","),a)}}},39662:(e,t)=>{t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:(e,t)=>{"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"==typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var a,o,i="",l=[];for(a in t)(o=t[a])instanceof Object&&!(o instanceof Array)?l.push(a):i+=r.decl(a,o,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var s=0;s<l.length;s++)"@"===(a=l[s])[0]&&"@font-face"!==a?r.putAt(e,t[a],a):r.put(r.selector(e,a),t[a],n)},r.putAt=r.put,r}},74865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},87594:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,a,o]=t;if(r&&o){r=parseInt(r),o=parseInt(o);const e=r<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=r;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=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(o=r.util.objId(t),n[o])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":return o=r.util.objId(t),n[o]?n[o]:(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};return r.hooks.run("before-tokenize",o),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 r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},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(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,v=!!m.lookbehind,b=!!m.greedy,y=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,k=l.next,_=c;k!==t.tail&&!(d&&_>=d.reach);_+=k.value.length,k=k.next){var E=k.value;if(t.length>e.length)return;if(!(E instanceof a)){var S,C=1;if(b){if(!(S=o(x,_,e,v))||S.index>=e.length)break;var T=S.index,O=S.index+S[0].length,D=_;for(D+=k.value.length;T>=D;)D+=(k=k.next).value.length;if(_=D-=k.value.length,k.value instanceof a)continue;for(var P=k;P!==t.tail&&(D<O||"string"==typeof P.value);P=P.next)C++,D+=P.value.length;C--,E=e.slice(_,D),S.index-=_}else if(!(S=o(x,0,E,v)))continue;T=S.index;var N=S[0],I=E.slice(0,T),A=E.slice(T+N.length),L=_+E.length;d&&L>d.reach&&(d.reach=L);var R=k.prev;if(I&&(R=s(t,R,I),_+=I.length),u(t,R,C),k=s(t,R,new a(f,g?r.tokenize(N,g):N,y,N)),A&&s(t,k,A),C>1){var j={cause:f+","+h,reach:L};i(e,t,n,k.prev,_,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(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}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}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.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:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<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){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),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;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=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(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 p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=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(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),h=[];if(s&&h.push(s),h.push(d),p){var m=[p];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){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];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),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 e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<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(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){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),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),a=n(39642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},16500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),h=c;a(h);){for(var m in f={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in h=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(27418),o=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[: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]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(m,e)||!p.call(h,e)&&(f.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=60103,_=60106,E=60107,S=60108,C=60114,T=60109,O=60110,D=60112,P=60113,N=60120,I=60115,A=60116,L=60121,R=60128,j=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;k=B("react.element"),_=B("react.portal"),E=B("react.fragment"),S=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),O=B("react.context"),D=B("react.forward_ref"),P=B("react.suspense"),N=B("react.suspense_list"),I=B("react.memo"),A=B("react.lazy"),L=B("react.block"),B("react.scope"),R=B("react.opaque.id"),j=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,$="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=$&&e[$]||e["@@iterator"])?e:null}function H(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var V=!1;function q(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function W(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=q(e.type,!1);case 11:return e=q(e.type.render,!1);case 22:return e=q(e.type._render,!1);case 1:return e=q(e.type,!0);default:return""}}function G(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case _:return"Portal";case C:return"Profiler";case S:return"StrictMode";case P:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return G(e.type);case L:return G(e._render);case A:t=e._payload,e=e._init;try{return G(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var 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(n=""+Z(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ue(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,me,ge=(me=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return me(e,t)}))}:me);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function xe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var ke=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(ke[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Oe=null;function De(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Pe(e){Te?Oe?Oe.push(e):Oe=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Oe;if(Oe=Te=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Ie(e,t){return e(t)}function Ae(e,t,n,r,a){return e(t,n,r,a)}function Le(){}var Re=Ie,je=!1,Me=!1;function Fe(){null===Te&&null===Oe||(Le(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){ze=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(me){ze=!1}function Ue(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var He=!1,Ve=null,qe=!1,We=null,Ge={onError:function(e){He=!0,Ve=e}};function Ze(e,t,n,r,a,o,i,l,s){He=!1,Ve=null,Ue.apply(Ge,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Qe(e)!==e)throw Error(i(188))}function Ke(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(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 Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function mt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){vt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&vt(it)&&(it=null),null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),ut.forEach(bt),ct.forEach(bt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function xt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function kt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:kt("Animation","AnimationEnd"),animationiteration:kt("Animation","AnimationIteration"),animationstart:kt("Animation","AnimationStart"),transitionend:kt("Transition","TransitionEnd")},Et={},St={};function Ct(e){if(Et[e])return Et[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return Et[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var Tt=Ct("animationend"),Ot=Ct("animationiteration"),Dt=Ct("animationstart"),Pt=Ct("transitionend"),Nt=new Map,It=new Map,At=["abort","abort",Tt,"animationEnd",Ot,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),It.set(r,t),Nt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Rt=8;function jt(e){if(0!=(1&e))return Rt=15,1;if(0!=(2&e))return Rt=14,2;if(0!=(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!=(32&e)?(Rt=11,32):0!==(t=192&e)?(Rt=10,t):0!=(256&e)?(Rt=9,256):0!==(t=3584&e)?(Rt=8,t):0!=(4096&e)?(Rt=7,4096):0!==(t=4186112&e)?(Rt=6,t):0!==(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!=(134217728&e)?(Rt=3,134217728):0!==(t=805306368&e)?(Rt=2,t):0!=(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Rt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=jt(s),a=Rt):0!==(l&=o)&&(r=jt(l),a=Rt)}else 0!==(o=n&~i)?(r=jt(o),a=Rt):0!==l&&(r=jt(l),a=Rt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(jt(t),a<=Rt)return t;Rt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Ht(t)),r|=e[n],t&=~a;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/qt|0)|0},Vt=Math.log,qt=Math.LN2;var Wt=o.unstable_UserBlockingPriority,Gt=o.unstable_runWithPriority,Zt=!0;function Qt(e,t,n,r){je||Le();var a=Xt,o=je;je=!0;try{Ae(a,e,t,n,r)}finally{(je=o)||Fe()}}function Yt(e,t,n,r){Gt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Zt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Kt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=mt(it,e,t,n,r,a),!0;case"dragenter":return lt=mt(lt,e,t,n,r,a),!0;case"mouseover":return st=mt(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,mt(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,mt(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Lr(e,t,r,null,n)}}}function Kt(e,t,n,r){var a=Se(r);if(null!==(a=ta(a))){var o=Qe(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ye(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Lr(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.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 tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(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)?an:on,this.isPropagationStopped=on,this}return a(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=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),hn=ln(pn),mn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,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!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(mn),vn=ln(a({},mn,{dataTransfer:0})),bn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=ln(wn),kn=ln(a({},dn,{data:0})),_n={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var On=a({},pn,{key:function(e){if(e.key){var t=_n[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=ln(On),Pn=ln(a({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),In=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),An=a({},mn,{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}),Ln=ln(An),Rn=[9,13,27,32],jn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!jn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),$n=!1;function Un(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Pe(r),0<(t=jr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Qn=null;function Yn(e){Or(e,0)}function Xn(e){if(X(ra(e)))return e}function Kn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Zn&&(Zn.detachEvent("onpropertychange",ar),Qn=Zn=null)}function ar(e){if("value"===e.propertyName&&Xn(Qn)){var t=[];if(Gn(t,Qn,e,Se(e)),e=Yn,je)e(t);else{je=!0;try{Ie(e,t)}finally{je=!1,Fe()}}}}function or(e,t,n){"focusin"===e?(rr(),Qn=n,(Zn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Qn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(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=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function mr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,br=null,yr=null,wr=null,xr=!1;function kr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==br||br!==K(r)||("selectionStart"in(r=br)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=jr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(At,2);for(var _r="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Er=0;Er<_r.length;Er++)It.set(_r[Er],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Ze.apply(this,arguments),He){if(!He)throw Error(i(198));var c=Ve;He=!1,Ve=null,qe||(qe=!0,We=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(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;Tr(a,l,u),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;Tr(a,l,u),o=s}}}if(qe)throw e=We,qe=!1,We=null,e}function Dr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Ar(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Cr.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ar(o,e,a,t),i.add(l))}function Ar(e,t,n,r){var a=It.get(t);switch(void 0===a?2:a){case 0:a=Qt;break;case 1:a=Yt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!ze||"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 Lr(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||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Re(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=o,a=Se(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Dn;break;case"focusin":u="focus",s=bn;break;case"focusout":u="blur",s=bn;break;case"beforeblur":case"afterblur":s=bn;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=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case Ot:case Dt:s=yn;break;case Pt:s=In;break;case"scroll":s=hn;break;case"wheel":s=Ln;break;case"copy":case"cut":case"paste":s=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Be(h,f))&&c.push(Rr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=Qe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(m,h+"leave",s,n,a)).target=d,l.relatedTarget=p,m=null,ta(a)===r&&((c=new c(f,h+"enter",u,n,a)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Mr(p))h++;for(p=0,m=f;m;m=Mr(m))p++;for(;0<h-p;)c=Mr(c),h--;for(;0<p-h;)f=Mr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Mr(c),f=Mr(f)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Kn;else if(Wn(l))if(Jn)g=sr;else{g=ir;var v=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Gn(i,g,n,a):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&ae(l,"number",l.value)),v=r?ra(r):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(br=v,yr=r,wr=null);break;case"focusout":wr=yr=br=null;break;case"mousedown":xr=!0;break;case"contextmenu":case"mouseup":case"dragend":xr=!1,kr(i,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":kr(i,n,a)}var b;if(jn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(b=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Vn=!0)),0<(v=jr(r,y)).length&&(y=new kn(y,e,null,n,a),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=Hn(n))&&(y.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:($n=!0,zn);case"textInput":return(e=t.data)===zn&&$n?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!jn&&Un(e,t)?(e=nn(),tn=en=Jt=null,Vn=!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 Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=jr(r,"onBeforeInput")).length&&(a=new kn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Or(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Be(e,n))&&r.unshift(Rr(e,o,a)),null!=(o=Be(e,t))&&r.push(Rr(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(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(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Be(n,o))&&i.unshift(Rr(n,s,l)):a||null!=(s=Be(n,o))&&i.push(Rr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,$r=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,qr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Gr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Zr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0;var Yr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Yr,Kr="__reactProps$"+Yr,Jr="__reactContainer$"+Yr,ea="__reactEvents$"+Yr;function ta(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Zr(e);null!==e;){if(n=e[Xr])return n;e=Zr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Kr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ha=da;function ma(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function va(){ua(pa),ua(fa)}function ba(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,G(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ha=fa.current,ca(fa,e),ca(pa,pa.current),!0}function xa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var ka=null,_a=null,Ea=o.unstable_runWithPriority,Sa=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Oa=o.unstable_requestPaint,Da=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Na=o.unstable_ImmediatePriority,Ia=o.unstable_UserBlockingPriority,Aa=o.unstable_NormalPriority,La=o.unstable_LowPriority,Ra=o.unstable_IdlePriority,ja={},Ma=void 0!==Oa?Oa:function(){},Fa=null,Ba=null,za=!1,$a=Da(),Ua=1e4>$a?Da:function(){return Da()-$a};function Ha(){switch(Pa()){case Na:return 99;case Ia:return 98;case Aa:return 97;case La:return 96;case Ra:return 95;default:throw Error(i(332))}}function Va(e){switch(e){case 99:return Na;case 98:return Ia;case 97:return Aa;case 96:return La;case 95:return Ra;default:throw Error(i(332))}}function qa(e,t){return e=Va(e),Ea(e,t)}function Wa(e,t,n){return e=Va(e),Sa(e,t,n)}function Ga(){if(null!==Ba){var e=Ba;Ba=null,Ca(e)}Za()}function Za(){if(!za&&null!==Fa){za=!0;var e=0;try{var t=Fa;qa(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fa=null}catch(n){throw null!==Fa&&(Fa=Fa.slice(e+1)),Sa(Na,Ga),n}finally{za=!1}}}var Qa=x.ReactCurrentBatchConfig;function Ya(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=sa(null),Ka=null,Ja=null,eo=null;function to(){eo=Ja=Ka=null}function no(e){var t=Xa.current;ua(Xa),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Ka=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ji=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Ka)throw Error(i(308));Ja=t,Ka.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(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={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,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;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,m=i;switch(s=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){f=h.call(p,f,s);break e}f=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(s="function"==typeof(h=m.payload)?h.call(p,f,s):h))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,$l|=l,e.lanes=l,e.memoizedState=f}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var mo=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var vo={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),hs(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),hs(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),hs(e,r,n)}};function bo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ha:fa.current,o=(r=null!=(r=t.contextTypes))?ma(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=vo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(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&&vo.enqueueReplaceState(t,t.state,null)}function xo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=mo,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ha:fa.current,a.context=ma(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&vo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var ko=Array.isArray;function _o(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===mo&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Eo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function So(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Ws(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=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=_o(e,t,n),r.return=e,r):((r=Gs(n.type,n.key,n.props,null,e.mode,r)).ref=_o(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Gs(t.type,t.key,t.props,null,e.mode,n)).ref=_o(e,null,t),n.return=e,n;case _:return(t=Xs(t,e.mode,n)).return=e,t}if(ko(t)||U(t))return(t=Zs(t,e.mode,n,null)).return=e,t;Eo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?n.type===E?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case _:return n.key===a?c(e,t,n,r):null}if(ko(n)||U(n))return null!==a?null:d(e,t,n,r,null);Eo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case _:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(ko(r)||U(r))return d(t,e=e.get(n)||null,r,a,null);Eo(t,r)}return null}function m(a,i,l,s){for(var u=null,c=null,d=i,m=i=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=p(a,d,l[m],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(a,d),i=o(v,i,m),null===c?u=v:c.sibling=v,c=v,d=g}if(m===l.length)return n(a,d),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 u}for(d=r(a,d);m<l.length;m++)null!==(g=h(d,a,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),i=o(g,i,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=U(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,m=l,g=l=0,v=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(v=m,m=null):v=m.sibling;var y=p(a,m,b.value,u);if(null===y){null===m&&(m=v);break}e&&m&&null===y.alternate&&t(a,m),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,m=v}if(b.done)return n(a,m),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return c}for(m=r(a,m);!b.done;g++,b=s.next())null!==(b=h(m,a,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===E&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case k:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===E){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=_o(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===E?((r=Zs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Gs(o.type,o.key,o.props,null,e.mode,s)).ref=_o(e,r,o),s.return=e,e=s)}return l(e);case _:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ys(o,e.mode,s)).return=e,e=r),l(e);if(ko(o))return m(e,r,o,s);if(U(o))return g(e,r,o,s);if(c&&Eo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,G(e.type)||"Component"))}return n(e,r)}}var Co=So(!0),To=So(!1),Oo={},Do=sa(Oo),Po=sa(Oo),No=sa(Oo);function Io(e){if(e===Oo)throw Error(i(174));return e}function Ao(e,t){switch(ca(No,t),ca(Po,e),ca(Do,Oo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Do),ca(Do,t)}function Lo(){ua(Do),ua(Po),ua(No)}function Ro(e){Io(No.current);var t=Io(Do.current),n=pe(t,e.type);t!==n&&(ca(Po,e),ca(Do,n))}function jo(e){Po.current===e&&(ua(Do),ua(Po))}var Mo=sa(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bo=null,zo=null,$o=!1;function Uo(e,t){var n=Vs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ho(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Vo(e){if($o){var t=zo;if(t){var n=t;if(!Ho(e,t)){if(!(t=Gr(n.nextSibling))||!Ho(e,t))return e.flags=-1025&e.flags|2,$o=!1,void(Bo=e);Uo(Bo,n)}Bo=e,zo=Gr(t.firstChild)}else e.flags=-1025&e.flags|2,$o=!1,Bo=e}}function qo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Bo=e}function Wo(e){if(e!==Bo)return!1;if(!$o)return qo(e),$o=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=zo;t;)Uo(e,t),t=Gr(t.nextSibling);if(qo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Gr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=Bo?Gr(e.stateNode.nextSibling):null;return!0}function Go(){zo=Bo=null,$o=!1}var Zo=[];function Qo(){for(var e=0;e<Zo.length;e++)Zo[e]._workInProgressVersionPrimary=null;Zo.length=0}var Yo=x.ReactCurrentDispatcher,Xo=x.ReactCurrentBatchConfig,Ko=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Ko=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Yo.current=null===e||null===e.memoizedState?Ii:Ai,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Yo.current=Li,e=n(r,a)}while(ri)}if(Yo.current=Ni,t=null!==ei&&null!==ei.next,Ko=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Ko&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,$l|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(ji=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(ji=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Ko&e)===e)&&(t._workInProgressVersionPrimary=r,Zo.push(t))),e)return n(t._source);throw Zo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Al;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Yo.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,h=p.getSnapshot,m=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-Ht(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Pi.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function hi(e,t,n){return pi(si(),e,t,n)}function mi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Pi.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},li().memoizedState=e}function bi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function xi(e,t){return yi(516,4,e,t)}function ki(e,t){return wi(516,4,e,t)}function _i(e,t){return wi(4,2,e,t)}function Ei(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,Ei.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Di(e,t){var n=Ha();qa(98>n?98:n,(function(){e(!0)})),qa(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Pi(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}hs(e,a,r)}}var Ni={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:xi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,Ei.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,Jo,e),[r.memoizedState,e]},useRef:vi,useState:mi,useDebugValue:Ci,useDeferredValue:function(e){var t=mi(e),n=t[0],r=t[1];return xi((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=mi(!1),t=e[0];return vi(e=Di.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if($o){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(i(355))})),n=mi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return mi(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ai={readContext:oo,useCallback:Ti,useContext:oo,useEffect:ki,useImperativeHandle:Si,useLayoutEffect:_i,useMemo:Oi,useReducer:ci,useRef:bi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return ki((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Li={readContext:oo,useCallback:Ti,useContext:oo,useEffect:ki,useImperativeHandle:Si,useLayoutEffect:_i,useMemo:Oi,useReducer:di,useRef:bi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return ki((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ri=x.ReactCurrentOwner,ji=!1;function Mi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Fi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||ji?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Bi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||qs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Ws(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(ji=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(ji=!0)}return Hi(e,t,n,r,o)}function $i(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},ks(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},ks(t,e),null;t.memoizedState={baseLanes:0},ks(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,ks(t,r);return Mi(e,t,a,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,a){var o=ga(n)?ha:fa.current;return o=ma(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||ji?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Vi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),xo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ma(t,u=ga(n)?ha:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||bo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ya(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ma(t,s=ga(n)?ha:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var h=t.memoizedState;l!==d||f!==h||pa.current||io?("function"==typeof p&&(go(t,n,p,r),h=t.memoizedState),(u=io||bo(t,n,u,r,f,h,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return qi(e,t,n,r,o,a)}function qi(e,t,n,r,a,o){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&xa(t,n,!1),ol(e,t,o);r=t.stateNode,Ri.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Mi(e,t,l,o),t.memoizedState=r.state,a&&xa(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?ba(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ba(0,t.context,!1),Ao(e,t.containerInfo)}var Gi,Zi,Qi,Yi,Xi={dehydrated:null,retryLane:0};function Ki(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Mo,1&o),null===e?(void 0!==a.fallback&&Vo(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Qs({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Qs(t,a,0,null),n=Zs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Ws(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Ws(i,l),null!==e?r=Ws(e,r):(r=Zs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(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,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Fo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),$l|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ws(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ws(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$o)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&va(),null;case 3:return Lo(),ua(pa),ua(fa),Qo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Zi(t),null;case 5:jo(t);var o=Io(No.current);if(n=t.type,null!==e&&null!=t.stateNode)Qi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Io(Do.current),Wo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Kr]=l,n){case"dialog":Dr("cancel",r),Dr("close",r);break;case"iframe":case"object":case"embed":Dr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Dr(Sr[e],r);break;case"source":Dr("error",r);break;case"img":case"image":case"link":Dr("error",r),Dr("load",r);break;case"details":Dr("toggle",r);break;case"input":ee(r,l),Dr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Dr("invalid",r);break;case"textarea":se(r,l),Dr("invalid",r)}for(var u in _e(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Dr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Kr]=r,Gi(e,t,!1,!1),t.stateNode=e,u=Ee(n,r),n){case"dialog":Dr("cancel",e),Dr("close",e),o=r;break;case"iframe":case"object":case"embed":Dr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Sr.length;o++)Dr(Sr[o],e);o=r;break;case"source":Dr("error",e),o=r;break;case"img":case"image":case"link":Dr("error",e),Dr("load",e),o=r;break;case"details":Dr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Dr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Dr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Dr("invalid",e);break;default:o=r}_e(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?xe(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Dr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Br)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Io(No.current),Io(Do.current),Wo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ua(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Al||0==(134217727&$l)&&0==(134217727&Ul)||bs(Al,Rl))),(r||n)&&(t.flags|=4),null);case 4:return Lo(),Zi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Mo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&Ua()>Wl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!$o)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ua()-r.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ua(),n.sibling=null,t=Mo.current,ca(Mo,l?1&t|2:1&t),n):null;case 23:case 24:return _s(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Lo(),ua(pa),ua(fa),Qo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return jo(e),null;case 13:return ua(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Mo),null;case 4:return Lo(),null;case 10:return no(e),null;case 23:case 24:return _s(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Gi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Zi=function(){},Qi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Io(Do.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in _e(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Dr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===R?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Xl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Kl?Kl=new Set([this]):Kl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var hl="function"==typeof WeakSet?WeakSet:Set;function ml(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ya(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Ms(n,e),js(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ya(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&xt(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(_a&&"function"==typeof _a.onCommitFiberUnmount)try{_a.onCommitFiberUnmount(ka,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Ms(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(ml(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:ml(t);break;case 4:Sl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function xl(e){return 5===e.tag||3===e.tag||4===e.tag}function kl(e){e:{for(var t=e.return;null!==t;){if(xl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||xl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?_l(e,n,t):El(e,n,t)}function _l(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(_l(e,t,n),e=e.sibling;null!==e;)_l(e,t,n),e=e.sibling}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function Sl(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Kr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,a),t=Ee(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?xe(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,xt(n.containerInfo)));case 13:return null!==t.memoizedState&&(ql=Ua(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new hl),t.forEach((function(t){var r=Us.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ol(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Dl=Math.ceil,Pl=x.ReactCurrentDispatcher,Nl=x.ReactCurrentOwner,Il=0,Al=null,Ll=null,Rl=0,jl=0,Ml=sa(0),Fl=0,Bl=null,zl=0,$l=0,Ul=0,Hl=0,Vl=null,ql=0,Wl=1/0;function Gl(){Wl=Ua()+500}var Zl,Ql=null,Yl=!1,Xl=null,Kl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Il)?Ua():-1!==ls?ls:ls=Ua()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ha()?1:2;if(0===ss&&(ss=zl),0!==Qa.transition){0!==us&&(us=null!==Vl?Vl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ha(),0!=(4&Il)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function hs(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=ms(e,t)))return null;Ut(e,t,n),e===Al&&(Ul|=t,4===Fl&&bs(e,Rl));var r=Ha();1===t?0!=(8&Il)&&0==(48&Il)?ys(e):(gs(e,n),0===Il&&(Gl(),Ga())):(0==(4&Il)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Vl=e}function ms(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,jt(u);var d=Rt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Al?Rl:0),t=Rt,0===r)null!==n&&(n!==ja&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==ja&&Ca(n)}15===t?(n=ys.bind(null,e),null===Fa?(Fa=[n],Ba=Sa(Na,Za)):Fa.push(n),n=ja):14===t?n=Wa(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Wa(n,vs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vs(e){if(ls=-1,us=ss=0,0!=(48&Il))throw Error(i(327));var t=e.callbackNode;if(Rs()&&e.callbackNode!==t)return null;var n=Mt(e,e===Al?Rl:0);if(0===n)return null;var r=n,a=Il;Il|=16;var o=Cs();for(Al===e&&Rl===r||(Gl(),Es(e,r));;)try{Ds();break}catch(s){Ss(e,s)}if(to(),Pl.current=o,Il=a,null!==Ll?r=0:(Al=null,Rl=0,r=Fl),0!=(zl&Ul))Es(e,0);else if(0!==r){if(2===r&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,Es(e,0),bs(e,n),gs(e,Ua()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Is(e);break;case 3:if(bs(e,n),(62914560&n)===n&&10<(r=ql+500-Ua())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Vr(Is.bind(null,e),r);break}Is(e);break;case 4:if(bs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-Ht(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=Ua()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Dl(n/1960))-n)){e.timeoutHandle=Vr(Is.bind(null,e),n);break}Is(e);break;default:throw Error(i(329))}}return gs(e,Ua()),e.callbackNode===t?vs.bind(null,e):null}function bs(e,t){for(t&=~Hl,t&=~Ul,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Il))throw Error(i(327));if(Rs(),e===Al&&0!=(e.expiredLanes&Rl)){var t=Rl,n=Ts(e,t);0!=(zl&Ul)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,Es(e,0),bs(e,t),gs(e,Ua()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Is(e),gs(e,Ua()),null}function ws(e,t){var n=Il;Il|=1;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}}function xs(e,t){var n=Il;Il&=-2,Il|=8;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}}function ks(e,t){ca(Ml,jl),jl|=t,zl|=t}function _s(){jl=Ml.current,ua(Ml)}function Es(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,qr(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Lo(),ua(pa),ua(fa),Qo();break;case 5:jo(r);break;case 4:Lo();break;case 13:case 19:ua(Mo);break;case 10:no(r);break;case 23:case 24:_s()}n=n.return}Al=e,Ll=Ws(e.current,null),Rl=jl=zl=t,Fl=0,Bl=null,Hl=Ul=$l=0}function Ss(e,t){for(;;){var n=Ll;try{if(to(),Yo.current=Ni,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Ko=0,ti=ei=Jo=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ll=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Rl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Mo.current),f=i;do{var p;if(p=13===f.tag){var h=f.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=f.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var v=new Set;v.add(u),f.updateQueue=v}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=uo(-1,1);b.tag=2,co(l,b)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=$s.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((G(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var x=f.type,k=f.stateNode;if(0==(64&f.flags)&&("function"==typeof x.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Kl||!Kl.has(k)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ns(n)}catch(_){t=_,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function Cs(){var e=Pl.current;return Pl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Il;Il|=16;var r=Cs();for(Al===e&&Rl===t||Es(e,t);;)try{Os();break}catch(a){Ss(e,a)}if(to(),Il=n,Pl.current=r,null!==Ll)throw Error(i(261));return Al=null,Rl=0,Fl}function Os(){for(;null!==Ll;)Ps(Ll)}function Ds(){for(;null!==Ll&&!Ta();)Ps(Ll)}function Ps(e){var t=Zl(e.alternate,e,jl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Ll=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,jl)))return void(Ll=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&jl)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ll=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Fl&&(Fl=5)}function Is(e){var t=Ha();return qa(99,As.bind(null,e,t)),null}function As(e,t){do{Rs()}while(null!==es);if(0!=(48&Il))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-Ht(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Al&&(Ll=Al=null,Rl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Il,Il|=32,Nl.current=null,zr=Zt,gr(l=mr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,h=0,m=0,g=l,v=null;t:for(;;){for(var b;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===s&&++h===o&&(f=d),v===u&&++m===c&&(p=d),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;$r={focusedElem:l,selectionRange:s},Zt=!1,cs=null,ds=!1,Ql=r;do{try{Ls()}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);cs=null,Ql=r;do{try{for(l=e;null!==Ql;){var y=Ql.flags;if(16&y&&ve(Ql.stateNode,""),128&y){var w=Ql.alternate;if(null!==w){var x=w.ref;null!==x&&("function"==typeof x?x(null):x.current=null)}}switch(1038&y){case 2:kl(Ql),Ql.flags&=-3;break;case 6:kl(Ql),Ql.flags&=-3,Cl(Ql.alternate,Ql);break;case 1024:Ql.flags&=-1025;break;case 1028:Ql.flags&=-1025,Cl(Ql.alternate,Ql);break;case 4:Cl(Ql.alternate,Ql);break;case 8:Sl(l,s=Ql);var k=s.alternate;wl(s),null!==k&&wl(k)}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);if(x=$r,w=mr(),y=x.focusedElem,l=x.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(x=l.end)&&(x=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(x,y.value.length)):(x=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(x=x.getSelection(),s=y.textContent.length,k=Math.min(l.start,s),l=void 0===l.end?k:Math.min(l.end,s),!x.extend&&k>l&&(s=l,l=k,k=s),s=pr(y,k),o=pr(y,l),s&&o&&(1!==x.rangeCount||x.anchorNode!==s.node||x.anchorOffset!==s.offset||x.focusNode!==o.node||x.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),x.removeAllRanges(),k>l?(x.addRange(w),x.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),x.addRange(w))))),w=[];for(x=y;x=x.parentNode;)1===x.nodeType&&w.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(x=w[y]).element.scrollLeft=x.left,x.element.scrollTop=x.top}Zt=!!zr,$r=zr=null,e.current=n,Ql=r;do{try{for(y=e;null!==Ql;){var _=Ql.flags;if(36&_&&vl(y,Ql.alternate,Ql),128&_){w=void 0;var E=Ql.ref;if(null!==E){var S=Ql.stateNode;Ql.tag,w=S,"function"==typeof E?E(w):E.current=w}}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);Ql=null,Ma(),Il=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Ql=r;null!==Ql;)t=Ql.nextEffect,Ql.nextEffect=null,8&Ql.flags&&((_=Ql).sibling=null,_.stateNode=null),Ql=t;if(0===(r=e.pendingLanes)&&(Kl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,_a&&"function"==typeof _a.onCommitFiberRoot)try{_a.onCommitFiberRoot(ka,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ua()),Yl)throw Yl=!1,e=Xl,Xl=null,e;return 0!=(8&Il)||Ga(),null}function Ls(){for(;null!==Ql;){var e=Ql.alternate;ds||null===cs||(0!=(8&Ql.flags)?Je(Ql,cs)&&(ds=!0):13===Ql.tag&&Ol(e,Ql)&&Je(Ql,cs)&&(ds=!0));var t=Ql.flags;0!=(256&t)&&gl(e,Ql),0==(512&t)||Jl||(Jl=!0,Wa(97,(function(){return Rs(),null}))),Ql=Ql.nextEffect}}function Rs(){if(90!==ts){var e=97<ts?97:ts;return ts=90,qa(e,Fs)}return!1}function js(e,t){ns.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Rs(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Rs(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Il))throw Error(i(331));var t=Il;Il|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Il=t,Ga(),!0}function Bs(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=ms(e,1))&&(Ut(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=ms(n,1)))Ut(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function $s(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Al===e&&(Rl&n)===n&&(4===Fl||3===Fl&&(62914560&Rl)===Rl&&500>Ua()-ql?Es(e,0):Hl|=n),gs(e,t)}function Us(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ha()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=ms(e,t))&&(Ut(e,t,n),gs(e,n))}function Hs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vs(e,t,n,r){return new Hs(e,t,n,r)}function qs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ws(e,t){var n=e.alternate;return null===n?((n=Vs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)qs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case E:return Zs(n.children,a,o,t);case j:l=8,a|=16;break;case S:l=8,a|=1;break;case C:return(e=Vs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case P:return(e=Vs(13,n,t,a)).type=P,e.elementType=P,e.lanes=o,e;case N:return(e=Vs(19,n,t,a)).elementType=N,e.lanes=o,e;case M:return Qs(n,a,o,t);case F:return(e=Vs(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case O:l=9;break e;case D:l=11;break e;case I:l=14;break e;case A:l=16,r=null;break e;case L:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Vs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Zs(e,t,n,r){return(e=Vs(7,e,r,t)).lanes=n,e}function Qs(e,t,n,r){return(e=Vs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Vs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Vs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ks(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),hs(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Ks(e,t,null!=n&&!0===n.hydrate),t=Vs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}xs((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:_,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)ji=!0;else{if(0==(n&r)){switch(ji=!1,t.tag){case 3:Wi(t),Go();break;case 5:Ro(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Ao(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ki(e,t,n):(ca(Mo,1&Mo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return ol(e,t,n)}ji=0!=(16384&e.flags)}else ji=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ma(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=vo,t.stateNode=a,a._reactInternals=t,xo(t,r,e,n),t=qi(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return qs(e)?1:0;if(null!=e){if((e=e.$$typeof)===D)return 11;if(e===I)return 14}return 2}(a),e=Ya(a,e),o){case 0:t=Hi(null,t,a,e,n);break e;case 1:t=Vi(null,t,a,e,n);break e;case 11:t=Fi(null,t,a,e,n);break e;case 14:t=Bi(null,t,a,Ya(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Hi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 1:return r=t.type,a=t.pendingProps,Vi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Go(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Gr(t.stateNode.containerInfo.firstChild),Bo=t,o=$o=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Zo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Go();t=t.child}return t;case 5:return Ro(t),null===e&&Vo(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,Hr(r,a)?l=null:null!==o&&Hr(r,o)&&(t.flags|=16),Ui(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Vo(t),null;case 13:return Ki(e,t,n);case 4:return Ao(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Fi(e,t,r,a=t.elementType===r?a:Ya(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Xa,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Ya(a=t.type,t.pendingProps),Bi(e,t,a,o=Ya(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ya(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),xo(t,r,a,n),qi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(hs(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(hs(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);hs(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));X(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ie=ws,Ae=function(e,t,n,r,a){var o=Il;Il|=4;try{return qa(98,e.bind(null,t,n,r,a))}finally{0===(Il=o)&&(Gl(),Ga())}},Le=function(){0==(49&Il)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ua())}))}Ga()}(),Rs())},Re=function(e,t){var n=Il;Il|=2;try{return e(t)}finally{0===(Il=n)&&(Gl(),Ga())}};var lu={Events:[na,ra,aa,Pe,Ne,Rs,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ke(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{ka=cu.inject(uu),_a=cu}catch(me){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lu,t.createPortal=iu,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Ke(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Il;if(0!=(48&n))return e(t);Il|=1;try{if(e)return qa(99,e.bind(null,t))}finally{Il=n,Ga()}},t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)},t.render=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!au(e))throw Error(i(40));return!!e._reactRootContainer&&(xs((function(){ou(null,null,e,!1,(function(){e._reactRootContainer=null,e[Jr]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return iu(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!au(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ou(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>q,ql:()=>J});var r=n(67294),a=n(45697),o=n.n(a),i=n(69590),l=n.n(i),s=n(41143),u=n.n(s),c=n(96774),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},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(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 g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),_=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=_(e,g.TITLE),n=_(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=_(e,"defaultTitle");return t||r||void 0},S=function(e){return _(e,"onChangeClientState")||function(){}},C=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)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),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}),[])},O=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()},D=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},P=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.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},I=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},A=[g.NOSCRIPT,g.SCRIPT,g.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,"'")},R=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}),"")},j=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},M=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=x[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=j(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=R(n),o=P(t);return a?"<"+e+' data-rh="true" '+a+">"+L(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return j(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){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===A.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=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=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=N(e.metaTags,y),o=N(t,v),i=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,f,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),H=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),V="undefined"!=typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=V,q.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(g.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}},G=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(","))}},Z=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;G(g.BODY,e.bodyAttributes),G(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),G(g.TITLE,t)}(c,d);var f={baseTag:W(g.BASE,n),linkTags:W(g.LINK,a),metaTags:W(g.META,o),noscriptTags:W(g.NOSCRIPT,i),scriptTags:W(g.SCRIPT,s),styleTags:W(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new 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=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:_(e,"defer"),encode:_(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:O(g.LINK,["rel","href"],e),metaTags:O(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:O(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:O(g.SCRIPT,["src","innerHTML"],e),styleTags:O(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:D(e,"prioritizeSeoTags")});q.canUseDOM?(t=o,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){Z(t,(function(){Q=null}))})):(Z(t),Q=null)):B&&(a=B(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);Y.propTypes={context:H.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],K=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(I(this.props,"helmetData"),I(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return 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 g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.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,X),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 g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.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 $||(o=new $(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},a,{context:e}))}))},t}(r.Component);J.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},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(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,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(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 g:case m:case s:return e;default:return t}}case a:return t}}}function k(e){return x(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=g,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||x(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===o},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===a},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=x},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(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 new 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},i.apply(this,arguments)}var l=n(67294),s=n(45697),u=[],c=[];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(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),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(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.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(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){v(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=m},33199:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>M,hasTranslate3DSupport:()=>h,isTouch:()=>d,make2dTransformValue:()=>f,make3dTransformValue:()=>p});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])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new 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},o.apply(this,arguments)};Object.create;Object.create;var i=n(67294),l="kvfysmfp",s="ufhsfnkm",u=".".concat(l,"{overflow:hidden;touch-action:none}.").concat(s,"{transform-origin: 0 0}"),c="undefined"==typeof window,d=function(){return!c&&("ontouchstart"in window||navigator.maxTouchPoints>0)},f=function(e){var t=e.x,n=e.y,r=e.scale;return"scale(".concat(r,") translate(").concat(t,"px, ").concat(n,"px)")},p=function(e){var t=e.x,n=e.y,r=e.scale;return"scale3d(".concat(r,",").concat(r,", 1) translate3d(").concat(t,"px, ").concat(n,"px, 0)")},h=function(){var e=!c&&window.CSS;return e&&e.supports&&e.supports("transform","translate3d(0,0,0)")},m=Math.min,g=Math.max;function v(e){var t=e.containerDimension,n=e.childDimension,r=e.padding,a=e.centerContained,o=n-t;return o+2*r<=0&&a?[o/2,o/2]:[m(o+r,0)-r,g(0,o+r)]}var b=function(e,t){return t?"".concat(e," ").concat(t):e},y=Math.abs,w=Math.min,x=Math.sqrt,k="undefined"==typeof window,_=!k&&/(Mac)/i.test(navigator.platform),E=function(e){return"drag"===e},S=function(e){return"zoom"===e},C=function(e){e.stopPropagation(),e.preventDefault()},T=function(e,t){var n=e.x-t.x,r=e.y-t.y;return x(n*n+r*r)},O=function(e){return-Math.cos(e*Math.PI)/2+.5},D=function(e){return{x:e.pageX,y:e.pageY}},P=function(e){return Array.from(e).map(D)},N=function(e,t){return e+t},I=function(e,t,n){return n<e?e:n>t?t:n},A=function(e){return!(e.ctrlKey||e.metaKey)},L=function(){},R={x:0,y:0},j=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._prevDragMovePoint=null,t._containerObserver=null,t._fingers=0,t._firstMove=!0,t._initialOffset=o({},R),t._interaction=null,t._isDoubleTap=!1,t._isOffsetsSet=!1,t._lastDragPosition=null,t._lastScale=1,t._lastTouchStart=0,t._lastZoomCenter=null,t._listenMouseMove=!1,t._nthZoom=0,t._offset=o({},R),t._startOffset=o({},R),t._startTouches=null,t._updatePlaned=!1,t._wheelTimeOut=null,t._zoomFactor=1,t._initialZoomFactor=1,t._draggingPoint=o({},R),t._ignoreNextClick=!1,t._containerRef=i.createRef(),t._handleClick=function(e){t._ignoreNextClick&&(t._ignoreNextClick=!1,e.stopPropagation())},t._onResize=function(){var e;(null===(e=t._containerRef)||void 0===e?void 0:e.current)&&(t._updateInitialZoomFactor(),t._setupOffsets(),t._update())},t._handlerOnTouchEnd=t._handlerIfEnable((function(e){t._fingers=e.touches.length,t.props.shouldCancelHandledTouchEndEvents&&(S(t._interaction)||E(t._interaction)&&(t._startOffset.x!==t._offset.x||t._startOffset.y!==t._offset.y))&&C(e),E(t._interaction)&&!t._enoughToDrag()&&t._handleClick(e),t._updateInteraction(e)})),t._handlerOnTouchStart=t._handlerIfEnable((function(e){t._firstMove=!0,t._fingers=e.touches.length,t._detectDoubleTap(e)})),t._handlerOnTouchMove=t._handlerIfEnable((function(e){var n,r,a;t._isDoubleTap||(t._collectInertia(e),t._firstMove?(t._updateInteraction(e),t._interaction&&C(e),t._startOffset=o({},t._offset),t._startTouches=P(e.touches)):(S(t._interaction)?t._startTouches&&2===t._startTouches.length&&2===e.touches.length&&t._handleZoom(e,(n=t._startTouches,r=P(e.touches),a=T(n[0],n[1]),T(r[0],r[1])/a)):E(t._interaction)&&t._handleDrag(e),t._interaction&&(C(e),t._update())),t._firstMove=!1)})),t._handlerWheel=function(e){if(!t.props.shouldInterceptWheel(e)){C(e);var n=e.pageX,r=e.pageY,a=e.deltaY,o=e.deltaMode,i=1;(function(e){return _&&e.ctrlKey}(e)||1===o)&&(i=15);var l={touches:[{pageX:n,pageY:r}]},s=t._getOffsetByFirstTouch(l),u=a*i;t._stopAnimation(),t._scaleTo(t._zoomFactor-u/t.props.wheelScaleFactor,s),t._update(),clearTimeout(t._wheelTimeOut),t._wheelTimeOut=setTimeout((function(){return t._sanitize()}),100)}},t._handlers=t.props.isTouch()?[["touchstart",t._handlerOnTouchStart],["touchend",t._handlerOnTouchEnd],["touchmove",t._handlerOnTouchMove]]:[["mousemove",t.simulate(t._handlerOnTouchMove),t.props._document],["mouseup",t.simulate(t._handlerOnTouchEnd),t.props._document],["mousedown",t.simulate(t._handlerOnTouchStart)],["click",t._handleClick],["wheel",t._handlerWheel]],t}return a(t,e),t.prototype._handleDragStart=function(e){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(e)},t.prototype._handleDrag=function(e){var t=this._getOffsetByFirstTouch(e);this._enoughToDrag()?this._drag(t,this._lastDragPosition):this._virtualDrag(t,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=t},t.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},t.prototype._realizeInertia=function(){var e=this,t=this.props,n=t.inertiaFriction;if(t.inertia&&this._velocity){var r=this._velocity,a=r.x,i=r.y;if(a||i){this._stopAnimation(),this._resetInertia();this._animate((function(){if(i*=n,!(a*=n)&&!i)return e._stopAnimation();var t,r,l=o({},e._offset);if(e._addOffset({x:a,y:i}),e._offset=e._sanitizeOffset(e._offset),t=l,r=e._offset,t.x===r.x&&t.y===r.y)return e._stopAnimation();e._update({isAnimation:!0})}),{duration:9999})}}},t.prototype._collectInertia=function(e){var t=e.touches;if(this.props.inertia){var n,r,a=P(t)[0],o=this._prevDragMovePoint;o&&(this._velocity=(n=a,{x:(r=o).x-n.x,y:r.y-n.y})),this._prevDragMovePoint=a}},t.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},t.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},t.prototype._handleZoom=function(e,t){var n,r={x:(n=this._getOffsetTouches(e)).map((function(e){return e.x})).reduce(N,0)/n.length,y:n.map((function(e){return e.y})).reduce(N,0)/n.length},a=t/this._lastScale;this._lastScale=t,this._nthZoom+=1,this._nthZoom>3&&(this._scale(a,r),this._drag(r,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=r},t.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},t.prototype._handleDoubleTap=function(e){var t=this;if(!this._hasInteraction&&0!==this.props.tapZoomFactor){var n=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var r=this._zoomFactor+this.props.tapZoomFactor,a=this._zoomFactor,o=this._getOffsetByFirstTouch(e);this._isDoubleTap=!0,a>r&&(o=this._getCurrentZoomCenter()),n?this._zoomOutAnimation():this._animate((function(e){t._scaleTo(a+e*(r-a),o)}))}},t.prototype._computeInitialOffset=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=t.width,r=t.height,a=-y(n*this._getInitialZoomFactor()-e.width)/2,o=-y(r*this._getInitialZoomFactor()-e.height)/2;this._initialOffset={x:a,y:o}},t.prototype._resetOffset=function(){this._offset=o({},this._initialOffset)},t.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},t.prototype._sanitizeOffset=function(e){var t=this._getContainerRect(),n=this._getChildSize(),r=n.width,a=n.height,o=r*this._getInitialZoomFactor()*this._zoomFactor,i=a*this._getInitialZoomFactor()*this._zoomFactor,l=v({containerDimension:t.width,childDimension:o,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),s=l[0],u=l[1],c=v({containerDimension:t.height,childDimension:i,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),d=c[0],f=c[1];return{x:I(s,u,e.x),y:I(d,f,e.y)}},t.prototype.alignCenter=function(e){var t=this,n=o({duration:250,animated:!0},e),r=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=o({},this._offset),d=this._getContainerRect(),f={x:d.width/2,y:d.height/2};if(this._zoomFactor=1,this._offset={x:-(f.x-r),y:-(f.y-a)},this._scaleTo(i,f),this._stopAnimation(),!l)return this._update();var p=this._zoomFactor-u,h=this._offset.x-c.x,m=this._offset.y-c.y;this._zoomFactor=u,this._offset=o({},c);this._animate((function(e){var n=c.x+h*e,r=c.y+m*e;t._zoomFactor=u+p*e,t._offset=t._sanitizeOffset({x:n,y:r}),t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype.scaleTo=function(e){var t=this,n=o({duration:250,animated:!0},e),r=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=o({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(i,{x:r,y:a}),this._stopAnimation(),!l)return this._update();var d=this._zoomFactor-u,f=this._offset.x-c.x,p=this._offset.y-c.y;this._zoomFactor=u,this._offset=o({},c);this._animate((function(e){var n=c.x+f*e,r=c.y+p*e;t._zoomFactor=u+d*e,t._offset={x:n,y:r},t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype._scaleTo=function(e,t){this._scale(e/this._zoomFactor,t),this._offset=this._sanitizeOffset(this._offset)},t.prototype._scale=function(e,t){e=this._scaleZoomFactor(e),this._addOffset({x:(e-1)*(t.x+this._offset.x),y:(e-1)*(t.y+this._offset.y)}),this.props.onZoomUpdate()},t.prototype._scaleZoomFactor=function(e){var t=this._zoomFactor;return this._zoomFactor*=e,this._zoomFactor=I(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/t},t.prototype._canDrag=function(){return this.props.draggableUnZoomed||!((e=this._zoomFactor)>(t=1)-.01&&e<t+.01);var e,t},t.prototype._drag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this.props.lockDragAxis?y(r)>y(n)?this._addOffset({x:r,y:0}):this._addOffset({y:n,x:0}):this._addOffset({x:r,y:n}),this.props.onDragUpdate()}},t.prototype._virtualDrag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this._draggingPoint={x:r+this._draggingPoint.x,y:n+this._draggingPoint.y}}},t.prototype._addOffset=function(e){var t=this._offset,n=t.x,r=t.y;this._offset={x:n+e.x,y:r+e.y}},t.prototype._sanitize=function(){this._zoomFactor<this.props.zoomOutFactor?(this._resetInertia(),this._zoomOutAnimation()):this._isInsaneOffset()&&this._sanitizeOffsetAnimation()},t.prototype._isInsaneOffset=function(){var e=this._offset,t=this._sanitizeOffset(e);return t.x!==e.x||t.y!==e.y},t.prototype._sanitizeOffsetAnimation=function(){var e=this,t=this._sanitizeOffset(this._offset),n=o({},this._offset);this._animate((function(r){var a=n.x+r*(t.x-n.x),o=n.y+r*(t.y-n.y);e._offset={x:a,y:o},e._update()}))},t.prototype._zoomOutAnimation=function(){var e=this;if(1!==this._zoomFactor){var t=this._zoomFactor,n=this._getCurrentZoomCenter();this._animate((function(r){var a=t+r*(1-t);e._scaleTo(a,n)}))}},t.prototype._getInitialZoomFactor=function(){return this._initialZoomFactor},t.prototype._getCurrentZoomCenter=function(){var e=this._offset,t=e.x,n=e.y,r=t-this._initialOffset.x,a=n-this._initialOffset.y;return{x:-1*t-r/(1/this._zoomFactor-1),y:-1*n-a/(1/this._zoomFactor-1)}},t.prototype._getOffsetByFirstTouch=function(e){return this._getOffsetTouches(e)[0]},t.prototype._getOffsetTouches=function(e){var t=this.props._document,n=t.documentElement,r=t.body,a=this._getContainerRect(),o=a.top,i=a.left,l=n.scrollTop||r.scrollTop,s=n.scrollLeft||r.scrollLeft,u=o+l,c=i+s;return P(e.touches).map((function(e){var t=e.x,n=e.y;return{x:t-c,y:n-u}}))},t.prototype._animate=function(e,t){var n=this,r=(new Date).getTime(),a=o({timeFn:O,callback:function(){},duration:this.props.animationDuration},t),i=a.timeFn,l=a.callback,s=a.duration,u=function(){if(n._inAnimation){var t=(new Date).getTime()-r,a=t/s;t>=s?(e(1),n._stopAnimation(),l(),n._update()):(a=i(a),e(a),n._update({isAnimation:!0}),requestAnimationFrame(u))}};this._inAnimation=!0,requestAnimationFrame(u)},t.prototype._stopAnimation=function(){this._inAnimation=!1},t.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},t.prototype._getContainerRect=function(){return this._containerRef.current.getBoundingClientRect()},t.prototype._getChildSize=function(){var e=this._containerRef.current;return function(e){if(e){var t=e.offsetWidth,n=e.offsetHeight;if(t&&n)return{width:t,height:n};var r=getComputedStyle(e),a=parseFloat(r.width),o=parseFloat(r.height);if(o&&a)return{width:a,height:o}}return{width:0,height:0}}(null==e?void 0:e.firstElementChild)},t.prototype._updateInitialZoomFactor=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=e.width/t.width,r=e.height/t.height;this._initialZoomFactor=w(n,r)},t.prototype._bindEvents=function(){var e=this,t=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(t)):window.addEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).addEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.addEventListener("load",e._onResize)}))},t.prototype._unSubscribe=function(){var e=this,t=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).removeEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.removeEventListener("load",e._onResize)}))},t.prototype._update=function(e){var t=this;if(!this._updatePlaned){var n=function(){var e=t._getInitialZoomFactor()*t._zoomFactor,n=-t._offset.x/e,r=-t._offset.y/e;t.props.onUpdate({scale:e,x:n,y:r})};if(null==e?void 0:e.isAnimation)return n();this._updatePlaned=!0,requestAnimationFrame((function(){t._updatePlaned=!1,n()}))}},t.prototype._handlerIfEnable=function(e){var t=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];t.props.enabled&&e.apply(void 0,n)}},t.prototype._setInteraction=function(e,t){var n=this._interaction;n!==e&&(n&&!e&&(S(n)?this._handleZoomEnd():E(n)&&this._handleDragEnd()),S(e)?this._handleZoomStart():E(e)&&this._handleDragStart(t)),this._interaction=e},t.prototype._distanceBetweenNumbers=function(e,t){return e>t?e-t:t-e},t.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},t.prototype._updateInteraction=function(e){var t=this._fingers;return 2===t?this._setInteraction("zoom",e):1===t&&this._canDrag()?this._setInteraction("drag",e):void this._setInteraction(null,e)},t.prototype._detectDoubleTap=function(e){var t=(new Date).getTime();this._fingers>1&&(this._lastTouchStart=0),t-this._lastTouchStart<300?(C(e),this._handleDoubleTap(e),S(this._interaction)?this._handleZoomEnd():E(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,1===this._fingers&&(this._lastTouchStart=t)},t.prototype.simulate=function(e){var t=this;return function(n){var r=n.pageX,a=n.pageY,o=n.type,i="mouseup"===o;"mousedown"===o&&(n.preventDefault(),t._listenMouseMove=!0),t._listenMouseMove&&(n.touches=i?[]:[{pageX:r,pageY:a}],e(n)),i&&(t._listenMouseMove=!1)}},t.prototype.componentDidMount=function(){this._bindEvents(),this._update()},t.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},t.prototype.render=function(){var e=this.props,t=e.children,n=e.containerProps,r=i.Children.only(t),a=n||{};return i.createElement(i.Fragment,null,i.createElement("style",null,u),i.createElement("div",o({},a,{ref:this._containerRef,className:b(l,a.className)}),i.cloneElement(r,{className:b(s,r.props.className)})))},t.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:d,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:L,onDragEnd:L,onDragStart:L,onDragUpdate:L,onZoomEnd:L,onZoomStart:L,onZoomUpdate:L,setOffsetsOnce:!1,shouldInterceptWheel:A,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:k?null:window.document},t}(i.Component);const M=j},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(16550),a=n(87462),o=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(16550),a=n(75068),o=n(67294),i=n(42358),l=n(87462),s=n(63366),u=n(38776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=o.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,o.createElement("a",c)}));var g=h((function(e,t){var n=e.component,a=void 0===n?m:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||v:m.innerRef=v,o.createElement(a,m)}))})),v=function(e){return e},b=o.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,y=e.isActive,w=e.location,x=e.sensitive,k=e.strict,_=e.style,E=e.to,S=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),O=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:k}):null,D=!!(y?y(O,n):O),P="function"==typeof h?h(D):h,N="function"==typeof _?_(D):_;D&&(P=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(P,c),N=(0,l.Z)({},N,p));var I=(0,l.Z)({"aria-current":D&&a||null,className:P,style:N,to:i},C);return v!==b?I.ref=t||S:I.innerRef=S,o.createElement(g,I)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>P,F0:()=>y,LX:()=>D,TH:()=>B,k6:()=>F,l_:()=>S,rs:()=>j,s6:()=>b});var r=n(75068),a=n(67294),o=n(45697),i=n.n(o),l=n(42358),s=n(38776),u=n(87462),c=n(39658),d=n.n(c),f=(n(59864),n(63366)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(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;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new 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){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p: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(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},v=g("Router-History"),b=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(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(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(a.Component);var x={},k=1e4,_=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(x[e])return x[e];var t=d().compile(e);return _<k&&(x[e]=t,_++),t}(e)(t,{pretty:!0})}function S(e){var t=e.computedMatch,n=e.to,r=e.push,o=void 0!==r&&r;return a.createElement(b.Consumer,null,(function(e){e||(0,s.Z)(!1);var r=e.history,i=e.staticContext,c=o?r.push:r.replace,d=(0,l.ob)(t?"string"==typeof n?E(n,t.params):(0,u.Z)({},n,{pathname:E(n.pathname,t.params)}):n);return i?(c(d),null):a.createElement(w,{onMount:function(){c(d)},onUpdate:function(e,t){var n=(0,l.ob)(t.to);(0,l.Hp)(n,(0,u.Z)({},d,{key:n.key}))||c(d)},to:n})}))}var C={},T=1e4,O=0;function D(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=C[n]||(C[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return O<T&&(r[e]=o,O++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?D(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(b.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function N(e){return"/"===e.charAt(0)?e:"/"+e}function I(e,t){if(!e)return t;var n=N(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function R(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!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?D(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var M=a.useContext;function F(){return M(v)}function B(){return M(b).location}},39658:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,k="+"===y||"*"===y,_="?"===y||"*"===y,E=n[2]||c,S=v||b;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:_,repeat:k,partial:x,asterisk:!!w,pattern:S?u(S):w?".*":"[^"+s(E)+"]+?"})}}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=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},86718:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(45503));t.default=function(e){return!e.prototype?r.default(e):e}},27162:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(70655),a=r.__importStar(n(67294)),o=r.__importDefault(n(86718)),i=a.createElement,l=function(e,t,n,a){var o;return i(e,t?r.__assign(((o={})[t]=a,o),n):r.__assign(r.__assign({},a),n))};t.divWrapper=function(e,t,n,r){return i("div",null,l(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=l);var r=function(a,l,s){void 0===l&&(l=t),void 0===s&&(s=null);var u="string"==typeof a;if(u)return function(e){return r(e,a||t,l)};var c=function(t){return i(e,s,(function(e){return n(a,l,t,e)}))};return u?o.default(c):c};return r}},3:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(95364)),a=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=a),function(n){return r.default(n,e.apply(void 0,t(n)))}}},96260:(e,t,n)=>{"use strict";var r=n(70655);r.__importDefault(n(95364)).default,r.__importDefault(n(27162)).default,r.__importDefault(n(3)).default},95364:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=n(67294),o=parseInt(a.version.substr(0,a.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var l=e.render,s=e.children,u=void 0===s?l:s,c=e.component,d=e.comp,f=void 0===d?c:d;return"function"==typeof u?u.apply(void 0,r.__spreadArrays([t],n)):f?a.createElement(f,t):u instanceof Array?o?u:a.createElement.apply(void 0,r.__spreadArrays(["div",null],u)):u&&u instanceof Object?"string"==typeof u.type?u:a.cloneElement(u,Object.assign({},u.props,t)):u||null}},45503:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(a.Component);return t}},89164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createBreakpoint:()=>Ae,createGlobalState:()=>xn,createMemo:()=>o,createReducer:()=>u,createReducerContext:()=>i,createStateContext:()=>c,ensuredForwardRef:()=>ue,useAsync:()=>h,useAsyncFn:()=>p,useAsyncRetry:()=>m,useAudio:()=>y,useBattery:()=>O,useBeforeUnload:()=>D,useBoolean:()=>I,useClickAway:()=>L,useCookie:()=>M,useCopyToClipboard:()=>z,useCounter:()=>q,useCss:()=>J,useCustomCompareEffect:()=>ee,useDebounce:()=>ne,useDeepCompareEffect:()=>re,useDefault:()=>ae,useDrop:()=>oe,useDropArea:()=>ie,useEffectOnce:()=>le,useEnsuredForwardedRef:()=>se,useError:()=>he,useEvent:()=>pe,useFavicon:()=>me,useFirstMountState:()=>l,useFullscreen:()=>be,useGeolocation:()=>ye,useGetSet:()=>V,useGetSetState:()=>we,useHarmonicIntervalFn:()=>_e,useHash:()=>kn,useHover:()=>Se,useHoverDirty:()=>Ce,useIdle:()=>De,useIntersection:()=>Pe,useInterval:()=>Ne,useIsomorphicLayoutEffect:()=>Y,useKey:()=>Ie,useKeyPress:()=>Le,useKeyPressEvent:()=>Re,useLatest:()=>je,useLifecycles:()=>Me,useList:()=>Fe,useLocalStorage:()=>Be,useLocation:()=>He,useLockBodyScroll:()=>Ye,useLogger:()=>Xe,useLongPress:()=>Je,useMap:()=>et,useMeasure:()=>gn,useMedia:()=>tt,useMediaDevices:()=>nt,useMediatedState:()=>rt,useMethods:()=>at,useMotion:()=>it,useMount:()=>lt,useMountedState:()=>f,useMouse:()=>ct,useMouseHovered:()=>ft,useMouseWheel:()=>pt,useMultiStateValidator:()=>fn,useNetworkState:()=>vt,useNumber:()=>bt,useObservable:()=>yt,useOrientation:()=>xt,usePageLeave:()=>kt,usePermission:()=>_t,usePinchZoom:()=>bn,usePrevious:()=>Et,usePreviousDistinct:()=>Ct,usePromise:()=>Tt,useQueue:()=>Ot,useRaf:()=>Dt,useRafLoop:()=>Pt,useRafState:()=>ut,useRendersCount:()=>yn,useScratch:()=>Lt,useScroll:()=>Rt,useScrollbarWidth:()=>dn,useScrolling:()=>jt,useSearchParam:()=>It,useSessionStorage:()=>Mt,useSet:()=>wn,useSetState:()=>g,useShallowCompareEffect:()=>zt,useSize:()=>Vt,useSlider:()=>qt,useSpeech:()=>Gt,useStartTyping:()=>Zt,useStateList:()=>Yt,useStateValidator:()=>un,useStateWithHistory:()=>Qt,useThrottle:()=>Xt,useThrottleFn:()=>Kt,useTimeout:()=>Jt,useTimeoutFn:()=>te,useTitle:()=>tn,useToggle:()=>N,useTween:()=>rn,useUnmount:()=>st,useUnmountPromise:()=>an,useUpdate:()=>U,useUpdateEffect:()=>s,useUpsert:()=>on,useVibrate:()=>ln,useVideo:()=>sn,useWindowScroll:()=>pn,useWindowSize:()=>hn});var r=n(67294),a=n.t(r,2);const o=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}};const i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(a){var o=a.children,i=a.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},o)},n]};function l(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}const s=function(e,t){var n=l();(0,r.useEffect)((function(){if(!n)return e()}),t)};const u=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,a=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var o=(0,r.useRef)(n(t)),i=(0,r.useState)(o.current)[1],l=(0,r.useCallback)((function(t){return o.current=e(o.current,t),i(o.current),t}),[e]),u=(0,r.useRef)(a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l));return s((function(){u.current=a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l)}),[l]),[o.current,u.current]}};const c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var a=n.children,o=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==o?o:e)},a)},t]};var d=n(70655);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function p(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var a=(0,r.useRef)(0),o=f(),i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++a.current;return l.loading||s((function(e){return(0,d.__assign)((0,d.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return o()&&r===a.current&&s({value:e,loading:!1}),e}),(function(e){return o()&&r===a.current&&s({error:e,loading:!1}),e}))}),t);return[l,u]}function h(e,t){void 0===t&&(t=[]);var n=p(e,t,{loading:!0}),a=n[0],o=n[1];return(0,r.useEffect)((function(){o()}),[o]),a}const m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),a=n[0],o=n[1],i=h(e,(0,d.__spreadArrays)(t,[a])),l=i.loading,s=(0,r.useCallback)((function(){l||o((function(e){return e+1}))}),(0,d.__spreadArrays)(t,[l]));return(0,d.__assign)((0,d.__assign)({},i),{retry:s})};const g=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(e){a((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function v(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function b(e){return function(t){var n,a;a=r.isValidElement(t)?(n=t).props:t;var o=g({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=o[0],l=o[1],s=(0,r.useRef)(null),u=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},c=function(){return l({paused:!1})},f=function(){return l({playing:!0})},p=function(){return l({playing:!1})},h=function(){return l({paused:!0,playing:!1})},m=function(){var e=s.current;e&&l({muted:e.muted,volume:e.volume})},b=function(){var e=s.current;if(e){var t=e.duration,n=e.buffered;l({duration:t,buffered:v(n)})}},y=function(){var e=s.current;e&&l({time:e.currentTime})},w=function(){var e=s.current;e&&l({buffered:v(e.buffered)})};n=n?r.cloneElement(n,(0,d.__assign)((0,d.__assign)({controls:!1},a),{ref:s,onPlay:u(a.onPlay,c),onPlaying:u(a.onPlaying,f),onWaiting:u(a.onWaiting,p),onPause:u(a.onPause,h),onVolumeChange:u(a.onVolumeChange,m),onDurationChange:u(a.onDurationChange,b),onTimeUpdate:u(a.onTimeUpdate,y),onProgress:u(a.onProgress,w)})):r.createElement(e,(0,d.__assign)((0,d.__assign)({controls:!1},a),{ref:s,onPlay:u(a.onPlay,c),onPlaying:u(a.onPlaying,f),onWaiting:u(a.onWaiting,p),onPause:u(a.onPause,h),onVolumeChange:u(a.onVolumeChange,m),onDurationChange:u(a.onDurationChange,b),onTimeUpdate:u(a.onTimeUpdate,y),onProgress:u(a.onProgress,w)}));var x=!1,k={play:function(){var e=s.current;if(e&&!x){var t=e.play();if("object"==typeof t){x=!0;var n=function(){x=!1};t.then(n,n)}return t}},pause:function(){var e=s.current;if(e&&!x)return e.pause()},seek:function(e){var t=s.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=s.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,l({volume:e}))},mute:function(){var e=s.current;e&&(e.muted=!0)},unmute:function(){var e=s.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=s.current;e&&(l({volume:e.volume,muted:e.muted,paused:e.paused}),a.autoPlay&&e.paused&&k.play())}),[a.src]),[n,i,k,s]}}const y=b("audio");var w=function(){};function x(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function k(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var _="undefined"!=typeof window,E="undefined"!=typeof navigator,S=n(38252);const C=n.n(S)();var T=E?navigator:void 0;const O=T&&"function"==typeof T.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,a=function(){if(e&&r){var a={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!C(t,a)&&n(a)}};return T.getBattery().then((function(t){e&&(x(r=t,"chargingchange",a),x(r,"chargingtimechange",a),x(r,"dischargingtimechange",a),x(r,"levelchange",a),a())})),function(){e=!1,r&&(k(r,"chargingchange",a),k(r,"chargingtimechange",a),k(r,"dischargingtimechange",a),k(r,"levelchange",a))}}),[]),t}:function(){return{isSupported:!1}};const D=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!=typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return x(window,"beforeunload",n),function(){return k(window,"beforeunload",n)}}),[e,n])};var P=function(e,t){return"boolean"==typeof t?t:!e};const N=function(e){return(0,r.useReducer)(P,e)},I=N;var A=["mousedown","touchstart"];const L=function(e,t,n){void 0===n&&(n=A);var a=(0,r.useRef)(t);(0,r.useEffect)((function(){a.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&a.current(t)},r=0,o=n;r<o.length;r++){var i=o[r];x(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var a=r[e];k(document,a,t)}}}),[n,e])};var R=n(36808),j=n.n(R);const M=function(e){var t=(0,r.useState)((function(){return j().get(e)||null})),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t,n){j().set(e,t,n),a(t)}),[e]),(0,r.useCallback)((function(){j().remove(e),a(null)}),[e])]};var F=n(20640),B=n.n(F);const z=function(){var e=f(),t=g({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!=typeof t&&"number"!=typeof t){var o=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void a({value:t,error:o,noUserInteraction:!0})}if(""===t){o=new Error("Cannot copy empty string to clipboard.");return void a({value:t,error:o,noUserInteraction:!0})}r=t.toString(),n=B()(r),a({value:r,error:void 0,noUserInteraction:n})}catch(o){a({value:r,error:o,noUserInteraction:n})}}),[])]};var $=function(e){return(e+1)%1e6};function U(){return(0,r.useReducer)($,0)[1]}function H(e,t){return"function"==typeof e?e.length?e(t):e():e}function V(e){var t=(0,r.useRef)(H(e)),n=U();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=H(e,t.current),n()}]}),[])}function q(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var a=H(e);"number"!=typeof a&&console.error("initialValue has to be a number, got "+typeof e),"number"==typeof n?a=Math.max(a,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"==typeof t?a=Math.min(a,t):null!==t&&console.error("max has to be a number, got "+typeof t);var o=V(a),i=o[0],l=o[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),a=H(e,r);r!==a&&("number"==typeof n&&(a=Math.max(a,n)),"number"==typeof t&&(a=Math.min(a,t)),r!==a&&l(a))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=a);var n=H(t,i());"number"!=typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),a=n,e(n)}}}),[a,n,t])]}var W=n(40818),G=n(97142),Z=n(52099),Q=n(87749);const Y=_?r.useLayoutEffect:r.useEffect;var X=(0,W.U)();(0,G.I)(X),(0,Z.I)(X);var K=0;const J=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(K++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new X.VSheet}),[]);return Y((function(){var r={};return(0,Q.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t};const ee=function(e,t,n){var a=(0,r.useRef)(void 0);a.current&&n(t,a.current)||(a.current=t),(0,r.useEffect)(e,a.current)};function te(e,t){void 0===t&&(t=0);var n=(0,r.useRef)(!1),a=(0,r.useRef)(),o=(0,r.useRef)(e),i=(0,r.useCallback)((function(){return n.current}),[]),l=(0,r.useCallback)((function(){n.current=!1,a.current&&clearTimeout(a.current),a.current=setTimeout((function(){n.current=!0,o.current()}),t)}),[t]),s=(0,r.useCallback)((function(){n.current=null,a.current&&clearTimeout(a.current)}),[]);return(0,r.useEffect)((function(){o.current=e}),[e]),(0,r.useEffect)((function(){return l(),s}),[t]),[i,s,l]}function ne(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var a=te(e,t),o=a[0],i=a[1],l=a[2];return(0,r.useEffect)(l,n),[o,i]}const re=function(e,t){ee(e,t,C)};const ae=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return null==a?[e,o]:[a,o]};const oe=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,a=e.onText,o=e.onUri,i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useCallback)(s,[]),c=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||w)(r,n);else if(t.files&&t.files.length)(e.onFiles||w)(Array.from(t.files),n);else if(n.clipboardData){var a=n.clipboardData.getData("text");(e.onText||w)(a,n)}}}(e)}),[n,a,o]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),u(!0)},t=function(e){e.preventDefault(),u(!0)},n=function(){u(!1)},r=function(){u(!1)},o=function(e){e.preventDefault(),u(!1),c(e.dataTransfer,e)},i=function(e){c(e.clipboardData,e)};return x(document,"dragover",e),x(document,"dragenter",t),x(document,"dragleave",n),x(document,"dragexit",r),x(document,"drop",o),a&&x(document,"paste",i),function(){k(document,"dragover",e),k(document,"dragenter",t),k(document,"dragleave",n),k(document,"dragexit",r),k(document,"drop",o),k(document,"paste",i)}}),(0,d.__spreadArrays)([c],t)),{over:l}};const ie=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,a=e.onUri,o=f(),i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var a=n.getData("text/uri-list");a?(e.onUri||w)(a,r):n.files&&n.files.length?(e.onFiles||w)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||w)(n,r)}))}}(e,o())}),[t,n,a]),c=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(u,s)}),[u,s]);return[c,{over:l}]};const le=function(e){(0,r.useEffect)(e,[])};function se(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ue(e){return(0,r.forwardRef)((function(t,n){var r=se(n);return e(t,r)}))}var ce=_?window:null,de=function(e){return!!e.addEventListener},fe=function(e){return!!e.on};const pe=function(e,t,n,a){void 0===n&&(n=ce),(0,r.useEffect)((function(){if(t&&n)return de(n)?x(n,e,t,a):fe(n)&&n.on(e,t,a),function(){de(n)?k(n,e,t,a):fe(n)&&n.off(e,t,a)}}),[e,t,n,JSON.stringify(a)])};const he=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])};const me=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])};var ge=n(10577),ve=n.n(ge);const be=function(e,t,n){void 0===n&&(n={});var a=n.video,o=n.onClose,i=void 0===o?w:o,l=(0,r.useState)(t),s=l[0],u=l[1];return Y((function(){if(t&&e.current){var n=function(){(null==a?void 0:a.current)&&k(a.current,"webkitendfullscreen",n),i()},r=function(){if(ve().isEnabled){var e=ve().isFullscreen;u(e),e||i()}};if(ve().isEnabled){try{ve().request(e.current),u(!0)}catch(l){i(l),u(!1)}ve().on("change",r)}else a&&a.current&&a.current.webkitEnterFullscreen?(a.current.webkitEnterFullscreen(),x(a.current,"webkitendfullscreen",n),u(!0)):(i(),u(!1));return function(){if(u(!1),ve().isEnabled)try{ve().off("change",r),ve().exit()}catch(o){}else a&&a.current&&a.current.webkitExitFullscreen&&(k(a.current,"webkitendfullscreen",n),a.current.webkitExitFullscreen())}}}),[t,a,e]),s};const ye=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),a=n[0],o=n[1],i=!0,l=function(e){i&&o({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},s=function(e){return i&&o((function(t){return(0,d.__assign)((0,d.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(l,s,e),t=navigator.geolocation.watchPosition(l,s,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),a};const we=function(e){void 0===e&&(e={});var t=U(),n=(0,r.useRef)((0,d.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]};var xe=0,ke={};const _e=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=xe++;if(ke[t])ke[t].listeners[r]=e;else{var a=setInterval((function(){for(var e,n=ke[t].listeners,r=!1,a=0,o=Object.values(n);a<o.length;a++){var i=o[a];try{i()}catch(l){r=!0,e=l}}if(r)throw e}),t);ke[t]={ms:t,timer:a,listeners:(n={},n[r]=e,n)}}return{bucket:ke[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var a in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete ke[t.ms])}(e)}}}),[t])};var Ee=r.useState;const Se=function(e){var t,n,a=Ee(!1),o=a[0],i=a[1];return"function"==typeof e&&(e=e(o)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||w)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||w)(e),i(!1)})}),o]};const Ce=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){return o(!0)},r=function(){return o(!1)};t&&e&&e.current&&(x(e.current,"mouseover",n),x(e.current,"mouseout",r));var a=e.current;return function(){t&&a&&(k(a,"mouseover",n),k(a,"mouseout",r))}}),[t,e]),a};function Te(e,t,n,r){var a,o=!1,i=0;function l(){a&&clearTimeout(a)}function s(){for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];var d=this,f=Date.now()-i;function p(){i=Date.now(),n.apply(d,u)}o||(r&&!a&&p(),l(),void 0===r&&f>e?p():!0!==t&&(a=setTimeout(r?function(){a=void 0}:p,void 0===r?e-f:e)))}return"boolean"!=typeof t&&(r=n,n=t,t=void 0),s.cancel=function(){l(),o=!0},s}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"];const De=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var a=(0,r.useState)(t),o=a[0],i=a[1];return(0,r.useEffect)((function(){for(var t,r=!0,a=o,l=function(e){r&&(a=e,i(e))},s=Te(50,(function(){a&&l(!1),clearTimeout(t),t=setTimeout((function(){return l(!0)}),e)})),u=function(){document.hidden||s()},c=0;c<n.length;c++)x(window,n[c],s);return x(document,"visibilitychange",u),t=setTimeout((function(){return l(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)k(window,n[e],s);k(document,"visibilitychange",u)}}),[e,n]),o};const Pe=function(e,t){var n=(0,r.useState)(null),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"==typeof IntersectionObserver){var n=new IntersectionObserver((function(e){o(e[0])}),t);return n.observe(e.current),function(){o(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),a};const Ne=function(e,t){var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=setInterval((function(){return n.current()}),t||0);return function(){return clearInterval(e)}}}),[t])};const Ie=function(e,t,n,a){void 0===t&&(t=w),void 0===n&&(n={}),void 0===a&&(a=[e]);var o=n.event,i=void 0===o?"keydown":o,l=n.target,s=n.options,u=(0,r.useMemo)((function(){var n,r="function"==typeof(n=e)?n:"string"==typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),a);pe(i,u,l,s)};const Ae=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(_?window.innerWidth:0),n=t[0],a=t[1];(0,r.useEffect)((function(){var e=function(){a(window.innerWidth)};return e(),x(window,"resize",e),function(){k(window,"resize",e)}}));var o=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=o.reduce((function(e,t){var r=t[0],a=t[1];return n>=a?r:e}),o[0][0]);return i}};const Le=function(e){var t=(0,r.useState)([!1,null]),n=t[0],a=t[1];return Ie(e,(function(e){return a([!0,e])}),{event:"keydown"},[n]),Ie(e,(function(e){return a([!1,e])}),{event:"keyup"},[n]),n};const Re=function(e,t,n,r){void 0===r&&(r=Le);var a=r(e),o=a[0],i=a[1];s((function(){!o&&n?n(i):o&&t&&t(i)}),[o])};const je=function(e){var t=(0,r.useRef)(e);return t.current=e,t};const Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};const Fe=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(H(e)),n=U(),a=(0,r.useMemo)((function(){var r={set:function(e){t.current=H(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&a.set((function(t){return t.concat(e)}))},updateAt:function(e,t){a.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){a.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){a.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&a.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?a.updateAt(r,n):a.push(n)},sort:function(e){a.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){a.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){a.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){a.set([])},reset:function(){a.set(H(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,a]};const Be=function(e,t,n){if(!_)return[t,w,w];if(!e)throw new Error("useLocalStorage key may not be falsy");var a=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,o=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?a(o):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return o.current(e)})),l=i[0],s=i[1];(0,r.useLayoutEffect)((function(){return s(o.current(e))}),[e]);var u=(0,r.useCallback)((function(t){try{var r="function"==typeof t?t(l):t;if(void 0===r)return;var o=void 0;o=n?n.raw?"string"==typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),s(a(o))}catch(i){}}),[e,s]),c=(0,r.useCallback)((function(){try{localStorage.removeItem(e),s(void 0)}catch(i){}}),[e,s]);return[l,u,c]};var ze=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),a=new Event(e.toLowerCase());return a.state=t,window.dispatchEvent(a),r}};_&&(ze("pushState"),ze("replaceState"));var $e=function(e){var t=window.history,n=t.state,r=t.length,a=window.location;return{trigger:e,state:n,length:r,hash:a.hash,host:a.host,hostname:a.hostname,href:a.href,origin:a.origin,pathname:a.pathname,port:a.port,protocol:a.protocol,search:a.search}},Ue="function"==typeof Event;const He=_&&Ue?function(){var e=(0,r.useState)($e("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n($e("popstate"))},t=function(){return n($e("pushstate"))},r=function(){return n($e("replacestate"))};return x(window,"popstate",e),x(window,"pushstate",t),x(window,"replacestate",r),function(){k(window,"popstate",e),k(window,"pushstate",t),k(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Ve(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Ve(e.offsetParent):null}function qe(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var We=_&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),Ge=new Map,Ze="object"==typeof document?document:void 0,Qe=!1;const Ye=Ze?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(Ze.body);t=t||n;var a=function(e){var t=Ge.get(e);t&&(1===t.counter?(Ge.delete(e),We?(e.ontouchmove=null,Qe&&(k(document,"touchmove",qe),Qe=!1)):e.style.overflow=t.initialOverflow):Ge.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Ve(t.current);n&&(e?function(e){var t=Ge.get(e);t?Ge.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(Ge.set(e,{counter:1,initialOverflow:e.style.overflow}),We?Qe||(x(document,"touchmove",qe,{passive:!1}),Qe=!0):e.style.overflow="hidden")}(n):a(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Ve(t.current);if(e)return function(){a(e)}}),[])}:function(e,t){void 0===e&&(e=!0)};const Xe=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];le((function(){return console.log.apply(console,(0,d.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),s((function(){console.log.apply(console,(0,d.__spreadArrays)([e+" updated"],t))}))};var Ke=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()};const Je=function(e,t){var n=void 0===t?{}:t,a=n.isPreventDefault,o=void 0===a||a,i=n.delay,l=void 0===i?300:i,s=(0,r.useRef)(),u=(0,r.useRef)(),c=(0,r.useCallback)((function(t){o&&t.target&&(x(t.target,"touchend",Ke,{passive:!1}),u.current=t.target),s.current=setTimeout((function(){return e(t)}),l)}),[e,l,o]),d=(0,r.useCallback)((function(){s.current&&clearTimeout(s.current),o&&u.current&&k(u.current,"touchend",Ke)}),[o]);return{onMouseDown:function(e){return c(e)},onTouchStart:function(e){return c(e)},onMouseUp:d,onMouseLeave:d,onTouchEnd:d}};const et=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{set:function(e,t){a((function(n){var r;return(0,d.__assign)((0,d.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){a(e)},remove:function(e){a((function(t){var n=t,r=e;n[r];return(0,d.__rest)(n,["symbol"==typeof r?r:r+""])}))},reset:function(){return a(e)}}}),[a]),i=(0,d.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},o);return[n,i]};const tt=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!_&&window.matchMedia(e).matches}(e,t)),a=n[0],o=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&o(!!n.matches)};return n.addListener(r),o(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),a};const nt=E&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(w)};return x(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,k(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function rt(e,t){var n=(0,r.useRef)(e),a=(0,r.useState)(t),o=a[0],i=a[1];return[o,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[o])]}const at=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),a=(0,r.useReducer)(n,t),o=a[0],i=a[1],l=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[o,l]};var ot={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16};const it=function(e){void 0===e&&(e=ot);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,o=e.interval;a({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:o})};return x(window,"devicemotion",e),function(){k(window,"devicemotion",e)}}),[]),n};const lt=function(e){le((function(){e()}))};const st=function(e){var t=(0,r.useRef)(e);t.current=e,le((function(){return function(){return t.current()}}))};const ut=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){o(e)}))}),[]);return st((function(){cancelAnimationFrame(t.current)})),[a,i]};const ct=function(e){var t=ut({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,o=n.top,i=n.width,l=n.height,s=r+window.pageXOffset,u=o+window.pageYOffset,c=t.pageX-s,d=t.pageY-u;a({docX:t.pageX,docY:t.pageY,posX:s,posY:u,elX:c,elY:d,elH:l,elW:i})}};return x(document,"mousemove",t),function(){k(document,"mousemove",t)}}),[e]),n};var dt={current:null};const ft=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,a=Ce(e,n),o=ct(n&&!a?dt:e);return r&&(o.elX=Math.max(0,Math.min(o.elX,o.elW)),o.elY=Math.max(0,Math.min(o.elY,o.elH))),o},pt=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return x(window,"wheel",e,!1),function(){return k(window,"wheel",e)}})),t};var ht=E?navigator:void 0,mt=ht&&(ht.connection||ht.mozConnection||ht.webkitConnection);function gt(e){var t=null==ht?void 0:ht.onLine,n=null==e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null==e?void 0:e.since,downlink:null==mt?void 0:mt.downlink,downlinkMax:null==mt?void 0:mt.downlinkMax,effectiveType:null==mt?void 0:mt.effectiveType,rtt:null==mt?void 0:mt.rtt,saveData:null==mt?void 0:mt.saveData,type:null==mt?void 0:mt.type}}function vt(e){var t=(0,r.useState)(null!=e?e:gt),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(){a(gt)};return x(window,"online",e,{passive:!0}),x(window,"offline",e,{passive:!0}),mt&&x(mt,"change",e,{passive:!0}),function(){k(window,"online",e),k(window,"offline",e),mt&&k(mt,"change",e)}}),[]),n}const bt=q;const yt=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return Y((function(){var t=e.subscribe(o);return function(){return t.unsubscribe()}}),[e]),a};var wt={angle:0,type:"landscape-primary"};const xt=function(e){void 0===e&&(e=wt);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var o=r.angle,i=r.type;a({angle:o,type:i})}else void 0!==window.orientation?a({angle:"number"==typeof window.orientation?window.orientation:0,type:""}):a(e)}};return x(window,"orientationchange",r),r(),function(){n=!1,k(window,"orientationchange",r)}}),[]),n};const kt=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return x(document,"mouseout",t),function(){k(document,"mouseout",t)}}}),t)};const _t=function(e){var t=(0,r.useState)(""),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&a((function(){var e;return null!==(e=null==n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){x(n=e,"change",r),r()})).catch(w),function(){n&&k(n,"change",r),t=!1,n=null}}),[e]),n};function Et(e){var t=(0,r.useRef)();return(0,r.useEffect)((function(){t.current=e})),t.current}var St=function(e,t){return e===t};function Ct(e,t){void 0===t&&(t=St);var n=(0,r.useRef)(),a=(0,r.useRef)(e);return l()||t(a.current,e)||(n.current=a.current,a.current=e),n.current}const Tt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])};const Ot=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],a=t[1];return{add:function(e){a((function(t){return(0,d.__spreadArrays)(t,[e])}))},remove:function(){var e;return a((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}};const Dt=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),a=n[0],o=n[1];return Y((function(){var n,r,a,i=function(){var t=Math.min(1,(Date.now()-a)/e);o(t),l()},l=function(){n=requestAnimationFrame(i)},s=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),o(1)}),e),a=Date.now(),l()}),t);return function(){clearTimeout(r),clearTimeout(s),cancelAnimationFrame(n)}}),[e,t]),a};function Pt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),a=(0,r.useRef)(!1),o=(0,r.useRef)(e);o.current=e;var i=(0,r.useCallback)((function(e){a.current&&(o.current(e),n.current=requestAnimationFrame(i))}),[]),l=(0,r.useMemo)((function(){return[function(){a.current&&(a.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){a.current||(a.current=!0,n.current=requestAnimationFrame(i))},function(){return a.current}]}),[]);return(0,r.useEffect)((function(){return t&&l[1](),l[0]}),[]),l}var Nt=function(e,t){return new URLSearchParams(e).get(t)};const It=_?function(e){var t=window.location,n=(0,r.useState)((function(){return Nt(t.search,e)})),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){o(Nt(t.search,e))};return x(window,"popstate",n),x(window,"pushstate",n),x(window,"replacestate",n),function(){k(window,"popstate",n),k(window,"pushstate",n),k(window,"replacestate",n)}}),[]),a}:function(){return null};n(96260);var At=function(e){void 0===e&&(e={});var t=e.disabled,n=je(e),a=(0,r.useState)({isScratching:!1}),o=a[0],i=a[1],l=(0,r.useRef)(o),s=(0,r.useRef)(!1),u=(0,r.useRef)(null),c=(0,r.useState)(null),f=c[0],p=c[1];return(0,r.useEffect)((function(){if(!t&&f){var e,r,a=function(e,t){cancelAnimationFrame(u.current),u.current=requestAnimationFrame((function(){var r=f.getBoundingClientRect(),a=r.left,o=r.top,s=a+window.scrollX,u=o+window.scrollY,c=e-s,p=t-u;i((function(e){var t=(0,d.__assign)((0,d.__assign)({},e),{dx:c-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return l.current=t,(n.current.onScratch||w)(t),t}))}))},o=function(e){a(e.pageX,e.pageY)},c=function(e){a(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){s.current&&(s.current=!1,l.current=(0,d.__assign)((0,d.__assign)({},l.current),{isScratching:!1}),(n.current.onScratchEnd||w)(l.current),i({isScratching:!1}),k(window,"mousemove",o),k(window,"touchmove",c),k(window,"mouseup",e),k(window,"touchend",r))};e=p,r=p;var h=function(t,a){if(s.current){var u=f.getBoundingClientRect(),d=u.left,p=u.top,h=d+window.scrollX,m=p+window.scrollY,g=t-h,v=a-m,b=Date.now(),y={isScratching:!0,start:b,end:b,docX:t,docY:a,x:g,y:v,dx:0,dy:0,elH:f.offsetHeight,elW:f.offsetWidth,elX:h,elY:m};l.current=y,(n.current.onScratchStart||w)(y),i(y),x(window,"mousemove",o),x(window,"touchmove",c),x(window,"mouseup",e),x(window,"touchend",r)}},m=function(e){s.current=!0,h(e.pageX,e.pageY)},g=function(e){s.current=!0,h(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return x(f,"mousedown",m),x(f,"touchstart",g),function(){k(f,"mousedown",m),k(f,"touchstart",g),k(window,"mousemove",o),k(window,"touchmove",c),k(window,"mouseup",e),k(window,"touchend",r),u.current&&cancelAnimationFrame(u.current),u.current=null,s.current=!1,l.current={isScratching:!1},i(l.current)}}}),[f,t,n]),[p,o]};const Lt=At;const Rt=function(e){var t=ut({x:0,y:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&a({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&x(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&k(e.current,"scroll",t)}}),[e]),n};const jt=function(e){var t=(0,r.useState)(!1),n=t[0],a=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){a(!0),clearTimeout(t),t=setTimeout((function(){a(!1)}),150)};return x(e.current,"scroll",n,!1),function(){e.current&&k(e.current,"scroll",n,!1)}}return function(){}}),[e]),n};const Mt=function(e,t,n){if(!_)return[t,function(){}];var a=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!=typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(a){return t}})),o=a[0],i=a[1];return(0,r.useEffect)((function(){try{var t=n?String(o):JSON.stringify(o);sessionStorage.setItem(e,t)}catch(a){}})),[o,i]};var Ft=n(99376),Bt=function(e,t){return e.every((function(e,n){return(0,Ft.D)(e,t[n])}))};const zt=function(e,t){ee(e,t,Bt)};var $t=r.useState,Ut=r.useEffect,Ht=r.useRef;const Vt=function(e,t){var n=void 0===t?{}:t,o=n.width,i=void 0===o?1/0:o,l=n.height,s=void 0===l?1/0:l;if(!_)return["function"==typeof e?e({width:i,height:s}):e,{width:i,height:s}];var u=$t({width:i,height:s}),c=u[0],f=u[1];"function"==typeof e&&(e=e(c));var p=e.props.style||{},h=Ht(null),m=null,g=function(){var e=h.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:s};f(t)},v=function(e){x(e,"resize",g),setTimeout(g,35)};return Ut((function(){var e=h.current;if(e){if(e.contentWindow)m=e.contentWindow,v(m);else{var t=function(){x(e,"load",t),m=e.contentWindow,v(m)};k(e,"load",t)}return function(){m&&m.removeEventListener&&k(m,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(a,(0,d.__spreadArrays)([e,{style:p}],(0,d.__spreadArrays)([r.createElement("iframe",{ref:h,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),c]};const qt=function(e,t){void 0===t&&(t={});var n=f(),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useRef)(0),l=g({isSliding:!1,value:0}),s=l[0],u=l[1];return o.current=s.value,(0,r.useEffect)((function(){if(_){var r=void 0===t.styles||t.styles,l=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var s=function(){!a.current&&n()&&((t.onScrubStart||w)(),a.current=!0,u({isSliding:!0}),m())},c=function(){a.current&&n()&&((t.onScrubStop||w)(o.current),a.current=!1,u({isSliding:!1}),g())},d=function(e){s(),f(e)},f=t.vertical?function(e){return v(e.clientY)}:function(e){return v(e.clientX)},p=function(e){s(),h(e)},h=t.vertical?function(e){return v(e.changedTouches[0].clientY)}:function(e){return v(e.changedTouches[0].clientX)},m=function(){x(document,"mousemove",f),x(document,"mouseup",c),x(document,"touchmove",h),x(document,"touchend",c)},g=function(){k(document,"mousemove",f),k(document,"mouseup",c),k(document,"touchmove",h),k(document,"touchend",c)},v=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var a=e.current.getBoundingClientRect(),o=t.vertical?a.top:a.left,i=t.vertical?a.height:a.width;if(!i)return;var s=(r-o)/i;s>1?s=1:s<0&&(s=0),l&&(s=1-s),u({value:s}),(t.onScrub||w)(s)}}))};return x(e.current,"mousedown",d),x(e.current,"touchstart",p),function(){k(e.current,"mousedown",d),k(e.current,"touchstart",p)}}}),[e,t.vertical]),s};var Wt;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(Wt||(Wt={}));const Gt=function(e,t){var n=(0,r.useRef)(!1),a=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,a=e.name,o=void 0===a?"":a;return{isPlaying:!1,status:Wt[Wt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:o},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),o=a[0],i=a[1],l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!0,status:Wt[Wt.play]})}))}),[]),s=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.pause]})}))}),[]),u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=l,r.onpause=s,r.onresume=l,r.onend=u,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),o};const Zt=function(e){Y((function(){var t=function(t){var n,r,a,o,i;!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&(r=(n=t).keyCode,a=n.metaKey,o=n.ctrlKey,i=n.altKey,!(a||o||i)&&(r>=48&&r<=57||r>=65&&r<=90))&&e(t)};return x(document,"keydown",t),function(){k(document,"keydown",t)}}),[])};function Qt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var a=l(),o=(0,r.useState)(e),i=o[0],s=o[1],u=(0,r.useRef)(null!=n?n:[]),c=(0,r.useRef)(0);return a&&(u.current.length?(u.current[u.current.length-1]!==e&&u.current.push(e),u.current.length>t&&(u.current=u.current.slice(u.current.length-t))):u.current.push(e),c.current=u.current.length&&u.current.length-1),[i,(0,r.useCallback)((function(e){s((function(n){return(e=H(e,n))!==n&&(c.current<u.current.length-1&&(u.current=u.current.slice(0,c.current+1)),c.current=u.current.push(e)-1,u.current.length>t&&(u.current=u.current.slice(u.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:u.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&s((function(){return c.current-=Math.min(e,c.current),u.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==u.current.length-1&&s((function(){return c.current=Math.min(c.current+e,u.current.length-1),u.current[c.current]}))},go:function(e){e!==c.current&&s((function(){return c.current=e<0?Math.max(u.current.length+e,0):Math.min(u.current.length-1,e),u.current[c.current]}))}}}),[i])]}function Yt(e){void 0===e&&(e=[]);var t=f(),n=U(),a=(0,r.useRef)(0);s((function(){e.length<=a.current&&(a.current=e.length-1,n())}),[e.length]);var o=(0,r.useMemo)((function(){return{next:function(){return o.setStateAt(a.current+1)},prev:function(){return o.setStateAt(a.current-1)},setStateAt:function(r){t()&&e.length&&r!==a.current&&(a.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var o=e.length?e.indexOf(r):-1;if(-1===o)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");a.current=o,n()}}}}),[e]);return(0,d.__assign)({state:e[a.current],currentIndex:a.current},o)}const Xt=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useRef)(),l=(0,r.useRef)(null),s=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)l.current=e,s.current=!0;else{o(e);var n=function(){s.current?(s.current=!1,o(l.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),st((function(){i.current&&clearTimeout(i.current)})),a};const Kt=function(e,t,n){void 0===t&&(t=200);var a=(0,r.useState)(null),o=a[0],i=a[1],l=(0,r.useRef)(),s=(0,r.useRef)();return(0,r.useEffect)((function(){if(l.current)s.current=n;else{i(e.apply(void 0,n));var r=function(){s.current?(i(e.apply(void 0,s.current)),s.current=void 0,l.current=setTimeout(r,t)):l.current=void 0};l.current=setTimeout(r,t)}}),n),st((function(){l.current&&clearTimeout(l.current)})),o};function Jt(e){return void 0===e&&(e=0),te(U(),e)}var en={restoreOnUnmount:!1};const tn="undefined"!=typeof document?function(e,t){void 0===t&&(t=en);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){};var nn=n(75534);const rn=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,nn.U[e])(Dt(t,n))};const an=function(){var e=(0,r.useRef)(!1);return le((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,a){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):a(t)}))}))}}),[])};function on(e,t){void 0===t&&(t=[]);var n=Fe(t),r=n[0],a=n[1];return[r,(0,d.__assign)((0,d.__assign)({},a),{upsert:function(t){a.upsert(e,t)}})]}const ln=E&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var a=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),a)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:w;const sn=b("video");function un(e,t,n){void 0===n&&(n=[void 0]);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,s):s(a.current(o.current))}),[s]);return(0,r.useEffect)((function(){u()}),[e]),[l,u]}var cn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof cn.__cache)return cn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return cn.__cache=100-r,document.body.removeChild(t),cn.__cache;document.body.removeChild(t)}};function dn(){var e=(0,r.useState)(cn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(void 0===t){var e=requestAnimationFrame((function(){n(cn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function fn(e,t,n){if(void 0===n&&(n=[void 0]),"object"!=typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,s):s(a.current(o.current))}),[s]);return(0,r.useEffect)((function(){u()}),Object.values(e)),[l,u]}const pn=function(){var e=ut((function(){return{x:_?window.pageXOffset:0,y:_?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),x(window,"scroll",e,{capture:!1,passive:!0}),function(){k(window,"scroll",e)}}),[]),t};const hn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=ut({width:_?window.innerWidth:e,height:_?window.innerHeight:t}),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(_){var e=function(){o({width:window.innerWidth,height:window.innerHeight})};return x(window,"resize",e),function(){k(window,"resize",e)}}}),[]),a};var mn={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const gn=_&&void 0!==window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],a=(0,r.useState)(mn),o=a[0],i=a[1],l=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,o=t.height,l=t.top,s=t.left,u=t.bottom,c=t.right;i({x:n,y:r,width:a,height:o,top:l,left:s,bottom:u,right:c})}}))}),[]);return Y((function(){if(t)return l.observe(t),function(){l.disconnect()}}),[t]),[n,o]}:function(){return[w,mn]};var vn;!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(vn||(vn={}));const bn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),a=n[0],o=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&o([vn.ZOOMING_IN,r]),r<t.prevDiff&&o([vn.ZOOMING_OUT,r])),t.prevDiff=r}},l=function(e){t.evCache.push(e)},s=function(e){u(e),t.evCache.length<2&&(t.prevDiff=-1)},u=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null==e?void 0:e.current)&&(e.current.onpointerdown=l,e.current.onpointermove=i,e.current.onpointerup=s,e.current.onpointercancel=s,e.current.onpointerout=s,e.current.onpointerleave=s)}),[null==e?void 0:e.current]),a?{zoomingState:a[0],pinchState:a[1]}:{zoomingState:null,pinchState:0}};function yn(){return++(0,r.useRef)(0).current}const wn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{add:function(e){return a((function(t){return new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return a((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return a((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return a(e)}}}),[a]),i=(0,d.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},o);return[n,i]};function xn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=H(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],a=e[1];return le((function(){return function(){t.setters=t.setters.filter((function(e){return e!==a}))}})),Y((function(){t.setters.includes(a)||t.setters.push(a)})),[n,t.setState]}}var kn=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],a=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){x(window,"hashchange",a)}),(function(){k(window,"hashchange",a)}));var o=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,o]}},72408:(e,t,n)=>{"use strict";var r=n(27418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},x=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,r)&&!k.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function O(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var P={current:null};function N(){var e=P.current;if(null===e)throw Error(p(321));return e}var I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};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(!E(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)x.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,x=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?x.postMessage(null):(m=!1,g=null)}catch(n){throw x.postMessage(null),n}}else m=!1},n=function(e){g=e,m||(m=!0,x.postMessage(null))},r=function(e,n){v=f((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<S(a,t)))break e;e[r]=t,e[n]=a,n=r}}function _(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>S(i,n))void 0!==s&&0>S(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>S(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],O=1,D=null,P=3,N=!1,I=!1,A=!1;function L(e){for(var t=_(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,k(C,t)}t=_(T)}}function R(e){if(A=!1,L(e),!I)if(null!==_(C))I=!0,n(j);else{var t=_(T);null!==t&&r(R,t.startTime-e)}}function j(e,n){I=!1,A&&(A=!1,a()),N=!0;var o=P;try{for(L(n),D=_(C);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=D.callback;if("function"==typeof i){D.callback=null,P=D.priorityLevel;var l=i(D.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?D.callback=l:D===_(C)&&E(C),L(n)}else E(C);D=_(C)}if(null!==D)var s=!0;else{var u=_(T);null!==u&&r(R,u.startTime-n),s=!1}return s}finally{D=null,P=o,N=!1}}var M=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||N||(I=!0,n(j))},t.unstable_getCurrentPriorityLevel=function(){return P},t.unstable_getFirstCallbackNode=function(){return _(C)},t.unstable_next=function(e){switch(P){case 1:case 2:case 3:var t=3;break;default:t=P}var n=P;P=t;try{return e()}finally{P=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=P;P=e;try{return t()}finally{P=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:O++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,k(T,e),null===_(C)&&e===_(T)&&(A?a():A=!0,r(R,i-l))):(e.sortIndex=s,k(C,e),I||N||(I=!0,n(j))),e},t.unstable_wrapCallback=function(e){var t=P;return function(){var n=P;P=t;try{return e.apply(this,arguments)}finally{P=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},10577:e=>{!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,a=n.length,o={};r<a;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)o[n[0][r]]=e[r];return o}return!1}(),a={change:r.fullscreenchange,error:r.fullscreenerror},o={request:function(e,n){return new Promise(function(a,o){var i=function(){this.off("change",i),a()}.bind(this);this.on("change",i);var l=(e=e||t.documentElement)[r.requestFullscreen](n);l instanceof Promise&&l.then(i).catch(o)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var a=function(){this.off("change",a),e()}.bind(this);this.on("change",a);var o=t[r.exitFullscreen]();o instanceof Promise&&o.then(a).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=a[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=a[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=o:window.screenfull=o):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},96774: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}},11742:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:(e,t)=>{"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},70655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>S,__asyncGenerator:()=>E,__asyncValues:()=>C,__await:()=>_,__awaiter:()=>h,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>A,__classPrivateFieldSet:()=>I,__createBinding:()=>g,__decorate:()=>l,__esDecorate:()=>u,__exportStar:()=>v,__extends:()=>a,__generator:()=>m,__importDefault:()=>P,__importStar:()=>D,__makeTemplateObject:()=>T,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>y,__rest:()=>i,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>x,__values:()=>b});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])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new 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},o.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&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 new 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 h={};for(var m in r)h[m]="access"===m?{}:r[m];for(var m in r.access)h.access[m]=r.access[m];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],h);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&a.push(l)}else(l=i(g))&&("field"===s?a.push(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 h(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(t){o(t)}}function l(e){try{s(r.throw(e))}catch(t){o(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t 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,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&l[0]?r.return:l[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,l[1])).done)return a;switch(r=0,a&&(l=[2&l[0],a.value]),l[0]){case 0:case 1:a=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]<a[3])){i.label=l[1];break}if(6===l[0]&&i.label<a[1]){i.label=a[1],a=l;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(l);break}a[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(s){l=[6,s],r=0}finally{n=a=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var g=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 v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(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 new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(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(l){a={error:l}}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(y(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(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 _(e){return this instanceof _?(this.v=e,this):new _(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=a[e](t)).value instanceof _?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}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 S(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:_(e[r](t)),done:!1}:a?a(t):t}:a}}function C(e){if(!Symbol.asyncIterator)throw new 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){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&g(t,e,n);return O(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new 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 new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new 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 A(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},53250:(e,t,n)=>{"use strict";var r=n(67294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Waku Documentation",url:"https://docs.waku.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en-GB",locales:["en-GB"],path:"i18n",localeConfigs:{}},presets:[["@acid-info/logos-docusaurus-preset",{businessUnit:"Waku",customSiteConfig:!0,docs:{routeBasePath:"/",path:"docs",sidebarPath:"/home/jenkins/workspace/website/docs.waku.org/sidebars.js",editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/",showLastUpdateTime:!0,breadcrumbs:!1},theme:{name:"default",options:{customCss:["/home/jenkins/workspace/website/docs.waku.org/src/css/custom.scss"]}}}]],staticDirectories:["static","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/common","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/Waku","/home/jenkins/workspace/website/docs.waku.org/node_modules/@acid-info/logos-docusaurus-theme/lib/client/static/"],plugins:[["@acid-info/docusaurus-fathom",{siteId:"FUTMI",scriptUrl:"https://fathom.status.im/tracker.js"}]],themeConfig:{docs:{sidebar:{hideable:!1,autoCollapseCategories:!1},versionPersistence:"localStorage"},metadata:[{name:"keywords",content:"waku, web3"},{name:"description",content:"Waku is the communication layer for Web3. Decentralized communication that scales."},{name:"image",content:"theme/image/preview-image.png"}],colorMode:{disableSwitch:!1,defaultMode:"dark",respectPrefersColorScheme:!0},navbar:{title:"",logo:{alt:"Waku",src:"theme/image/logo-black.svg",srcDark:"theme/image/logo.svg",height:26},hideOnScroll:!0,items:[{type:"search",position:"left"},{type:"docSidebar",position:"left",sidebarId:"guides",label:"Guides"},{type:"docSidebar",position:"left",sidebarId:"learn",label:"Learn"},{type:"docSidebar",position:"left",sidebarId:"research",label:"Research"},{href:"https://discord.waku.org",position:"left",label:"Discord"},{href:"https://github.com/waku-org",position:"right",className:"header-github-link",title:"Waku GitHub repository"}]},footer:{logo:{alt:"Waku",src:"theme/image/logo.svg",href:"/",width:22},links:[{title:"Guides",items:[{to:"/guides/nwaku/run-docker-compose",label:"Run a Nwaku Node"},{to:"/guides/js-waku/",label:"JavaScript Waku SDK"}]},{title:"Community",items:[{href:"https://twitter.com/waku_org/",label:"X"},{href:"https://discord.waku.org/",label:"Discord"},{href:"https://github.com/waku-org/",label:"GitHub"},{href:"https://www.youtube.com/@wakuorg",label:"YouTube"},{href:"https://www.linkedin.com/company/waku-org",label:"LinkedIn"},{href:"https://warpcast.com/waku",label:"Farcaster"},{href:"https://t.me/waku_org/",label:"Telegram"}]},{title:"Resources",items:[{href:"https://blog.waku.org/",label:"Blog"},{href:"https://rfc.vac.dev/waku",label:"Waku RFCs"},{href:"https://github.com/waku-org/bounties/",label:"Bounties"},{href:"https://github.com/waku-org/awesome-waku/",label:"Awesome Waku"}]},{title:"Legal",items:[{href:"/terms",label:"Terms of Use"},{href:"/privacy-policy",label:"Privacy Policy"},{href:"/rules-of-engagement",label:"Rules of Engagement"},{href:"/security",label:"Security"}]},{title:"shared:Research",items:[{href:"https://vac.dev",label:"VacP2P"},{href:"https://afaik.institute",label:"AFAIK"}]},{title:"shared:Infrastructure",items:[{href:"https://waku.org/",label:"Waku"},{href:"https://nimbus.team/",label:"Nimbus"},{href:"https://codex.storage",label:"Codex"},{href:"https://nomos.tech",label:"Nomos"}]},{title:"shared:Creative Studio",items:[{href:"https://acid.info",label:"Acid.info"}]},{title:"shared:Movement",items:[{href:"https://logos.co",label:"Logos"}]},{title:"shared:User-facing products",items:[{href:"https://status.im",label:"Status"},{href:"https://keycard.tech",label:"Keycard"}]}],copyright:"Waku",style:"light"},prism:{theme:{plain:{color:"#000000",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},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)"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},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:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},markdown:{mermaid:!0},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",customFields:{businessUnits:"Waku","logos-docusaurus-theme":{customCss:["/home/jenkins/workspace/website/docs.waku.org/src/css/custom.scss"],docs:{},id:"default"}},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],tagline:"",titleDelimiter:"|",noIndex:!1,favicon:"theme/image/favicon.ico"}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/-3c9":{"__comp":"1be78505","__context":{"plugin":"c5bc235e"},"versionMetadata":"935f2afb"},"/-0f1":{"__comp":"17896441","content":"c9ea0dcf"},"/guides/js-waku/-9af":{"__comp":"17896441","content":"488ca57d"},"/guides/js-waku/configure-discovery-dfe":{"__comp":"17896441","content":"4bb5c570"},"/guides/js-waku/debug-waku-dapp-c0d":{"__comp":"17896441","content":"e610d71e"},"/guides/js-waku/faq-1ad":{"__comp":"17896441","content":"a494bfbc"},"/guides/js-waku/light-send-receive-77b":{"__comp":"17896441","content":"c57f3997"},"/guides/js-waku/manage-filter-d72":{"__comp":"17896441","content":"0444839e"},"/guides/js-waku/message-encryption-d96":{"__comp":"17896441","content":"df28445d"},"/guides/js-waku/run-waku-nodejs-30f":{"__comp":"17896441","content":"0f1b9a4a"},"/guides/js-waku/store-retrieve-messages-1c5":{"__comp":"17896441","content":"1f1f54c7"},"/guides/js-waku/use-waku-create-app-76f":{"__comp":"17896441","content":"5277fe18"},"/guides/js-waku/use-waku-react-ed9":{"__comp":"17896441","content":"3b240eda"},"/guides/nwaku/build-source-995":{"__comp":"17896441","content":"f2470003"},"/guides/nwaku/config-methods-c44":{"__comp":"17896441","content":"80ec2a43"},"/guides/nwaku/config-options-def":{"__comp":"17896441","content":"8eff6037"},"/guides/nwaku/configure-discovery-a6b":{"__comp":"17896441","content":"8a655033"},"/guides/nwaku/configure-nwaku-a95":{"__comp":"17896441","content":"60832973"},"/guides/nwaku/faq-ad1":{"__comp":"17896441","content":"20987266"},"/guides/nwaku/find-node-address-786":{"__comp":"17896441","content":"b551b2b5"},"/guides/nwaku/run-docker-d03":{"__comp":"17896441","content":"6e8bfb6f"},"/guides/nwaku/run-docker-compose-ca4":{"__comp":"17896441","content":"7c28fd94"},"/guides/nwaku/run-node-9f1":{"__comp":"17896441","content":"406e0176"},"/guides/nwaku/upgrade-instructions-8ee":{"__comp":"17896441","content":"d3c3b3be"},"/learn/concepts/content-topics-45b":{"__comp":"17896441","content":"c764ec94"},"/learn/concepts/discv5-01f":{"__comp":"17896441","content":"2f51beae"},"/learn/concepts/dns-discovery-c5b":{"__comp":"17896441","content":"a44b8792"},"/learn/concepts/network-domains-5d8":{"__comp":"17896441","content":"b54b2767"},"/learn/concepts/peer-discovery-913":{"__comp":"17896441","content":"6778e957"},"/learn/concepts/peer-exchange-e58":{"__comp":"17896441","content":"80a3009a"},"/learn/concepts/protocols-13a":{"__comp":"17896441","content":"fb5ea66b"},"/learn/concepts/static-peers-9c6":{"__comp":"17896441","content":"e63bb37c"},"/learn/concepts/transports-6fb":{"__comp":"17896441","content":"ef85d46a"},"/learn/faq-74d":{"__comp":"17896441","content":"1067bd84"},"/learn/glossary-cf5":{"__comp":"17896441","content":"4aba8864"},"/learn/research-13c":{"__comp":"17896441","content":"6c6e315a"},"/learn/security-features-72b":{"__comp":"17896441","content":"606377f0"},"/learn/waku-network-f0c":{"__comp":"17896441","content":"b99d0044"},"/learn/waku-vs-libp2p-c45":{"__comp":"17896441","content":"41a4e09e"},"/migrations/js-waku/migration_v0.026_0.027-949":{"__comp":"17896441","content":"63c569e1"},"/privacy-policy-4cd":{"__comp":"17896441","content":"8c5da4da"},"/research/-e8b":{"__comp":"17896441","content":"f7974e9c"},"/research/benchmarks/postgres-adoption-563":{"__comp":"17896441","content":"e168415d"},"/research/benchmarks/test-results-summary-6d0":{"__comp":"17896441","content":"570575fa"},"/research/research-and-studies/capped-bandwidth-ee6":{"__comp":"17896441","content":"97983a7b"},"/research/research-and-studies/incentivisation-d49":{"__comp":"17896441","content":"4e726341"},"/research/research-and-studies/maximum-bandwidth-80a":{"__comp":"17896441","content":"df0a719b"},"/research/research-and-studies/message-propagation-46a":{"__comp":"17896441","content":"3fbcf129"},"/research/research-and-studies/rln-key-benchmarks-5d8":{"__comp":"17896441","content":"1236ce69"},"/rules-of-engagement-0fc":{"__comp":"17896441","content":"d53fc737"},"/security-2fb":{"__comp":"17896441","content":"db32d859"},"/terms-37d":{"__comp":"17896441","content":"500a151f"}}')}},e=>{e.O(0,[532],(()=>{return t=91091,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/runtime~main.9971b046.js b/assets/js/runtime~main.02de6760.js similarity index 98% rename from assets/js/runtime~main.9971b046.js rename to assets/js/runtime~main.02de6760.js index 7cbc2b5..e2f39e9 100644 --- a/assets/js/runtime~main.9971b046.js +++ b/assets/js/runtime~main.02de6760.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,f,r,c={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return c[e].call(t.exports,t,t.exports,d),t.loaded=!0,t.exports}d.m=c,d.c=b,e=[],d.O=(a,t,f,r)=>{if(!t){var c=1/0;for(i=0;i<e.length;i++){t=e[i][0],f=e[i][1],r=e[i][2];for(var b=!0,o=0;o<t.length;o++)(!1&r||c>=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r<c&&(c=r));if(b){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,f,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var c={};a=a||[null,t({}),t([]),t(t)];for(var b=2&f&&e;"object"==typeof b&&!~a.indexOf(b);b=t(b))Object.getOwnPropertyNames(b).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,d.d(r,c),r},d.d=(e,a)=>{for(var t in a)d.o(a,t)&&!d.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,t)=>(d.f[t](e,a),a)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",101:"b551b2b5",161:"4bb5c570",175:"0444839e",231:"2f51beae",345:"570575fa",357:"4aba8864",617:"e610d71e",727:"b54b2767",830:"c5bc235e",906:"7c28fd94",1160:"63c569e1",1201:"b99d0044",1374:"5277fe18",1385:"8a655033",1923:"8c5da4da",1937:"97983a7b",2285:"1f1f54c7",2355:"df28445d",2588:"4e726341",2675:"a494bfbc",2811:"f2470003",2941:"c9ea0dcf",3076:"c764ec94",3116:"80a3009a",3178:"3b240eda",3235:"1236ce69",3292:"6778e957",3634:"80ec2a43",3855:"406e0176",4545:"500a151f",5158:"0f1b9a4a",5306:"e168415d",5447:"1067bd84",5740:"fb5ea66b",5787:"a44b8792",5832:"606377f0",5838:"f7974e9c",5844:"8eff6037",6059:"df0a719b",6321:"e63bb37c",6471:"d53fc737",6512:"6e8bfb6f",6618:"ef85d46a",6653:"db32d859",6839:"488ca57d",7304:"60832973",7442:"20987266",7683:"c57f3997",7918:"17896441",8173:"3fbcf129",8319:"6c6e315a",8824:"d3c3b3be",9169:"41a4e09e",9514:"1be78505"}[e]||e)+"."+{53:"3ac24a2e",101:"5aad83bc",161:"72960791",175:"d0f6c90a",231:"805c3453",345:"8f2bb95e",357:"449560fb",617:"365aa55a",727:"cefd340c",830:"3f5a7e5e",906:"1c749468",1160:"5eea62b8",1201:"030a4743",1374:"beb02876",1385:"0ca2bbe1",1923:"ba35496b",1937:"82494070",2285:"d6d24b05",2355:"fe682b5d",2568:"2380ad9e",2588:"f7167ffc",2675:"57ff26f9",2811:"6c538cf5",2941:"f162450e",3076:"db763f0f",3116:"a9c45f09",3178:"624a8066",3235:"63666877",3292:"17e97b76",3634:"6f9fcc01",3855:"848e8fc2",4545:"01e42fd8",4881:"a6f0238e",5158:"3c262cd0",5306:"0794cb7f",5447:"c56a7d7f",5740:"59c6536a",5787:"283e071b",5832:"bba1c86d",5838:"01c53d9c",5844:"feb3c31b",6059:"a75c3328",6316:"3369c858",6321:"a162a954",6471:"9a7348b2",6512:"336ea167",6618:"d78ec69c",6653:"6e7f647e",6839:"eca64d58",7304:"4d77b4c2",7442:"4d20d509",7683:"e697337c",7724:"3b85eed4",7918:"37881d61",8173:"204931d2",8319:"3d1e72ff",8824:"07fdb66c",9169:"b0acfbee",9487:"434e6b9b",9514:"f2d7708f"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r="waku-guide:",d.l=(e,a,t,c)=>{if(f[e])f[e].push(a);else{var b,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==r+t){b=u;break}}b||(o=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,d.nc&&b.setAttribute("nonce",d.nc),b.setAttribute("data-webpack",r+t),b.src=e),f[e]=[a];var l=(a,t)=>{b.onerror=b.onload=null,clearTimeout(s);var r=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),d.p="/",d.gca=function(e){return e={17896441:"7918",20987266:"7442",60832973:"7304","935f2afb":"53",b551b2b5:"101","4bb5c570":"161","0444839e":"175","2f51beae":"231","570575fa":"345","4aba8864":"357",e610d71e:"617",b54b2767:"727",c5bc235e:"830","7c28fd94":"906","63c569e1":"1160",b99d0044:"1201","5277fe18":"1374","8a655033":"1385","8c5da4da":"1923","97983a7b":"1937","1f1f54c7":"2285",df28445d:"2355","4e726341":"2588",a494bfbc:"2675",f2470003:"2811",c9ea0dcf:"2941",c764ec94:"3076","80a3009a":"3116","3b240eda":"3178","1236ce69":"3235","6778e957":"3292","80ec2a43":"3634","406e0176":"3855","500a151f":"4545","0f1b9a4a":"5158",e168415d:"5306","1067bd84":"5447",fb5ea66b:"5740",a44b8792:"5787","606377f0":"5832",f7974e9c:"5838","8eff6037":"5844",df0a719b:"6059",e63bb37c:"6321",d53fc737:"6471","6e8bfb6f":"6512",ef85d46a:"6618",db32d859:"6653","488ca57d":"6839",c57f3997:"7683","3fbcf129":"8173","6c6e315a":"8319",d3c3b3be:"8824","41a4e09e":"9169","1be78505":"9514"}[e]||e,d.p+d.u(e)},(()=>{var e={1303:0,532:0};d.f.j=(a,t)=>{var f=d.o(e,a)?e[a]:void 0;if(0!==f)if(f)t.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>f=e[a]=[t,r]));t.push(f[2]=r);var c=d.p+d.u(a),b=new Error;d.l(c,(t=>{if(d.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+c+")",b.name="ChunkLoadError",b.type=r,b.request=c,f[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,t)=>{var f,r,c=t[0],b=t[1],o=t[2],n=0;if(c.some((a=>0!==e[a]))){for(f in b)d.o(b,f)&&(d.m[f]=b[f]);if(o)var i=o(d)}for(a&&a(t);n<c.length;n++)r=c[n],d.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return d.O(i)},t=self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[];t.forEach(a.bind(null,0)),t.push=a.bind(null,t.push.bind(t))})()})(); \ No newline at end of file +(()=>{"use strict";var e,a,t,f,r,c={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return c[e].call(t.exports,t,t.exports,d),t.loaded=!0,t.exports}d.m=c,d.c=b,e=[],d.O=(a,t,f,r)=>{if(!t){var c=1/0;for(i=0;i<e.length;i++){t=e[i][0],f=e[i][1],r=e[i][2];for(var b=!0,o=0;o<t.length;o++)(!1&r||c>=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r<c&&(c=r));if(b){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,f,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var c={};a=a||[null,t({}),t([]),t(t)];for(var b=2&f&&e;"object"==typeof b&&!~a.indexOf(b);b=t(b))Object.getOwnPropertyNames(b).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,d.d(r,c),r},d.d=(e,a)=>{for(var t in a)d.o(a,t)&&!d.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,t)=>(d.f[t](e,a),a)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",101:"b551b2b5",161:"4bb5c570",175:"0444839e",231:"2f51beae",345:"570575fa",357:"4aba8864",617:"e610d71e",727:"b54b2767",830:"c5bc235e",906:"7c28fd94",1160:"63c569e1",1201:"b99d0044",1374:"5277fe18",1385:"8a655033",1923:"8c5da4da",1937:"97983a7b",2285:"1f1f54c7",2355:"df28445d",2588:"4e726341",2675:"a494bfbc",2811:"f2470003",2941:"c9ea0dcf",3076:"c764ec94",3116:"80a3009a",3178:"3b240eda",3235:"1236ce69",3292:"6778e957",3634:"80ec2a43",3855:"406e0176",4545:"500a151f",5158:"0f1b9a4a",5306:"e168415d",5447:"1067bd84",5740:"fb5ea66b",5787:"a44b8792",5832:"606377f0",5838:"f7974e9c",5844:"8eff6037",6059:"df0a719b",6321:"e63bb37c",6471:"d53fc737",6512:"6e8bfb6f",6618:"ef85d46a",6653:"db32d859",6839:"488ca57d",7304:"60832973",7442:"20987266",7683:"c57f3997",7918:"17896441",8173:"3fbcf129",8319:"6c6e315a",8824:"d3c3b3be",9169:"41a4e09e",9514:"1be78505"}[e]||e)+"."+{53:"3ac24a2e",101:"5aad83bc",161:"72960791",175:"d0f6c90a",231:"805c3453",345:"8f2bb95e",357:"449560fb",617:"365aa55a",727:"cefd340c",830:"3f5a7e5e",906:"1c749468",1160:"5eea62b8",1201:"030a4743",1374:"beb02876",1385:"0ca2bbe1",1923:"ba35496b",1937:"82494070",2285:"d6d24b05",2355:"fe682b5d",2568:"2380ad9e",2588:"f7167ffc",2675:"57ff26f9",2811:"6c538cf5",2941:"f162450e",3076:"db763f0f",3116:"a9c45f09",3178:"624a8066",3235:"63666877",3292:"17e97b76",3634:"6f9fcc01",3855:"848e8fc2",4545:"01e42fd8",4881:"a6f0238e",5158:"3c262cd0",5306:"ea42405c",5447:"c56a7d7f",5740:"59c6536a",5787:"283e071b",5832:"bba1c86d",5838:"01c53d9c",5844:"feb3c31b",6059:"a75c3328",6316:"3369c858",6321:"a162a954",6471:"9a7348b2",6512:"336ea167",6618:"d78ec69c",6653:"6e7f647e",6839:"eca64d58",7304:"4d77b4c2",7442:"4d20d509",7683:"e697337c",7724:"3b85eed4",7918:"37881d61",8173:"204931d2",8319:"3d1e72ff",8824:"07fdb66c",9169:"b0acfbee",9487:"434e6b9b",9514:"f2d7708f"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r="waku-guide:",d.l=(e,a,t,c)=>{if(f[e])f[e].push(a);else{var b,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==r+t){b=u;break}}b||(o=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,d.nc&&b.setAttribute("nonce",d.nc),b.setAttribute("data-webpack",r+t),b.src=e),f[e]=[a];var l=(a,t)=>{b.onerror=b.onload=null,clearTimeout(s);var r=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),d.p="/",d.gca=function(e){return e={17896441:"7918",20987266:"7442",60832973:"7304","935f2afb":"53",b551b2b5:"101","4bb5c570":"161","0444839e":"175","2f51beae":"231","570575fa":"345","4aba8864":"357",e610d71e:"617",b54b2767:"727",c5bc235e:"830","7c28fd94":"906","63c569e1":"1160",b99d0044:"1201","5277fe18":"1374","8a655033":"1385","8c5da4da":"1923","97983a7b":"1937","1f1f54c7":"2285",df28445d:"2355","4e726341":"2588",a494bfbc:"2675",f2470003:"2811",c9ea0dcf:"2941",c764ec94:"3076","80a3009a":"3116","3b240eda":"3178","1236ce69":"3235","6778e957":"3292","80ec2a43":"3634","406e0176":"3855","500a151f":"4545","0f1b9a4a":"5158",e168415d:"5306","1067bd84":"5447",fb5ea66b:"5740",a44b8792:"5787","606377f0":"5832",f7974e9c:"5838","8eff6037":"5844",df0a719b:"6059",e63bb37c:"6321",d53fc737:"6471","6e8bfb6f":"6512",ef85d46a:"6618",db32d859:"6653","488ca57d":"6839",c57f3997:"7683","3fbcf129":"8173","6c6e315a":"8319",d3c3b3be:"8824","41a4e09e":"9169","1be78505":"9514"}[e]||e,d.p+d.u(e)},(()=>{var e={1303:0,532:0};d.f.j=(a,t)=>{var f=d.o(e,a)?e[a]:void 0;if(0!==f)if(f)t.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>f=e[a]=[t,r]));t.push(f[2]=r);var c=d.p+d.u(a),b=new Error;d.l(c,(t=>{if(d.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+c+")",b.name="ChunkLoadError",b.type=r,b.request=c,f[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,t)=>{var f,r,c=t[0],b=t[1],o=t[2],n=0;if(c.some((a=>0!==e[a]))){for(f in b)d.o(b,f)&&(d.m[f]=b[f]);if(o)var i=o(d)}for(a&&a(t);n<c.length;n++)r=c[n],d.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return d.O(i)},t=self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[];t.forEach(a.bind(null,0)),t.push=a.bind(null,t.push.bind(t))})()})(); \ No newline at end of file diff --git a/build.json b/build.json index d4479b9..0232c4c 100644 --- a/build.json +++ b/build.json @@ -1,15 +1,15 @@ { - "timestamp": "2025-05-20T05:36:45Z", + "timestamp": "2025-06-20T14:54:54Z", "git": { - "commit": "4dab437a38edbc16815e2571d693bb8f98067a11", + "commit": "e00bfdd527fd6a4055d59fdcdfd4399203fc144f", "branch": "origin/master", "url": "git@github.com:waku-org/docs.waku.org.git" }, "build": { - "id": "94", - "number": "94", + "id": "95", + "number": "95", "name": "website/docs.waku.org", "slave": "linux-01", - "url": "https://ci.infra.status.im/job/website/job/docs.waku.org/94/" + "url": "https://ci.infra.status.im/job/website/job/docs.waku.org/95/" } } \ No newline at end of file diff --git a/guides/js-waku/configure-discovery/index.html b/guides/js-waku/configure-discovery/index.html index 5b0ef94..8b9e3cb 100644 --- a/guides/js-waku/configure-discovery/index.html +++ b/guides/js-waku/configure-discovery/index.html @@ -3,19 +3,19 @@ <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v2.4.1"> -<title data-rh="true">Bootstrap Nodes and Discover Peers | Waku Documentation +Bootstrap Nodes and Discover Peers | Waku Documentation - - - + + +

    Bootstrap Nodes and Discover Peers

    This guide provides detailed steps to bootstrap your your node using Static Peers and discover peers in the Waku Network using DNS Discovery.

    info

    If you do not set up a bootstrap node or discovery mechanism, your node will not connect to any remote peer.

    tip

    Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.

    Default bootstrap method

    The @waku/sdk package provides a built-in bootstrapping method that uses DNS Discovery to locate peers from the waku v2.prod ENR tree.

    import { createLightNode } from "@waku/sdk";

    // Bootstrap node using the default bootstrap method
    const node = await createLightNode({ defaultBootstrap: true });

    Configure static peers

    To set static peers, a list of multiaddr to bootstrap the node should be passed to the bootstrapPeers parameter of the createLightNode() function:

    import { createLightNode } from "@waku/sdk";

    // Bootstrap node using static peers
    const node = await createLightNode({
    bootstrapPeers: ["[PEER MULTIADDR]"],
    });

    For example, consider a node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003 with WebSocket enabled:

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];

    // Bootstrap node using the static peers
    const node = await createLightNode({
    bootstrapPeers: peers,
    });

    Alternatively, you can dial a particular node like this:

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];


    const node = await createLightNode();

    // In case nodes are using IP address and / or `ws` protocol - additional configuration is needed:
    /*
    const node = await createLightNode({
    libp2p: {
    filterMultiaddrs: false,
    },
    });
    */

    const promises = peers.map(multiaddr => node.dial(multiaddr));

    await Promise.all(promises);
    tip

    For local development using a nwaku node, use a ws address instead of wss. Remember that this setup is functional only when your web server is running locally. You can check how to get multi address of your locally run node in Find node address.

    Configure DNS discovery

    To bootstrap a node using DNS Discovery, first install the @waku/dns-discovery package:

    npm install @waku/dns-discovery
    yarn add @waku/dns-discovery

    Then, use the wakuDnsDiscovery() function to provide a list of URLs for DNS node list in the format enrtree://<key>@<fqdn>:

    import { createLightNode } from "@waku/sdk";
    import { wakuDnsDiscovery } from "@waku/dns-discovery";

    // Define DNS node list
    const enrTree = "enrtree://[PUBLIC KEY]@[DOMAIN NAME]";

    // Define node requirements
    const NODE_REQUIREMENTS = {
    store: 3,
    lightPush: 3,
    filter: 3,
    };

    // Bootstrap node using DNS Discovery
    const node = await createLightNode({
    libp2p: {
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    For example, consider a node that uses the waku v2.prod and waku v2.test ENR trees for DNS Discovery:

    import { enrTree } from "@waku/dns-discovery";

    // Bootstrap node using DNS Discovery
    const node = await createLightNode({
    libp2p: {
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree["PROD"], enrTree["TEST"]],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    Configure DNS discovery and static peers

    You can also bootstrap your node using DNS Discovery and Static Peers simultaneously:

    import { createLightNode } from "@waku/sdk";
    import { bootstrap } from "@libp2p/bootstrap";
    import { enrTree, wakuDnsDiscovery } from "@waku/dns-discovery";

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];

    // Define node requirements
    const NODE_REQUIREMENTS = {
    store: 3,
    lightPush: 3,
    filter: 3,
    };

    // Bootstrap node using DNS Discovery and static peers
    const node = await createLightNode({
    libp2p: {
    bootstrapPeers: peers,
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree["PROD"]],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    Retrieving connected peers

    You can retrieve the array of peers connected to a node using the libp2p.getPeers() function within the @waku/sdk package:

    import { createLightNode } from "@waku/sdk";

    const node = await createLightNode({ defaultBootstrap: true });
    await node.waitForPeers();

    // Retrieve array of peers connected to the node
    console.log(node.libp2p.getPeers());
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Bootstrap Nodes and Discover Peers

    This guide provides detailed steps to bootstrap your your node using Static Peers and discover peers in the Waku Network using DNS Discovery.

    info

    If you do not set up a bootstrap node or discovery mechanism, your node will not connect to any remote peer.

    tip

    Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.

    Default bootstrap method

    The @waku/sdk package provides a built-in bootstrapping method that uses DNS Discovery to locate peers from the waku v2.prod ENR tree.

    import { createLightNode } from "@waku/sdk";

    // Bootstrap node using the default bootstrap method
    const node = await createLightNode({ defaultBootstrap: true });

    Configure static peers

    To set static peers, a list of multiaddr to bootstrap the node should be passed to the bootstrapPeers parameter of the createLightNode() function:

    import { createLightNode } from "@waku/sdk";

    // Bootstrap node using static peers
    const node = await createLightNode({
    bootstrapPeers: ["[PEER MULTIADDR]"],
    });

    For example, consider a node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003 with WebSocket enabled:

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];

    // Bootstrap node using the static peers
    const node = await createLightNode({
    bootstrapPeers: peers,
    });

    Alternatively, you can dial a particular node like this:

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];


    const node = await createLightNode();

    // In case nodes are using IP address and / or `ws` protocol - additional configuration is needed:
    /*
    const node = await createLightNode({
    libp2p: {
    filterMultiaddrs: false,
    },
    });
    */

    const promises = peers.map(multiaddr => node.dial(multiaddr));

    await Promise.all(promises);
    tip

    For local development using a nwaku node, use a ws address instead of wss. Remember that this setup is functional only when your web server is running locally. You can check how to get multi address of your locally run node in Find node address.

    Configure DNS discovery

    To bootstrap a node using DNS Discovery, first install the @waku/dns-discovery package:

    npm install @waku/dns-discovery
    yarn add @waku/dns-discovery

    Then, use the wakuDnsDiscovery() function to provide a list of URLs for DNS node list in the format enrtree://<key>@<fqdn>:

    import { createLightNode } from "@waku/sdk";
    import { wakuDnsDiscovery } from "@waku/dns-discovery";

    // Define DNS node list
    const enrTree = "enrtree://[PUBLIC KEY]@[DOMAIN NAME]";

    // Define node requirements
    const NODE_REQUIREMENTS = {
    store: 3,
    lightPush: 3,
    filter: 3,
    };

    // Bootstrap node using DNS Discovery
    const node = await createLightNode({
    libp2p: {
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    For example, consider a node that uses the waku v2.prod and waku v2.test ENR trees for DNS Discovery:

    import { enrTree } from "@waku/dns-discovery";

    // Bootstrap node using DNS Discovery
    const node = await createLightNode({
    libp2p: {
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree["PROD"], enrTree["TEST"]],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    Configure DNS discovery and static peers

    You can also bootstrap your node using DNS Discovery and Static Peers simultaneously:

    import { createLightNode } from "@waku/sdk";
    import { bootstrap } from "@libp2p/bootstrap";
    import { enrTree, wakuDnsDiscovery } from "@waku/dns-discovery";

    // Define the list of static peers to bootstrap
    const peers = [
    "/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H",
    "/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ",
    ];

    // Define node requirements
    const NODE_REQUIREMENTS = {
    store: 3,
    lightPush: 3,
    filter: 3,
    };

    // Bootstrap node using DNS Discovery and static peers
    const node = await createLightNode({
    libp2p: {
    bootstrapPeers: peers,
    peerDiscovery: [
    wakuDnsDiscovery(
    [enrTree["PROD"]],
    NODE_REQUIREMENTS,
    ),
    ],
    },
    });

    Retrieving connected peers

    You can retrieve the array of peers connected to a node using the libp2p.getPeers() function within the @waku/sdk package:

    import { createLightNode } from "@waku/sdk";

    const node = await createLightNode({ defaultBootstrap: true });
    await node.waitForPeers();

    // Retrieve array of peers connected to the node
    console.log(node.libp2p.getPeers());
    + + \ No newline at end of file diff --git a/guides/js-waku/debug-waku-dapp/index.html b/guides/js-waku/debug-waku-dapp/index.html index b600fd8..6fd4efe 100644 --- a/guides/js-waku/debug-waku-dapp/index.html +++ b/guides/js-waku/debug-waku-dapp/index.html @@ -3,19 +3,19 @@ -Debug Your Waku DApp and WebSocket | Waku Documentation +Debug Your Waku DApp and WebSocket | Waku Documentation - - - + + +

    Debug Your Waku DApp and WebSocket

    This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in nwaku.

    Enabling debug logs

    When resolving issues in your Waku DApp, debug logs can be helpful. The @waku/sdk and libp2p packages use the debug tool to handle and show logs that help you debug effectively.

    NodeJS environments

    To enable debug logs for @waku/sdk on NodeJS, you must set the DEBUG environment variable. To only enable debug logs for @waku/sdk:

    export DEBUG=waku*

    To enable debug logs for both @waku/sdk and libp2p:

    export DEBUG=waku*,libp2p*

    To enable debug logs for all components:

    export DEBUG=*

    Browser environments

    To view debug logs in your browser's console, modify the local storage and add the debug key. Here are guides for various modern browsers:

    KEYVALUEDESCRIPTION
    debugwaku*Enables @waku/sdk debug logs
    debugwaku*,libp2p*Enables @waku/sdk and libp2p debug logs
    debug*Enables all debug logs

    Checking WebSocket setup

    Nwaku provides native support for WebSocket (ws) and WebSocket Secure (wss) protocols. These are the only transports supported for connecting to the Waku Network via browsers.

    It's important to note that browsers impose certain limitations on WebSocket usage:

    • Secure Context Requirement: Insecure subroutines are prohibited in secure contexts. On an https:// webpage, only wss connections are permitted, while ws connections are not allowed. This restriction does not apply if the webpage is served locally, like on localhost or 127.0.0.1.
    • Certificate Validation: Certificate validation rules are consistent for https and wss connections. Certificates must not be expired, issued by a recognized Certificate Authority (CA), and match the domain name, among other criteria.
    • User Feedback on Errors: Web browsers do not display errors related to subroutines to the user. If a WebSocket connection encounters an issue, users won't be alerted directly; you'll need to check the browser's console for error details.

    If you encounter difficulties when connecting to a remote node using wss, follow these steps:

    Try Websocat for connection

    Attempt to connect using websocat, a tool for WebSocket interactions. Test the WebSocket port using the command:

    websocat -v wss://[WEBSOCKET HOST]:[WEBSOCKET PORT]

    For example, consider a nwaku node with the multiaddr as /dns4/nwakunode.com/tcp/1234/wss/p2p/16...:

    $ websocat -v wss://nwakunode.com:1234
    # ...
    [INFO websocat::ws_client_peer] Connected to ws

    The connection works if the [INFO websocat::ws_client_peer] Connected to ws log entry appears. If not, check that the certificate is valid

    Check certificate validity

    Verify the certificate's validity by passing the -k or --insecure flag to handle invalid certificates in websocat:

    websocat -v -k wss://nwakunode.com:1234

    If this works, the certificate's invalidity is the problem, and you should investigate the cause of the error if not, check if the WebSocket port is accessible.

    Check WebSocket port accessibility

    Use telnet or another networking tool to verify if the WebSocket port is open and accessible. For example, if the multiaddr is /dns4/nwakunode.com/tcp/1234/wss/p2p/16..., use the command:

    $ telnet nwakunode.com 1234
    Trying 123.123.123.123...
    Connected to nwakunode.com.
    # ...

    If the connection succeeds, there might be an issue with nwaku. Consider seeking support on the Waku Discord or raise an issue. If the connection fails, ensure that the WebSocket port is open.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Debug Your Waku DApp and WebSocket

    This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in nwaku.

    Enabling debug logs

    When resolving issues in your Waku DApp, debug logs can be helpful. The @waku/sdk and libp2p packages use the debug tool to handle and show logs that help you debug effectively.

    NodeJS environments

    To enable debug logs for @waku/sdk on NodeJS, you must set the DEBUG environment variable. To only enable debug logs for @waku/sdk:

    export DEBUG=waku*

    To enable debug logs for both @waku/sdk and libp2p:

    export DEBUG=waku*,libp2p*

    To enable debug logs for all components:

    export DEBUG=*

    Browser environments

    To view debug logs in your browser's console, modify the local storage and add the debug key. Here are guides for various modern browsers:

    KEYVALUEDESCRIPTION
    debugwaku*Enables @waku/sdk debug logs
    debugwaku*,libp2p*Enables @waku/sdk and libp2p debug logs
    debug*Enables all debug logs

    Checking WebSocket setup

    Nwaku provides native support for WebSocket (ws) and WebSocket Secure (wss) protocols. These are the only transports supported for connecting to the Waku Network via browsers.

    It's important to note that browsers impose certain limitations on WebSocket usage:

    • Secure Context Requirement: Insecure subroutines are prohibited in secure contexts. On an https:// webpage, only wss connections are permitted, while ws connections are not allowed. This restriction does not apply if the webpage is served locally, like on localhost or 127.0.0.1.
    • Certificate Validation: Certificate validation rules are consistent for https and wss connections. Certificates must not be expired, issued by a recognized Certificate Authority (CA), and match the domain name, among other criteria.
    • User Feedback on Errors: Web browsers do not display errors related to subroutines to the user. If a WebSocket connection encounters an issue, users won't be alerted directly; you'll need to check the browser's console for error details.

    If you encounter difficulties when connecting to a remote node using wss, follow these steps:

    Try Websocat for connection

    Attempt to connect using websocat, a tool for WebSocket interactions. Test the WebSocket port using the command:

    websocat -v wss://[WEBSOCKET HOST]:[WEBSOCKET PORT]

    For example, consider a nwaku node with the multiaddr as /dns4/nwakunode.com/tcp/1234/wss/p2p/16...:

    $ websocat -v wss://nwakunode.com:1234
    # ...
    [INFO websocat::ws_client_peer] Connected to ws

    The connection works if the [INFO websocat::ws_client_peer] Connected to ws log entry appears. If not, check that the certificate is valid

    Check certificate validity

    Verify the certificate's validity by passing the -k or --insecure flag to handle invalid certificates in websocat:

    websocat -v -k wss://nwakunode.com:1234

    If this works, the certificate's invalidity is the problem, and you should investigate the cause of the error if not, check if the WebSocket port is accessible.

    Check WebSocket port accessibility

    Use telnet or another networking tool to verify if the WebSocket port is open and accessible. For example, if the multiaddr is /dns4/nwakunode.com/tcp/1234/wss/p2p/16..., use the command:

    $ telnet nwakunode.com 1234
    Trying 123.123.123.123...
    Connected to nwakunode.com.
    # ...

    If the connection succeeds, there might be an issue with nwaku. Consider seeking support on the Waku Discord or raise an issue. If the connection fails, ensure that the WebSocket port is open.

    + + \ No newline at end of file diff --git a/guides/js-waku/faq/index.html b/guides/js-waku/faq/index.html index fbbdf56..f2cd1c6 100644 --- a/guides/js-waku/faq/index.html +++ b/guides/js-waku/faq/index.html @@ -3,19 +3,19 @@ -JavaScript SDK FAQ | Waku Documentation +JavaScript SDK FAQ | Waku Documentation - - - + + +

    JavaScript SDK FAQ

    You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started.
    Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the installation guide and Protobuf documentation to learn more.
    Check out the Retrieve Messages Using Store Protocol guide to learn how to retrieve and filter historical messages using the Store protocol.
    When creating your message encoder, you can configure the ephemeral option to prevent Store peers from keeping your messages on the Waku Network.
    You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the Encrypt, Decrypt, and Sign Your Messages guide to get started.
    Waku has a specialized SDK designed for building React applications. Check out the Build React DApps Using @waku/react guide for instructions on installation and usage.
    The JavaScript SDK has a default bootstrap method that can be configured with Static Peers and DNS Discovery. Check out the Bootstrap Nodes and Discover Peers guide for setting up peer discovery for your node.
    Though the JavaScript SDK isn't directly usable in NodeJS due to certain limitations, we recommend running nwaku in a Docker container and consuming its REST API in a NodeJS application.
    Check out the Debug Your Waku DApp and WebSocket guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets.
    We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the Manage Your Filter Subscriptions guide for a detailed explanation and step-by-step instructions.
    While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like IPFS and then sharing the corresponding URL via Waku.
    To manually set your own node as a starting point use Configure static peers.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    JavaScript SDK FAQ

    You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started.
    Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the installation guide and Protobuf documentation to learn more.
    Check out the Retrieve Messages Using Store Protocol guide to learn how to retrieve and filter historical messages using the Store protocol.
    When creating your message encoder, you can configure the ephemeral option to prevent Store peers from keeping your messages on the Waku Network.
    You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the Encrypt, Decrypt, and Sign Your Messages guide to get started.
    Waku has a specialized SDK designed for building React applications. Check out the Build React DApps Using @waku/react guide for instructions on installation and usage.
    The JavaScript SDK has a default bootstrap method that can be configured with Static Peers and DNS Discovery. Check out the Bootstrap Nodes and Discover Peers guide for setting up peer discovery for your node.
    Though the JavaScript SDK isn't directly usable in NodeJS due to certain limitations, we recommend running nwaku in a Docker container and consuming its REST API in a NodeJS application.
    Check out the Debug Your Waku DApp and WebSocket guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets.
    We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the Manage Your Filter Subscriptions guide for a detailed explanation and step-by-step instructions.
    While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like IPFS and then sharing the corresponding URL via Waku.
    To manually set your own node as a starting point use Configure static peers.
    + + \ No newline at end of file diff --git a/guides/js-waku/index.html b/guides/js-waku/index.html index dc06488..2ea7317 100644 --- a/guides/js-waku/index.html +++ b/guides/js-waku/index.html @@ -3,19 +3,19 @@ -JavaScript Waku SDK | Waku Documentation +JavaScript Waku SDK | Waku Documentation - - - + + +

    JavaScript Waku SDK

    caution

    Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.

    The JavaScript Waku SDK (@waku/sdk) provides a TypeScript implementation of the Waku protocol designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the @waku/sdk package.

    Installation

    Install the @waku/sdk package using your preferred package manager:

    npm install @waku/sdk

    You can also use the @waku/sdk package via a CDN without installing it on your system:

    import * as waku from "https://unpkg.com/@waku/sdk@latest/bundle/index.js";

    Message structure

    We recommend creating a message structure for your application using Protocol Buffers for the following reasons:

    1. Consistency: Ensures uniform message format for easy parsing and processing.
    2. Interoperability: Facilitates effective communication between different parts of your application.
    3. Compatibility: Allows smooth communication between older and newer app versions.
    4. Payload Size: Minimizes payload overhead, especially for byte arrays, unlike JSON which adds significant overhead.

    To get started, install the protobufjs package using your preferred package manager:

    npm install protobufjs

    You can also use the protobufjs package via a CDN without installing it on your system:

    // Import the CDN
    import "https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js";
    <!-- Or include the protobufjs script -->
    <script src="https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js"></script>

    Getting started

    Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using @waku/sdk:

    GuideDescription
    Send and Receive Messages Using Light Push and FilterLearn how to send and receive messages on light nodes using the Light Push and Filter protocols
    Retrieve Messages Using Store ProtocolLearn how to retrieve and filter historical messages on light nodes using the Store protocol
    Encrypt, Decrypt, and Sign Your MessagesLearn how to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages
    Build React DApps Using @waku/reactLearn how to use the @waku/react package seamlessly integrate @waku/sdk into a React application
    Scaffold DApps Using @waku/create-appLearn how to use the @waku/create-app package to bootstrap your next @waku/sdk project from various example templates
    Bootstrap Nodes and Discover PeersLearn how to bootstrap your node using Static Peers and discover peers using DNS Discovery
    Run @waku/sdk in a NodeJS ApplicationLearn our suggested approach for using the @waku/sdk package within a NodeJS application
    Debug Your Waku DApp and WebSocketLearn how to troubleshoot your Waku DApp using debug logs and check WebSocket connections in nwaku
    Manage Your Filter SubscriptionsLearn how to manage filter subscriptions and handle node disconnections in your application
    tip

    Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.

    Get help and report issues

    To engage in general discussions, seek assistance, or stay updated with the latest news, visit the #support and #js-waku-contribute channels on the Waku Discord.

    If you discover bugs or want to suggest new features, do not hesitate to open an issue in the js-waku repository. Your feedback and contributions are highly valued and will help improve the @waku/sdk package.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    JavaScript Waku SDK

    caution

    Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.

    The JavaScript Waku SDK (@waku/sdk) provides a TypeScript implementation of the Waku protocol designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the @waku/sdk package.

    Installation

    Install the @waku/sdk package using your preferred package manager:

    npm install @waku/sdk

    You can also use the @waku/sdk package via a CDN without installing it on your system:

    import * as waku from "https://unpkg.com/@waku/sdk@latest/bundle/index.js";

    Message structure

    We recommend creating a message structure for your application using Protocol Buffers for the following reasons:

    1. Consistency: Ensures uniform message format for easy parsing and processing.
    2. Interoperability: Facilitates effective communication between different parts of your application.
    3. Compatibility: Allows smooth communication between older and newer app versions.
    4. Payload Size: Minimizes payload overhead, especially for byte arrays, unlike JSON which adds significant overhead.

    To get started, install the protobufjs package using your preferred package manager:

    npm install protobufjs

    You can also use the protobufjs package via a CDN without installing it on your system:

    // Import the CDN
    import "https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js";
    <!-- Or include the protobufjs script -->
    <script src="https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js"></script>

    Getting started

    Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using @waku/sdk:

    GuideDescription
    Send and Receive Messages Using Light Push and FilterLearn how to send and receive messages on light nodes using the Light Push and Filter protocols
    Retrieve Messages Using Store ProtocolLearn how to retrieve and filter historical messages on light nodes using the Store protocol
    Encrypt, Decrypt, and Sign Your MessagesLearn how to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages
    Build React DApps Using @waku/reactLearn how to use the @waku/react package seamlessly integrate @waku/sdk into a React application
    Scaffold DApps Using @waku/create-appLearn how to use the @waku/create-app package to bootstrap your next @waku/sdk project from various example templates
    Bootstrap Nodes and Discover PeersLearn how to bootstrap your node using Static Peers and discover peers using DNS Discovery
    Run @waku/sdk in a NodeJS ApplicationLearn our suggested approach for using the @waku/sdk package within a NodeJS application
    Debug Your Waku DApp and WebSocketLearn how to troubleshoot your Waku DApp using debug logs and check WebSocket connections in nwaku
    Manage Your Filter SubscriptionsLearn how to manage filter subscriptions and handle node disconnections in your application
    tip

    Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.

    Get help and report issues

    To engage in general discussions, seek assistance, or stay updated with the latest news, visit the #support and #js-waku-contribute channels on the Waku Discord.

    If you discover bugs or want to suggest new features, do not hesitate to open an issue in the js-waku repository. Your feedback and contributions are highly valued and will help improve the @waku/sdk package.

    + + \ No newline at end of file diff --git a/guides/js-waku/light-send-receive/index.html b/guides/js-waku/light-send-receive/index.html index 35ddb9e..f38776c 100644 --- a/guides/js-waku/light-send-receive/index.html +++ b/guides/js-waku/light-send-receive/index.html @@ -3,19 +3,19 @@ -Send and Receive Messages Using Light Push and Filter | Waku Documentation +Send and Receive Messages Using Light Push and Filter | Waku Documentation - - - + + +

    Send and Receive Messages Using Light Push and Filter

    This guide provides detailed steps to start using the @waku/sdk package by setting up a Light Node to send messages using the Light Push protocol, and receive messages using the Filter protocol. Have a look at the installation guide for steps on adding @waku/sdk to your project.

    Create a light node

    Use the createLightNode() function to create a Light Node and interact with the Waku Network:

    import { createLightNode } from "@waku/sdk";

    // Create and start a Light Node
    const node = await createLightNode({ defaultBootstrap: true });
    await node.start();

    // Use the stop() function to stop a running node
    // await node.stop();
    info

    When the defaultBootstrap parameter is set to true, your node will be bootstrapped using the default bootstrap method. Have a look at the Bootstrap Nodes and Discover Peers guide to learn more methods to bootstrap nodes.

    A node needs to know how to route messages. By default, it will use The Waku Network configuration ({ clusterId: 1, shards: [0,1,2,3,4,5,6,7] }). For most applications, it's recommended to use autosharding:

    // Create node with auto sharding (recommended)
    const node = await createLightNode({
    defaultBootstrap: true,
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"],
    },
    });

    Alternative network configuration

    If your project requires a specific network configuration, you can use static sharding:

    // Create node with static sharding
    const node = await createLightNode({
    defaultBootstrap: true,
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3],
    },
    });

    Connect to remote peers

    Use the node.waitForPeers() function to wait for the node to connect with peers on the Waku Network:

    // Wait for a successful peer connection
    await node.waitForPeers();

    The protocols parameter allows you to specify the protocols that the remote peers should have enabled:

    import { Protocols } from "@waku/sdk";

    // Wait for peer connections with specific protocols
    await node.waitForPeers([Protocols.LightPush, Protocols.Filter]);

    Choose a content topic

    Choose a content topic for your application and create a message encoder and decoder:

    import { createEncoder, createDecoder } from "@waku/sdk";

    // Choose a content topic
    const contentTopic = "/light-guide/1/message/proto";

    // Create a message encoder and decoder
    const encoder = createEncoder({ contentTopic });
    const decoder = createDecoder(contentTopic);

    The ephemeral parameter allows you to specify whether messages should NOT be stored by Store peers:

    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    ephemeral: true, // allows messages NOT be stored on the network
    });

    The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your encoder and decoder:

    // Create the network config
    const networkConfig = { clusterId: 3, shards: [1, 2] };

    // Create encoder and decoder with custom network config
    const encoder = createEncoder({
    contentTopic: contentTopic,
    pubsubTopicShardInfo: networkConfig,
    });
    const decoder = createDecoder(contentTopic, networkConfig);
    info

    In this example, users send and receive messages on a shared content topic. However, real applications may have users broadcasting messages while others listen or only have 1:1 exchanges. Waku supports all these use cases.

    Create a message structure

    Create your application's message structure using Protobuf's valid message fields:

    import protobuf from "protobufjs";

    // Create a message structure using Protobuf
    const DataPacket = new protobuf.Type("DataPacket")
    .add(new protobuf.Field("timestamp", 1, "uint64"))
    .add(new protobuf.Field("sender", 2, "string"))
    .add(new protobuf.Field("message", 3, "string"));
    info

    Have a look at the Protobuf installation guide for adding the protobufjs package to your project.

    Send messages using light push

    To send messages over the Waku Network using the Light Push protocol, create a new message object and use the lightPush.send() function:

    // Create a new message object
    const protoMessage = DataPacket.create({
    timestamp: Date.now(),
    sender: "Alice",
    message: "Hello, World!",
    });

    // Serialise the message using Protobuf
    const serialisedMessage = DataPacket.encode(protoMessage).finish();

    // Send the message using Light Push
    await node.lightPush.send(encoder, {
    payload: serialisedMessage,
    });

    Receive messages using filter

    To receive messages using the Filter protocol, create a callback function for message processing, then use the filter.subscribe() function to subscribe to a content topic:

    // Create the callback function
    const callback = (wakuMessage) => {
    // Check if there is a payload on the message
    if (!wakuMessage.payload) return;
    // Render the messageObj as desired in your application
    const messageObj = DataPacket.decode(wakuMessage.payload);
    console.log(messageObj);
    };

    // Create a Filter subscription
    const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] });

    if (error) {
    // handle errors if happens
    throw Error(error);
    }

    // Subscribe to content topics and process new messages
    await subscription.subscribe([decoder], callback);

    The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your Filter subscription:

    // Create the network config
    const networkConfig = { clusterId: 3, shards: [1, 2] };

    // Create Filter subscription with custom network config
    const subscription = await node.filter.createSubscription(networkConfig);

    You can use the subscription.unsubscribe() function to stop receiving messages from a content topic:

    await subscription.unsubscribe([contentTopic]);
    Congratulations!

    You have successfully sent and received messages over the Waku Network using the Light Push and Filter protocols. Have a look at the light-js and light-chat examples for working demos.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Send and Receive Messages Using Light Push and Filter

    This guide provides detailed steps to start using the @waku/sdk package by setting up a Light Node to send messages using the Light Push protocol, and receive messages using the Filter protocol. Have a look at the installation guide for steps on adding @waku/sdk to your project.

    Create a light node

    Use the createLightNode() function to create a Light Node and interact with the Waku Network:

    import { createLightNode } from "@waku/sdk";

    // Create and start a Light Node
    const node = await createLightNode({ defaultBootstrap: true });
    await node.start();

    // Use the stop() function to stop a running node
    // await node.stop();
    info

    When the defaultBootstrap parameter is set to true, your node will be bootstrapped using the default bootstrap method. Have a look at the Bootstrap Nodes and Discover Peers guide to learn more methods to bootstrap nodes.

    A node needs to know how to route messages. By default, it will use The Waku Network configuration ({ clusterId: 1, shards: [0,1,2,3,4,5,6,7] }). For most applications, it's recommended to use autosharding:

    // Create node with auto sharding (recommended)
    const node = await createLightNode({
    defaultBootstrap: true,
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"],
    },
    });

    Alternative network configuration

    If your project requires a specific network configuration, you can use static sharding:

    // Create node with static sharding
    const node = await createLightNode({
    defaultBootstrap: true,
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3],
    },
    });

    Connect to remote peers

    Use the node.waitForPeers() function to wait for the node to connect with peers on the Waku Network:

    // Wait for a successful peer connection
    await node.waitForPeers();

    The protocols parameter allows you to specify the protocols that the remote peers should have enabled:

    import { Protocols } from "@waku/sdk";

    // Wait for peer connections with specific protocols
    await node.waitForPeers([Protocols.LightPush, Protocols.Filter]);

    Choose a content topic

    Choose a content topic for your application and create a message encoder and decoder:

    import { createEncoder, createDecoder } from "@waku/sdk";

    // Choose a content topic
    const contentTopic = "/light-guide/1/message/proto";

    // Create a message encoder and decoder
    const encoder = createEncoder({ contentTopic });
    const decoder = createDecoder(contentTopic);

    The ephemeral parameter allows you to specify whether messages should NOT be stored by Store peers:

    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    ephemeral: true, // allows messages NOT be stored on the network
    });

    The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your encoder and decoder:

    // Create the network config
    const networkConfig = { clusterId: 3, shards: [1, 2] };

    // Create encoder and decoder with custom network config
    const encoder = createEncoder({
    contentTopic: contentTopic,
    pubsubTopicShardInfo: networkConfig,
    });
    const decoder = createDecoder(contentTopic, networkConfig);
    info

    In this example, users send and receive messages on a shared content topic. However, real applications may have users broadcasting messages while others listen or only have 1:1 exchanges. Waku supports all these use cases.

    Create a message structure

    Create your application's message structure using Protobuf's valid message fields:

    import protobuf from "protobufjs";

    // Create a message structure using Protobuf
    const DataPacket = new protobuf.Type("DataPacket")
    .add(new protobuf.Field("timestamp", 1, "uint64"))
    .add(new protobuf.Field("sender", 2, "string"))
    .add(new protobuf.Field("message", 3, "string"));
    info

    Have a look at the Protobuf installation guide for adding the protobufjs package to your project.

    Send messages using light push

    To send messages over the Waku Network using the Light Push protocol, create a new message object and use the lightPush.send() function:

    // Create a new message object
    const protoMessage = DataPacket.create({
    timestamp: Date.now(),
    sender: "Alice",
    message: "Hello, World!",
    });

    // Serialise the message using Protobuf
    const serialisedMessage = DataPacket.encode(protoMessage).finish();

    // Send the message using Light Push
    await node.lightPush.send(encoder, {
    payload: serialisedMessage,
    });

    Receive messages using filter

    To receive messages using the Filter protocol, create a callback function for message processing, then use the filter.subscribe() function to subscribe to a content topic:

    // Create the callback function
    const callback = (wakuMessage) => {
    // Check if there is a payload on the message
    if (!wakuMessage.payload) return;
    // Render the messageObj as desired in your application
    const messageObj = DataPacket.decode(wakuMessage.payload);
    console.log(messageObj);
    };

    // Create a Filter subscription
    const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] });

    if (error) {
    // handle errors if happens
    throw Error(error);
    }

    // Subscribe to content topics and process new messages
    await subscription.subscribe([decoder], callback);

    The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your Filter subscription:

    // Create the network config
    const networkConfig = { clusterId: 3, shards: [1, 2] };

    // Create Filter subscription with custom network config
    const subscription = await node.filter.createSubscription(networkConfig);

    You can use the subscription.unsubscribe() function to stop receiving messages from a content topic:

    await subscription.unsubscribe([contentTopic]);
    Congratulations!

    You have successfully sent and received messages over the Waku Network using the Light Push and Filter protocols. Have a look at the light-js and light-chat examples for working demos.

    + + \ No newline at end of file diff --git a/guides/js-waku/manage-filter/index.html b/guides/js-waku/manage-filter/index.html index 27d3246..df64391 100644 --- a/guides/js-waku/manage-filter/index.html +++ b/guides/js-waku/manage-filter/index.html @@ -3,19 +3,19 @@ -Manage Your Filter Subscriptions | Waku Documentation +Manage Your Filter Subscriptions | Waku Documentation - - - + + +

    Manage Your Filter Subscriptions

    This guide provides detailed steps to manage Filter subscriptions and handle node disconnections in your application. Have a look at the Send and Receive Messages Using Light Push and Filter guide for using the Light Push and Filter protocols.

    Overview

    Occasionally, your Filter subscriptions might disconnect from the Waku Network, resulting in messages not being received by your application. To manage your subscriptions, periodically ping peers to check for an active connection. The error message "peer has no subscriptions" indicates a failed ping due to disconnection. You can stop the pings if the disconnection/unsubscription is deliberate.

    Pinging filter subscriptions

    The @waku/sdk package provides a Filter.ping() function to ping subscriptions and check for an active connection. To begin, create a Filter subscription:

    // Create a Filter subscription
    const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] });

    if (error) {
    // handle errors if happens
    throw Error(error);
    }

    // Subscribe to content topics and process new messages
    await subscription.subscribe([decoder], callback);

    Next, create a function to ping and reinitiate the subscription:

    const pingAndReinitiateSubscription = async () => {
    try {
    // Ping the subscription
    await subscription.ping();
    } catch (error) {
    if (
    // Check if the error message includes "peer has no subscriptions"
    error instanceof Error &&
    error.message.includes("peer has no subscriptions")
    ) {
    // Reinitiate the subscription if the ping fails
    await subscription.subscribe([decoder], callback);
    } else {
    throw error;
    }
    }
    };

    // Periodically ping the subscription
    await pingAndReinitiateSubscription();
    info

    Pings will fail when there are temporary network degradations or reachability issues. This does not mean that the underlying connection has been closed.

    Congratulations!

    You have successfully managed your Filter subscriptions to handle node disconnections in your application.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Manage Your Filter Subscriptions

    This guide provides detailed steps to manage Filter subscriptions and handle node disconnections in your application. Have a look at the Send and Receive Messages Using Light Push and Filter guide for using the Light Push and Filter protocols.

    Overview

    Occasionally, your Filter subscriptions might disconnect from the Waku Network, resulting in messages not being received by your application. To manage your subscriptions, periodically ping peers to check for an active connection. The error message "peer has no subscriptions" indicates a failed ping due to disconnection. You can stop the pings if the disconnection/unsubscription is deliberate.

    Pinging filter subscriptions

    The @waku/sdk package provides a Filter.ping() function to ping subscriptions and check for an active connection. To begin, create a Filter subscription:

    // Create a Filter subscription
    const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] });

    if (error) {
    // handle errors if happens
    throw Error(error);
    }

    // Subscribe to content topics and process new messages
    await subscription.subscribe([decoder], callback);

    Next, create a function to ping and reinitiate the subscription:

    const pingAndReinitiateSubscription = async () => {
    try {
    // Ping the subscription
    await subscription.ping();
    } catch (error) {
    if (
    // Check if the error message includes "peer has no subscriptions"
    error instanceof Error &&
    error.message.includes("peer has no subscriptions")
    ) {
    // Reinitiate the subscription if the ping fails
    await subscription.subscribe([decoder], callback);
    } else {
    throw error;
    }
    }
    };

    // Periodically ping the subscription
    await pingAndReinitiateSubscription();
    info

    Pings will fail when there are temporary network degradations or reachability issues. This does not mean that the underlying connection has been closed.

    Congratulations!

    You have successfully managed your Filter subscriptions to handle node disconnections in your application.

    + + \ No newline at end of file diff --git a/guides/js-waku/message-encryption/index.html b/guides/js-waku/message-encryption/index.html index 2105c96..d9e2ccc 100644 --- a/guides/js-waku/message-encryption/index.html +++ b/guides/js-waku/message-encryption/index.html @@ -3,19 +3,19 @@ -Encrypt, Decrypt, and Sign Your Messages | Waku Documentation +Encrypt, Decrypt, and Sign Your Messages | Waku Documentation - - - + + +

    Encrypt, Decrypt, and Sign Your Messages

    This guide provides detailed steps to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages using Waku message payload encryption methods.

    info

    Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to freely use custom protocols or Waku message payload encryption methods.

    Installation

    Install the required packages for integrating @waku/message-encryption using your preferred package manager:

    npm install @waku/message-encryption @waku/utils

    Symmetric encryption

    Symmetric encryption uses a single, shared key for message encryption and decryption. Use the generateSymmetricKey() function to generate a random symmetric key:

    import { generateSymmetricKey } from "@waku/message-encryption";

    // Generate a random symmetric key
    const symmetricKey = generateSymmetricKey();

    To send encrypted messages, create a Symmetric message encoder and send the message as usual:

    Sender client
    import { createEncoder } from "@waku/message-encryption/symmetric";

    // Create a symmetric message encoder
    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    symKey: symmetricKey, // symmetric key for encrypting messages
    });

    // Send the message using Light Push
    await node.lightPush.send(encoder, { payload });

    To decrypt the messages you receive, create a symmetric message decoder and process the messages as usual:

    Receiver client
    import { createDecoder } from "@waku/message-encryption/symmetric";

    // Create a symmetric message decoder
    const decoder = createDecoder(contentTopic, symmetricKey);

    // Receive messages from a Filter subscription
    await subscription.subscribe([decoder], callback);

    // Retrieve messages from Store peers
    await node.store.queryWithOrderedCallback([decoder], callback);
    tip

    The symmetric key exchange between users can happen through an out-of-band method. For example, where the key is embedded within the URL shared by a user to access a specific resource.

    ECIES encryption

    ECIES encryption uses a public key for encryption and a private key for decryption. Use the generatePrivateKey() function to generate a random ECDSA private key:

    import { generatePrivateKey, getPublicKey } from "@waku/message-encryption";

    // Generate a random ECDSA private key, keep secure
    const privateKey = generatePrivateKey();

    // Generate a public key from the private key, provide to the sender
    const publicKey = getPublicKey(privateKey);

    To send encrypted messages, create an ECIES message encoder with the public key and send the message as usual:

    Sender client
    import { createEncoder } from "@waku/message-encryption/ecies";

    // Create an ECIES message encoder
    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    publicKey: publicKey, // ECIES public key for encrypting messages
    });

    // Send the message using Light Push
    await node.lightPush.send(encoder, { payload });

    To decrypt the messages you receive, create an ECIES message decoder with the private key and process the messages as usual:

    Receiver client
    import { createDecoder } from "@waku/message-encryption/ecies";

    // Create an ECIES message decoder
    const decoder = createDecoder(contentTopic, privateKey);

    // Receive messages from a Filter subscription
    await subscription.subscribe([decoder], callback);

    // Retrieve messages from Store peers
    await node.store.queryWithOrderedCallback([decoder], callback);
    tip

    Users can share their public key through broadcasting or out-of-band methods, such as embedding it in a URL or sending an unencrypted message on another content topic for others to retrieve.

    Signing encrypted messages

    Message signing helps in proving the authenticity of received messages. By attaching a signature to a message, you can verify its origin and integrity with absolute certainty.

    info

    Signing messages is only possible when encrypted, but if your application does not require encryption, you can generate a symmetric key through hardcoded or deterministic methods using information available to all users.

    The sigPrivKey parameter allows the Symmetric and ECIES message encoders to sign the message before encryption using an ECDSA private key:

    Alice (sender) client
    import { generatePrivateKey, getPublicKey } from "@waku/message-encryption";
    import { createEncoder as createSymmetricEncoder } from "@waku/message-encryption/symmetric";
    import { createEncoder as createECIESEncoder } from "@waku/message-encryption/ecies";

    // Generate a random ECDSA private key for signing messages
    // ECIES encryption and message signing both use ECDSA keys
    // For this example, we'll call the sender of the message Alice
    const alicePrivateKey = generatePrivateKey();
    const alicePublicKey = getPublicKey(alicePrivateKey);

    // Create a symmetric encoder that signs messages
    const symmetricEncoder = createSymmetricEncoder({
    contentTopic: contentTopic, // message content topic
    symKey: symmetricKey, // symmetric key for encrypting messages
    sigPrivKey: alicePrivateKey, // private key for signing messages before encryption
    });

    // Create an ECIES encoder that signs messages
    const ECIESEncoder = createECIESEncoder({
    contentTopic: contentTopic, // message content topic
    publicKey: publicKey, // ECIES public key for encrypting messages
    sigPrivKey: alicePrivateKey, // private key for signing messages before encryption
    });

    // Send and receive your messages as usual with Light Push and Filter
    await subscription.subscribe([symmetricEncoder], callback);
    await node.lightPush.send(symmetricEncoder, { payload });

    await subscription.subscribe([ECIESEncoder], callback);
    await node.lightPush.send(ECIESEncoder, { payload });

    You can extract the signature and its public key (signaturePublicKey) from the DecodedMessage and compare it with the expected public key or use the verifySignature() function to verify the message origin:

    Bob (receiver) client
    import { generatePrivateKey } from "@waku/message-encryption";
    import { createEncoder } from "@waku/message-encryption/symmetric";

    // Generate a random private key for signing messages
    // For this example, we'll call the receiver of the message Bob
    const bobPrivateKey = generatePrivateKey();

    // Create an encoder that signs messages
    const encoder = createEncoder({
    contentTopic: contentTopic,
    symKey: symmetricKey,
    sigPrivKey: bobPrivateKey,
    });

    // Modify the callback function to verify message signature
    const callback = (wakuMessage) => {
    // Extract the message signature and public key of the signature
    // You can compare the signaturePublicKey with Alice public key
    const signature = wakuMessage.signature;
    const signaturePublicKey = wakuMessage.signaturePublicKey;

    // Verify the message was actually signed and sent by Alice
    // Alice's public key can be gotten from broadcasting or out-of-band methods
    if (wakuMessage.verifySignature(alicePublicKey)) {
    console.log("This message was signed by Alice");
    } else {
    console.log("This message was NOT signed by Alice");
    }
    };

    await subscription.subscribe([encoder], callback);

    Storing encryption keys

    We used randomly generated keys for encryption and message signing in the provided examples, but real-world applications require consistent keys among client restarts. Have a look at the Key Pair Handling example, which demonstrates the secure storage and retrieval of key information from local storage using Subtle Crypto.

    If you need a simple way to store your keys in hexadecimal format across your application, you can use the @waku/utils package:

    import { bytesToHex, hexToBytes } from "@waku/utils/bytes";

    // Generate random symmetric and private keys
    const symmetricKey = generateSymmetricKey();
    const privateKey = generatePrivateKey();

    // Store the keys in hexadecimal format
    const symmetricKeyHex = bytesToHex(symmetricKey);
    const privateKeyHex = bytesToHex(privateKey);

    // Restore the keys from hexadecimal format
    const restoredSymmetricKey = hexToBytes(symmetricKeyHex);
    const restoredPrivateKey = hexToBytes(privateKeyHex);
    Congratulations!

    You have successfully encrypted, decrypted, and signed your messages using Symmetric and ECIES encryption methods. Have a look at the eth-pm example for a working demo.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Encrypt, Decrypt, and Sign Your Messages

    This guide provides detailed steps to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages using Waku message payload encryption methods.

    info

    Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to freely use custom protocols or Waku message payload encryption methods.

    Installation

    Install the required packages for integrating @waku/message-encryption using your preferred package manager:

    npm install @waku/message-encryption @waku/utils

    Symmetric encryption

    Symmetric encryption uses a single, shared key for message encryption and decryption. Use the generateSymmetricKey() function to generate a random symmetric key:

    import { generateSymmetricKey } from "@waku/message-encryption";

    // Generate a random symmetric key
    const symmetricKey = generateSymmetricKey();

    To send encrypted messages, create a Symmetric message encoder and send the message as usual:

    Sender client
    import { createEncoder } from "@waku/message-encryption/symmetric";

    // Create a symmetric message encoder
    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    symKey: symmetricKey, // symmetric key for encrypting messages
    });

    // Send the message using Light Push
    await node.lightPush.send(encoder, { payload });

    To decrypt the messages you receive, create a symmetric message decoder and process the messages as usual:

    Receiver client
    import { createDecoder } from "@waku/message-encryption/symmetric";

    // Create a symmetric message decoder
    const decoder = createDecoder(contentTopic, symmetricKey);

    // Receive messages from a Filter subscription
    await subscription.subscribe([decoder], callback);

    // Retrieve messages from Store peers
    await node.store.queryWithOrderedCallback([decoder], callback);
    tip

    The symmetric key exchange between users can happen through an out-of-band method. For example, where the key is embedded within the URL shared by a user to access a specific resource.

    ECIES encryption

    ECIES encryption uses a public key for encryption and a private key for decryption. Use the generatePrivateKey() function to generate a random ECDSA private key:

    import { generatePrivateKey, getPublicKey } from "@waku/message-encryption";

    // Generate a random ECDSA private key, keep secure
    const privateKey = generatePrivateKey();

    // Generate a public key from the private key, provide to the sender
    const publicKey = getPublicKey(privateKey);

    To send encrypted messages, create an ECIES message encoder with the public key and send the message as usual:

    Sender client
    import { createEncoder } from "@waku/message-encryption/ecies";

    // Create an ECIES message encoder
    const encoder = createEncoder({
    contentTopic: contentTopic, // message content topic
    publicKey: publicKey, // ECIES public key for encrypting messages
    });

    // Send the message using Light Push
    await node.lightPush.send(encoder, { payload });

    To decrypt the messages you receive, create an ECIES message decoder with the private key and process the messages as usual:

    Receiver client
    import { createDecoder } from "@waku/message-encryption/ecies";

    // Create an ECIES message decoder
    const decoder = createDecoder(contentTopic, privateKey);

    // Receive messages from a Filter subscription
    await subscription.subscribe([decoder], callback);

    // Retrieve messages from Store peers
    await node.store.queryWithOrderedCallback([decoder], callback);
    tip

    Users can share their public key through broadcasting or out-of-band methods, such as embedding it in a URL or sending an unencrypted message on another content topic for others to retrieve.

    Signing encrypted messages

    Message signing helps in proving the authenticity of received messages. By attaching a signature to a message, you can verify its origin and integrity with absolute certainty.

    info

    Signing messages is only possible when encrypted, but if your application does not require encryption, you can generate a symmetric key through hardcoded or deterministic methods using information available to all users.

    The sigPrivKey parameter allows the Symmetric and ECIES message encoders to sign the message before encryption using an ECDSA private key:

    Alice (sender) client
    import { generatePrivateKey, getPublicKey } from "@waku/message-encryption";
    import { createEncoder as createSymmetricEncoder } from "@waku/message-encryption/symmetric";
    import { createEncoder as createECIESEncoder } from "@waku/message-encryption/ecies";

    // Generate a random ECDSA private key for signing messages
    // ECIES encryption and message signing both use ECDSA keys
    // For this example, we'll call the sender of the message Alice
    const alicePrivateKey = generatePrivateKey();
    const alicePublicKey = getPublicKey(alicePrivateKey);

    // Create a symmetric encoder that signs messages
    const symmetricEncoder = createSymmetricEncoder({
    contentTopic: contentTopic, // message content topic
    symKey: symmetricKey, // symmetric key for encrypting messages
    sigPrivKey: alicePrivateKey, // private key for signing messages before encryption
    });

    // Create an ECIES encoder that signs messages
    const ECIESEncoder = createECIESEncoder({
    contentTopic: contentTopic, // message content topic
    publicKey: publicKey, // ECIES public key for encrypting messages
    sigPrivKey: alicePrivateKey, // private key for signing messages before encryption
    });

    // Send and receive your messages as usual with Light Push and Filter
    await subscription.subscribe([symmetricEncoder], callback);
    await node.lightPush.send(symmetricEncoder, { payload });

    await subscription.subscribe([ECIESEncoder], callback);
    await node.lightPush.send(ECIESEncoder, { payload });

    You can extract the signature and its public key (signaturePublicKey) from the DecodedMessage and compare it with the expected public key or use the verifySignature() function to verify the message origin:

    Bob (receiver) client
    import { generatePrivateKey } from "@waku/message-encryption";
    import { createEncoder } from "@waku/message-encryption/symmetric";

    // Generate a random private key for signing messages
    // For this example, we'll call the receiver of the message Bob
    const bobPrivateKey = generatePrivateKey();

    // Create an encoder that signs messages
    const encoder = createEncoder({
    contentTopic: contentTopic,
    symKey: symmetricKey,
    sigPrivKey: bobPrivateKey,
    });

    // Modify the callback function to verify message signature
    const callback = (wakuMessage) => {
    // Extract the message signature and public key of the signature
    // You can compare the signaturePublicKey with Alice public key
    const signature = wakuMessage.signature;
    const signaturePublicKey = wakuMessage.signaturePublicKey;

    // Verify the message was actually signed and sent by Alice
    // Alice's public key can be gotten from broadcasting or out-of-band methods
    if (wakuMessage.verifySignature(alicePublicKey)) {
    console.log("This message was signed by Alice");
    } else {
    console.log("This message was NOT signed by Alice");
    }
    };

    await subscription.subscribe([encoder], callback);

    Storing encryption keys

    We used randomly generated keys for encryption and message signing in the provided examples, but real-world applications require consistent keys among client restarts. Have a look at the Key Pair Handling example, which demonstrates the secure storage and retrieval of key information from local storage using Subtle Crypto.

    If you need a simple way to store your keys in hexadecimal format across your application, you can use the @waku/utils package:

    import { bytesToHex, hexToBytes } from "@waku/utils/bytes";

    // Generate random symmetric and private keys
    const symmetricKey = generateSymmetricKey();
    const privateKey = generatePrivateKey();

    // Store the keys in hexadecimal format
    const symmetricKeyHex = bytesToHex(symmetricKey);
    const privateKeyHex = bytesToHex(privateKey);

    // Restore the keys from hexadecimal format
    const restoredSymmetricKey = hexToBytes(symmetricKeyHex);
    const restoredPrivateKey = hexToBytes(privateKeyHex);
    Congratulations!

    You have successfully encrypted, decrypted, and signed your messages using Symmetric and ECIES encryption methods. Have a look at the eth-pm example for a working demo.

    + + \ No newline at end of file diff --git a/guides/js-waku/run-waku-nodejs/index.html b/guides/js-waku/run-waku-nodejs/index.html index 4007488..ce7ed5a 100644 --- a/guides/js-waku/run-waku-nodejs/index.html +++ b/guides/js-waku/run-waku-nodejs/index.html @@ -3,19 +3,19 @@ -Run @waku/sdk in a NodeJS Application | Waku Documentation +Run @waku/sdk in a NodeJS Application | Waku Documentation - - - + + +

    Run @waku/sdk in a NodeJS Application

    While the @waku/sdk package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using @waku/sdk in NodeJS.

    Limitations

    API compatibility

    @waku/sdk prioritises browser compatibility, avoiding NodeJS APIs for simpler bundling. This design choice enhances browser API compatibility but sacrifices NodeJS optimisation. While many browser APIs work in NodeJS, they might need better optimisation.

    Protocol implementation

    @waku/sdk focuses on the client side of the Request/Response protocol. We'll have to replicate all the functionalities added to nwaku to implement extra features.

    Codebase complexity

    @waku/sdk aims to provide optimal default for the browser, striking a balance between browser and NodeJS compatibility while ensuring simplicity will add complexity.

    Browser-specific protocols

    Certain features in @waku/sdk are tailored for browsers and might not translate seamlessly to NodeJS. For example, only WebSocket is supported in the browser, whereas a NodeJS application can benefit from using transport methods like TCP.

    @waku/sdk default peer management caters to the browser's ephemeral nature, which is different for NodeJS. This is why DNS Discovery and Peer Exchange are the default discovery mechanisms for the browser but not for NodeJS and desktop applications.

    Recommendations

    Before using @waku/sdk in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend running nwaku in a Docker container and consuming its REST API.

    Future developments

    There are plans to release a NodeJS package based on nwaku to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: https://github.com/waku-org/nwaku/issues/1332.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Run @waku/sdk in a NodeJS Application

    While the @waku/sdk package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using @waku/sdk in NodeJS.

    Limitations

    API compatibility

    @waku/sdk prioritises browser compatibility, avoiding NodeJS APIs for simpler bundling. This design choice enhances browser API compatibility but sacrifices NodeJS optimisation. While many browser APIs work in NodeJS, they might need better optimisation.

    Protocol implementation

    @waku/sdk focuses on the client side of the Request/Response protocol. We'll have to replicate all the functionalities added to nwaku to implement extra features.

    Codebase complexity

    @waku/sdk aims to provide optimal default for the browser, striking a balance between browser and NodeJS compatibility while ensuring simplicity will add complexity.

    Browser-specific protocols

    Certain features in @waku/sdk are tailored for browsers and might not translate seamlessly to NodeJS. For example, only WebSocket is supported in the browser, whereas a NodeJS application can benefit from using transport methods like TCP.

    @waku/sdk default peer management caters to the browser's ephemeral nature, which is different for NodeJS. This is why DNS Discovery and Peer Exchange are the default discovery mechanisms for the browser but not for NodeJS and desktop applications.

    Recommendations

    Before using @waku/sdk in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend running nwaku in a Docker container and consuming its REST API.

    Future developments

    There are plans to release a NodeJS package based on nwaku to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: https://github.com/waku-org/nwaku/issues/1332.

    + + \ No newline at end of file diff --git a/guides/js-waku/store-retrieve-messages/index.html b/guides/js-waku/store-retrieve-messages/index.html index bbf5e12..b238379 100644 --- a/guides/js-waku/store-retrieve-messages/index.html +++ b/guides/js-waku/store-retrieve-messages/index.html @@ -3,19 +3,19 @@ -Retrieve Messages Using Store Protocol | Waku Documentation +Retrieve Messages Using Store Protocol | Waku Documentation - - - + + +

    Retrieve Messages Using Store Protocol

    This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the Store protocol.

    Create a light node

    Use the createLightNode() function to create a Light Node and interact with the Waku Network:

    import { createLightNode } from "@waku/sdk";

    // Create and start a Light Node
    const node = await createLightNode({ defaultBootstrap: true });
    await node.start();

    Connect to store peers

    Use the node.waitForPeers() method to wait for the node to connect with Store peers:

    import { Protocols } from "@waku/sdk";

    // Wait for a successful peer connection
    await node.waitForPeers([Protocols.Store]);

    You can also specify a dedicated Store peer to use for queries when creating the node. This is particularly useful when running your own Store node or when you want to use a specific Store node in the network:

    const node = await createLightNode({ 
    defaultBootstrap: true,
    store: {
    peer: "/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm..." // multiaddr or PeerId of your Store node
    }
    });

    If the specified Store peer is not available, the node will fall back to using random Store peers in the network.

    Choose a content topic

    Choose a content topic for filtering the messages to retrieve and create a message decoder:

    import { createDecoder } from "@waku/sdk";

    // Choose a content topic
    const contentTopic = "/store-guide/1/message/proto";

    // Create a message decoder
    const decoder = createDecoder(contentTopic);

    Retrieve messages

    @waku/sdk provides the queryWithOrderedCallback() and queryGenerator() functions for querying Store nodes and retrieving historical or missed messages. The responses from Store nodes are paginated and require you to process each page sequentially.

    queryWithOrderedCallback

    The store.queryWithOrderedCallback() function provides a straightforward method for querying Store nodes and processing messages in chronological order through a callback function. It accepts these parameters:

    • decoders: List of decoders that specify the content topic to query for and their message decryption methods.
    • callback: The callback function for processing the retrieved messages.
    • options (optional): Query options to filter the retrieved messages.
    // Create the callback function
    const callback = (wakuMessage) => {
    // Render the message/payload in your application
    console.log(wakuMessage);
    };

    // Query the Store peer
    await node.store.queryWithOrderedCallback([decoder], callback);
    info

    The queryWithOrderedCallback() function always returns the most recent messages in a page first.

    queryGenerator

    The store.queryGenerator() function provides more control and flexibility over processing messages retrieved from Store nodes through Async Generators. It accepts these parameters:

    • decoders: List of decoders that specify the content topic to query for and their message decryption methods.
    • options (optional): Query options to filter the retrieved messages.
    // Create the store query
    const storeQuery = node.store.queryGenerator([decoder]);

    // Process the messages
    for await (const messagesPromises of storeQuery) {
    // Fulfil the messages promises
    const messages = await Promise.all(
    messagesPromises.map(async (p) => {
    const msg = await p;
    // Render the message/payload in your application
    console.log(msg);
    })
    );
    }
    info

    The queryGenerator() function always returns the oldest messages in a page first.

    Store query options

    pageDirection

    The pageDirection option specifies the direction in which pages are retrieved:

    • BACKWARD (default): Most recent page first.
    • FORWARD: Oldest page first.
    import { PageDirection } from "@waku/sdk";

    // Retrieve recent messages first
    const queryOptions = {
    pageDirection: PageDirection.BACKWARD,
    };

    // Retrieve oldest messages first
    const queryOptions = {
    pageDirection: PageDirection.FORWARD,
    };

    // Query the Store peer with options
    await node.store.queryWithOrderedCallback([decoder], callback, options);
    const storeQuery = node.store.queryGenerator([decoder, options]);

    cursor

    The cursor option specifies the starting index for retrieving messages. For example, consider a query that retrieves the first page messages and then continues with the next page:

    import { waku } from "@waku/sdk";

    // Create the callback function
    const messages = [];
    const callback = (wakuMessage) => {
    messages.push(wakuMessage);
    // Return "true" to stop retrieving pages
    // Here, it retrieves only the first page
    return true;
    };

    // Retrieve the first page of messages
    // This retrieves all the messages if "return true" is not present
    await node.store.queryWithOrderedCallback([decoder], callback);

    // Create the cursor
    const lastMessage = messages[messages.length - 1];
    const cursor = await waku.createCursor(lastMessage);

    // Retrieve the next page of messages
    // The message at the cursor index is excluded from the result
    await node.store.queryWithOrderedCallback([decoder], callback, {
    cursor: cursor,
    });
    console.log(messages);
    info

    If you omit the cursor option, the query will start from the beginning or end of the history, depending on the page direction.

    timeFilter

    The timeFilter option specifies a time frame to retrieve messages from. For example, consider a query that retrieves messages from the previous week:

    // Get the time frame
    const endTime = new Date();
    const startTime = new Date();
    startTime.setDate(endTime.getDate() - 7);

    // Retrieve a week of messages
    const queryOptions = {
    timeFilter: {
    startTime,
    endTime,
    },
    };

    // Query the Store peer with options
    await node.store.queryWithOrderedCallback([decoder], callback, options);
    const storeQuery = node.store.queryGenerator([decoder, options]);
    info

    The timeFilter option significantly reduces message retrieval performance. To optimise it, consider resuming message retrieval using a cursor that starts from the last seen message.

    Congratulations!

    You have successfully retrieved and filtered historical messages on a Light Node using the Store protocol. Have a look at the store-js and store-reactjs-chat examples for working demos.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Retrieve Messages Using Store Protocol

    This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the Store protocol.

    Create a light node

    Use the createLightNode() function to create a Light Node and interact with the Waku Network:

    import { createLightNode } from "@waku/sdk";

    // Create and start a Light Node
    const node = await createLightNode({ defaultBootstrap: true });
    await node.start();

    Connect to store peers

    Use the node.waitForPeers() method to wait for the node to connect with Store peers:

    import { Protocols } from "@waku/sdk";

    // Wait for a successful peer connection
    await node.waitForPeers([Protocols.Store]);

    You can also specify a dedicated Store peer to use for queries when creating the node. This is particularly useful when running your own Store node or when you want to use a specific Store node in the network:

    const node = await createLightNode({ 
    defaultBootstrap: true,
    store: {
    peer: "/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm..." // multiaddr or PeerId of your Store node
    }
    });

    If the specified Store peer is not available, the node will fall back to using random Store peers in the network.

    Choose a content topic

    Choose a content topic for filtering the messages to retrieve and create a message decoder:

    import { createDecoder } from "@waku/sdk";

    // Choose a content topic
    const contentTopic = "/store-guide/1/message/proto";

    // Create a message decoder
    const decoder = createDecoder(contentTopic);

    Retrieve messages

    @waku/sdk provides the queryWithOrderedCallback() and queryGenerator() functions for querying Store nodes and retrieving historical or missed messages. The responses from Store nodes are paginated and require you to process each page sequentially.

    queryWithOrderedCallback

    The store.queryWithOrderedCallback() function provides a straightforward method for querying Store nodes and processing messages in chronological order through a callback function. It accepts these parameters:

    • decoders: List of decoders that specify the content topic to query for and their message decryption methods.
    • callback: The callback function for processing the retrieved messages.
    • options (optional): Query options to filter the retrieved messages.
    // Create the callback function
    const callback = (wakuMessage) => {
    // Render the message/payload in your application
    console.log(wakuMessage);
    };

    // Query the Store peer
    await node.store.queryWithOrderedCallback([decoder], callback);
    info

    The queryWithOrderedCallback() function always returns the most recent messages in a page first.

    queryGenerator

    The store.queryGenerator() function provides more control and flexibility over processing messages retrieved from Store nodes through Async Generators. It accepts these parameters:

    • decoders: List of decoders that specify the content topic to query for and their message decryption methods.
    • options (optional): Query options to filter the retrieved messages.
    // Create the store query
    const storeQuery = node.store.queryGenerator([decoder]);

    // Process the messages
    for await (const messagesPromises of storeQuery) {
    // Fulfil the messages promises
    const messages = await Promise.all(
    messagesPromises.map(async (p) => {
    const msg = await p;
    // Render the message/payload in your application
    console.log(msg);
    })
    );
    }
    info

    The queryGenerator() function always returns the oldest messages in a page first.

    Store query options

    pageDirection

    The pageDirection option specifies the direction in which pages are retrieved:

    • BACKWARD (default): Most recent page first.
    • FORWARD: Oldest page first.
    import { PageDirection } from "@waku/sdk";

    // Retrieve recent messages first
    const queryOptions = {
    pageDirection: PageDirection.BACKWARD,
    };

    // Retrieve oldest messages first
    const queryOptions = {
    pageDirection: PageDirection.FORWARD,
    };

    // Query the Store peer with options
    await node.store.queryWithOrderedCallback([decoder], callback, options);
    const storeQuery = node.store.queryGenerator([decoder, options]);

    cursor

    The cursor option specifies the starting index for retrieving messages. For example, consider a query that retrieves the first page messages and then continues with the next page:

    import { waku } from "@waku/sdk";

    // Create the callback function
    const messages = [];
    const callback = (wakuMessage) => {
    messages.push(wakuMessage);
    // Return "true" to stop retrieving pages
    // Here, it retrieves only the first page
    return true;
    };

    // Retrieve the first page of messages
    // This retrieves all the messages if "return true" is not present
    await node.store.queryWithOrderedCallback([decoder], callback);

    // Create the cursor
    const lastMessage = messages[messages.length - 1];
    const cursor = await waku.createCursor(lastMessage);

    // Retrieve the next page of messages
    // The message at the cursor index is excluded from the result
    await node.store.queryWithOrderedCallback([decoder], callback, {
    cursor: cursor,
    });
    console.log(messages);
    info

    If you omit the cursor option, the query will start from the beginning or end of the history, depending on the page direction.

    timeFilter

    The timeFilter option specifies a time frame to retrieve messages from. For example, consider a query that retrieves messages from the previous week:

    // Get the time frame
    const endTime = new Date();
    const startTime = new Date();
    startTime.setDate(endTime.getDate() - 7);

    // Retrieve a week of messages
    const queryOptions = {
    timeFilter: {
    startTime,
    endTime,
    },
    };

    // Query the Store peer with options
    await node.store.queryWithOrderedCallback([decoder], callback, options);
    const storeQuery = node.store.queryGenerator([decoder, options]);
    info

    The timeFilter option significantly reduces message retrieval performance. To optimise it, consider resuming message retrieval using a cursor that starts from the last seen message.

    Congratulations!

    You have successfully retrieved and filtered historical messages on a Light Node using the Store protocol. Have a look at the store-js and store-reactjs-chat examples for working demos.

    + + \ No newline at end of file diff --git a/guides/js-waku/use-waku-create-app/index.html b/guides/js-waku/use-waku-create-app/index.html index f441cfd..c1b487a 100644 --- a/guides/js-waku/use-waku-create-app/index.html +++ b/guides/js-waku/use-waku-create-app/index.html @@ -3,19 +3,19 @@ -Scaffold DApps Using @waku/create-app | Waku Documentation +Scaffold DApps Using @waku/create-app | Waku Documentation - - - + + +

    Scaffold DApps Using @waku/create-app

    This guide provides detailed steps to bootstrap your next @waku/sdk project from various example templates using the @waku/create-app package.

    Usage

    Initialise a new @waku/sdk template using any of the following methods:

    npx @waku/create-app [PROJECT DIRECTORY]

    Next, select a template to initialise your app from:

    waku create app demo

    tip

    If you have previously installed @waku/create-app globally, we recommend uninstalling the package to ensure that npx always uses the latest version.

    Contributing new templates

    We welcome and appreciate the contributions of templates for the @waku/create-app package. To contribute a template, please follow these steps:

    1. Create the template, ensuring it is user-friendly and thoroughly tested.
    2. Place the template in the examples folder in the js-waku-examples repository's root.
    3. Commit your changes with a detailed message and push them to your forked repository.
    4. Finally, submit a pull request to the js-waku-examples repository.
    5. Our team will carefully review and merge your submission upon approval.

    Waku also provides bounties to encourage community members to contribute to the network and earn rewards. To participate in the bounty program, head to https://github.com/waku-org/bounties.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Scaffold DApps Using @waku/create-app

    This guide provides detailed steps to bootstrap your next @waku/sdk project from various example templates using the @waku/create-app package.

    Usage

    Initialise a new @waku/sdk template using any of the following methods:

    npx @waku/create-app [PROJECT DIRECTORY]

    Next, select a template to initialise your app from:

    waku create app demo

    tip

    If you have previously installed @waku/create-app globally, we recommend uninstalling the package to ensure that npx always uses the latest version.

    Contributing new templates

    We welcome and appreciate the contributions of templates for the @waku/create-app package. To contribute a template, please follow these steps:

    1. Create the template, ensuring it is user-friendly and thoroughly tested.
    2. Place the template in the examples folder in the js-waku-examples repository's root.
    3. Commit your changes with a detailed message and push them to your forked repository.
    4. Finally, submit a pull request to the js-waku-examples repository.
    5. Our team will carefully review and merge your submission upon approval.

    Waku also provides bounties to encourage community members to contribute to the network and earn rewards. To participate in the bounty program, head to https://github.com/waku-org/bounties.

    + + \ No newline at end of file diff --git a/guides/js-waku/use-waku-react/index.html b/guides/js-waku/use-waku-react/index.html index abeb91b..eb7b7cf 100644 --- a/guides/js-waku/use-waku-react/index.html +++ b/guides/js-waku/use-waku-react/index.html @@ -3,19 +3,19 @@ -Build React DApps Using @waku/react | Waku Documentation +Build React DApps Using @waku/react | Waku Documentation - - - + + +

    Build React DApps Using @waku/react

    caution

    Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.

    The @waku/react package provides components and UI adapters to integrate @waku/sdk into React applications effortlessly. This guide provides detailed steps for using @waku/react in your project.

    Install the dependencies

    First, set up a project using any production-grade React framework or an existing React application. For this guide, we will create a boilerplate using ViteJS:

    npm create vite@latest [PROJECT DIRECTORY] -- --template react

    Next, install the required packages for integrating @waku/sdk using your preferred package manager:

    npm install @waku/react @waku/sdk protobufjs

    Initialise the Waku provider

    In the main.jsx file, which serves as the entry point for a React app, we will set up the LightNodeProvider context provider to wrap the entire application within the Waku provider. Import the following on top of your file:

    src/main.jsx
    import { LightNodeProvider } from "@waku/react";

    // Set the Light Node options
    const NODE_OPTIONS = { defaultBootstrap: true };

    ReactDOM.createRoot(document.getElementById('root')).render(
    // Use the Light Node context provider
    <React.StrictMode>
    <LightNodeProvider options={NODE_OPTIONS}>
    <App />
    </LightNodeProvider>
    </React.StrictMode>,
    )

    Next, create and start a Light Node using the useWaku() function within the App.jsx file:

    src/App.jsx
    import { useWaku } from "@waku/react";

    function App() {
    // Create and start a Light Node
    const { node, error, isLoading } = useWaku();

    // "node" is the created Light Node
    // "error" captures any error that occurs during node creation
    // "isLoading" indicates whether the node is still being created
    }

    Build the application interface

    Let's build a user interface for sending messages and viewing past messages, modify the App.jsx file with the following code block:

    src/App.jsx
    import { useState, useEffect } from 'react';
    import { useWaku } from "@waku/react";
    import { createEncoder, createDecoder } from "@waku/sdk";
    import protobuf from 'protobufjs';
    import './App.css'

    function App() {
    const [inputMessage, setInputMessage] = useState("");
    const [messages, setMessages] = useState([]);

    // Update the inputMessage state as the user input changes
    const handleInputChange = (e) => {
    setInputMessage(e.target.value);
    };

    // Create and start a Light Node
    const { node, error, isLoading } = useWaku();

    // Create a message encoder and decoder
    const contentTopic = "/waku-react-guide/1/chat/proto";
    const encoder = createEncoder({ contentTopic });
    const decoder = createDecoder(contentTopic);

    // Create a message structure using Protobuf
    const DataPacket = new protobuf.Type("DataPacket")
    .add(new protobuf.Field("timestamp", 1, "uint64"))
    .add(new protobuf.Field("message", 2, "string"));

    // Send the message using Light Push
    const sendMessage = async () => {}

    return (
    <>
    <div className="chat-interface">
    <h1>Waku React Demo</h1>
    <div className="chat-body">
    {messages.map((message, index) => (
    <div key={index} className="chat-message">
    <span>{new Date(message.timestamp).toUTCString()}</span>
    <div className="message-text">{message.message}</div>
    </div>
    ))}
    </div>
    <div className="chat-footer">
    <input
    type="text"
    id="message-input"
    value={inputMessage}
    onChange={handleInputChange}
    placeholder="Type your message..."
    />
    <button className="send-button" onClick={sendMessage}>Send</button>
    </div>
    </div>
    </>
    )
    }

    export default App
    info

    In the code above, we also created a message encoder and decoder using the createEncoder() and createDecoder() functions, along with the application message structure with Protobuf.

    Next, modify the App.css file with the following code block:

    src/App.css
    #root {
    margin: 0 auto;
    }

    .chat-interface {
    display: flex;
    flex-direction: column;
    height: 100vh;
    border: 1px solid #ccc;
    }

    .chat-body {
    flex-grow: 1;
    overflow-y: auto;
    padding: 10px;
    }

    .message-text {
    background-color: #f1f1f1;
    color: #000;
    padding: 10px;
    margin-bottom: 10px;
    }

    .chat-footer {
    display: flex;
    padding: 10px;
    background-color: #f1f1f1;
    align-items: center;
    }

    #message-input {
    flex-grow: 1;
    border-radius: 4px;
    padding: 10px;
    margin-right: 10px;
    }

    .send-button {
    background-color: #007bff;
    border-radius: 4px;
    }

    Send messages using light push

    To send messages in our application, we need to modify the sendMessage() function to serialize user input into our Protobuf structure and push it to the network using the useLightPush() function:

    src/App.jsx
    import { useLightPush } from "@waku/react";

    function App() {
    // Bind push method to a node and encoder
    const { push } = useLightPush({ node, encoder });

    // Send the message using Light Push
    const sendMessage = async () => {
    if (!push || inputMessage.length === 0) return;

    // Create a new message object
    const timestamp = Date.now();
    const protoMessage = DataPacket.create({
    timestamp: timestamp,
    message: inputMessage
    });

    // Serialise the message and push to the network
    const payload = DataPacket.encode(protoMessage).finish();
    const { recipients, errors } = await push({ payload, timestamp });

    // Check for errors
    if (errors.length === 0) {
    setInputMessage("");
    console.log("MESSAGE PUSHED");
    } else {
    console.log(errors);
    }
    };
    }

    Receive messages using filter

    To display messages in our application, we need to use the useFilterMessages() function to create a Filter subscription, receive incoming messages, and render them in our interface:

    src/App.jsx
    import { useFilterMessages } from "@waku/react";

    function App() {
    // Receive messages from Filter subscription
    const { messages: filterMessages } = useFilterMessages({ node, decoder });

    // Render the list of messages
    useEffect(() => {
    setMessages(filterMessages.map((wakuMessage) => {
    if (!wakuMessage.payload) return;
    return DataPacket.decode(wakuMessage.payload);
    }));
    }, [filterMessages]);
    }

    Retrieve messages using store

    To display messages from the past, we need to retrieve them from the Store protocol using the useStoreMessages() function when our application initialises and then render them alongside newly received messages:

    src/App.jsx
    import { useFilterMessages, useStoreMessages } from "@waku/react";

    function App() {
    // Query Store peers for past messages
    const { messages: storeMessages } = useStoreMessages({ node, decoder });

    // Receive messages from Filter subscription
    const { messages: filterMessages } = useFilterMessages({ node, decoder });

    // Render both past and new messages
    useEffect(() => {
    const allMessages = storeMessages.concat(filterMessages);
    setMessages(allMessages.map((wakuMessage) => {
    if (!wakuMessage.payload) return;
    return DataPacket.decode(wakuMessage.payload);
    }));
    }, [filterMessages, storeMessages]);
    }

    You can also configure a specific Store peer when creating the node, which is useful when running your own Store node or using a specific node in the network:

    const node = await createLightNode({ 
    defaultBootstrap: true,
    store: {
    peer: "/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm..." // multiaddr or PeerId of your Store node
    }
    });

    If the specified Store peer is not available, the node will fall back to using random Store peers in the network.

    info

    To explore the available Store query options, have a look at the Retrieve Messages Using Store Protocol guide.

    tip

    You have successfully integrated @waku/sdk into a React application using the @waku/react package. Have a look at the web-chat example for a working demo and the Building a Tic-Tac-Toe Game with Waku tutorial to learn more.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Build React DApps Using @waku/react

    caution

    Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.

    The @waku/react package provides components and UI adapters to integrate @waku/sdk into React applications effortlessly. This guide provides detailed steps for using @waku/react in your project.

    Install the dependencies

    First, set up a project using any production-grade React framework or an existing React application. For this guide, we will create a boilerplate using ViteJS:

    npm create vite@latest [PROJECT DIRECTORY] -- --template react

    Next, install the required packages for integrating @waku/sdk using your preferred package manager:

    npm install @waku/react @waku/sdk protobufjs

    Initialise the Waku provider

    In the main.jsx file, which serves as the entry point for a React app, we will set up the LightNodeProvider context provider to wrap the entire application within the Waku provider. Import the following on top of your file:

    src/main.jsx
    import { LightNodeProvider } from "@waku/react";

    // Set the Light Node options
    const NODE_OPTIONS = { defaultBootstrap: true };

    ReactDOM.createRoot(document.getElementById('root')).render(
    // Use the Light Node context provider
    <React.StrictMode>
    <LightNodeProvider options={NODE_OPTIONS}>
    <App />
    </LightNodeProvider>
    </React.StrictMode>,
    )

    Next, create and start a Light Node using the useWaku() function within the App.jsx file:

    src/App.jsx
    import { useWaku } from "@waku/react";

    function App() {
    // Create and start a Light Node
    const { node, error, isLoading } = useWaku();

    // "node" is the created Light Node
    // "error" captures any error that occurs during node creation
    // "isLoading" indicates whether the node is still being created
    }

    Build the application interface

    Let's build a user interface for sending messages and viewing past messages, modify the App.jsx file with the following code block:

    src/App.jsx
    import { useState, useEffect } from 'react';
    import { useWaku } from "@waku/react";
    import { createEncoder, createDecoder } from "@waku/sdk";
    import protobuf from 'protobufjs';
    import './App.css'

    function App() {
    const [inputMessage, setInputMessage] = useState("");
    const [messages, setMessages] = useState([]);

    // Update the inputMessage state as the user input changes
    const handleInputChange = (e) => {
    setInputMessage(e.target.value);
    };

    // Create and start a Light Node
    const { node, error, isLoading } = useWaku();

    // Create a message encoder and decoder
    const contentTopic = "/waku-react-guide/1/chat/proto";
    const encoder = createEncoder({ contentTopic });
    const decoder = createDecoder(contentTopic);

    // Create a message structure using Protobuf
    const DataPacket = new protobuf.Type("DataPacket")
    .add(new protobuf.Field("timestamp", 1, "uint64"))
    .add(new protobuf.Field("message", 2, "string"));

    // Send the message using Light Push
    const sendMessage = async () => {}

    return (
    <>
    <div className="chat-interface">
    <h1>Waku React Demo</h1>
    <div className="chat-body">
    {messages.map((message, index) => (
    <div key={index} className="chat-message">
    <span>{new Date(message.timestamp).toUTCString()}</span>
    <div className="message-text">{message.message}</div>
    </div>
    ))}
    </div>
    <div className="chat-footer">
    <input
    type="text"
    id="message-input"
    value={inputMessage}
    onChange={handleInputChange}
    placeholder="Type your message..."
    />
    <button className="send-button" onClick={sendMessage}>Send</button>
    </div>
    </div>
    </>
    )
    }

    export default App
    info

    In the code above, we also created a message encoder and decoder using the createEncoder() and createDecoder() functions, along with the application message structure with Protobuf.

    Next, modify the App.css file with the following code block:

    src/App.css
    #root {
    margin: 0 auto;
    }

    .chat-interface {
    display: flex;
    flex-direction: column;
    height: 100vh;
    border: 1px solid #ccc;
    }

    .chat-body {
    flex-grow: 1;
    overflow-y: auto;
    padding: 10px;
    }

    .message-text {
    background-color: #f1f1f1;
    color: #000;
    padding: 10px;
    margin-bottom: 10px;
    }

    .chat-footer {
    display: flex;
    padding: 10px;
    background-color: #f1f1f1;
    align-items: center;
    }

    #message-input {
    flex-grow: 1;
    border-radius: 4px;
    padding: 10px;
    margin-right: 10px;
    }

    .send-button {
    background-color: #007bff;
    border-radius: 4px;
    }

    Send messages using light push

    To send messages in our application, we need to modify the sendMessage() function to serialize user input into our Protobuf structure and push it to the network using the useLightPush() function:

    src/App.jsx
    import { useLightPush } from "@waku/react";

    function App() {
    // Bind push method to a node and encoder
    const { push } = useLightPush({ node, encoder });

    // Send the message using Light Push
    const sendMessage = async () => {
    if (!push || inputMessage.length === 0) return;

    // Create a new message object
    const timestamp = Date.now();
    const protoMessage = DataPacket.create({
    timestamp: timestamp,
    message: inputMessage
    });

    // Serialise the message and push to the network
    const payload = DataPacket.encode(protoMessage).finish();
    const { recipients, errors } = await push({ payload, timestamp });

    // Check for errors
    if (errors.length === 0) {
    setInputMessage("");
    console.log("MESSAGE PUSHED");
    } else {
    console.log(errors);
    }
    };
    }

    Receive messages using filter

    To display messages in our application, we need to use the useFilterMessages() function to create a Filter subscription, receive incoming messages, and render them in our interface:

    src/App.jsx
    import { useFilterMessages } from "@waku/react";

    function App() {
    // Receive messages from Filter subscription
    const { messages: filterMessages } = useFilterMessages({ node, decoder });

    // Render the list of messages
    useEffect(() => {
    setMessages(filterMessages.map((wakuMessage) => {
    if (!wakuMessage.payload) return;
    return DataPacket.decode(wakuMessage.payload);
    }));
    }, [filterMessages]);
    }

    Retrieve messages using store

    To display messages from the past, we need to retrieve them from the Store protocol using the useStoreMessages() function when our application initialises and then render them alongside newly received messages:

    src/App.jsx
    import { useFilterMessages, useStoreMessages } from "@waku/react";

    function App() {
    // Query Store peers for past messages
    const { messages: storeMessages } = useStoreMessages({ node, decoder });

    // Receive messages from Filter subscription
    const { messages: filterMessages } = useFilterMessages({ node, decoder });

    // Render both past and new messages
    useEffect(() => {
    const allMessages = storeMessages.concat(filterMessages);
    setMessages(allMessages.map((wakuMessage) => {
    if (!wakuMessage.payload) return;
    return DataPacket.decode(wakuMessage.payload);
    }));
    }, [filterMessages, storeMessages]);
    }

    You can also configure a specific Store peer when creating the node, which is useful when running your own Store node or using a specific node in the network:

    const node = await createLightNode({ 
    defaultBootstrap: true,
    store: {
    peer: "/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm..." // multiaddr or PeerId of your Store node
    }
    });

    If the specified Store peer is not available, the node will fall back to using random Store peers in the network.

    info

    To explore the available Store query options, have a look at the Retrieve Messages Using Store Protocol guide.

    tip

    You have successfully integrated @waku/sdk into a React application using the @waku/react package. Have a look at the web-chat example for a working demo and the Building a Tic-Tac-Toe Game with Waku tutorial to learn more.

    + + \ No newline at end of file diff --git a/guides/nwaku/build-source/index.html b/guides/nwaku/build-source/index.html index 8d1ab0c..edfaa10 100644 --- a/guides/nwaku/build-source/index.html +++ b/guides/nwaku/build-source/index.html @@ -3,19 +3,19 @@ -Build Nwaku from Source | Waku Documentation +Build Nwaku from Source | Waku Documentation - - - + + +

    Build Nwaku from Source

    This guide provides detailed steps to build a nwaku node from the source code to access the latest development version or a specific commit or release of nwaku. For your convenience, you may want to download a pre-compiled binary instead.

    info
    • A minimum of 2GB of RAM is required to build nwaku.
    • Nwaku is available for Linux and macOS, with experimental Windows support.

    Prerequisites

    To build nwaku, you need the standard developer tools, including a C compiler, GNU Make, Bash, Git, Rustup, and PostgreSQL client library.

    sudo apt-get install build-essential git libpq5 jq
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source "$HOME/.cargo/env"

    Clone the repository

    Get the source code from the GitHub repository. The default branch is master, the release candidate for major updates.

    git clone https://github.com/waku-org/nwaku
    cd nwaku
    tip

    You can use git tag -l to check specific version tags.

    Build the binary

    Build the nwaku binary:

    make wakunode2

    The first make invocation updates to all Git submodules. After each git pull, run make update to keep the submodules updated in the future.

    make update

    Run the binary

    Nwaku will create the wakunode2 binary in the ./build/ directory.

    # Run with default configuration
    ./build/wakunode2

    # See available command line options
    ./build/wakunode2 --help

    To learn more about running nwaku, have a look at these guides:

    Run test suite

    Run the tests for Waku:

    make test
    Congratulations!

    You have successfully built the nwaku binary from the source code. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Build Nwaku from Source

    This guide provides detailed steps to build a nwaku node from the source code to access the latest development version or a specific commit or release of nwaku. For your convenience, you may want to download a pre-compiled binary instead.

    info
    • A minimum of 2GB of RAM is required to build nwaku.
    • Nwaku is available for Linux and macOS, with experimental Windows support.

    Prerequisites

    To build nwaku, you need the standard developer tools, including a C compiler, GNU Make, Bash, Git, Rustup, and PostgreSQL client library.

    sudo apt-get install build-essential git libpq5 jq
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source "$HOME/.cargo/env"

    Clone the repository

    Get the source code from the GitHub repository. The default branch is master, the release candidate for major updates.

    git clone https://github.com/waku-org/nwaku
    cd nwaku
    tip

    You can use git tag -l to check specific version tags.

    Build the binary

    Build the nwaku binary:

    make wakunode2

    The first make invocation updates to all Git submodules. After each git pull, run make update to keep the submodules updated in the future.

    make update

    Run the binary

    Nwaku will create the wakunode2 binary in the ./build/ directory.

    # Run with default configuration
    ./build/wakunode2

    # See available command line options
    ./build/wakunode2 --help

    To learn more about running nwaku, have a look at these guides:

    Run test suite

    Run the tests for Waku:

    make test
    Congratulations!

    You have successfully built the nwaku binary from the source code. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    + + \ No newline at end of file diff --git a/guides/nwaku/config-methods/index.html b/guides/nwaku/config-methods/index.html index e251237..d0613f6 100644 --- a/guides/nwaku/config-methods/index.html +++ b/guides/nwaku/config-methods/index.html @@ -3,19 +3,19 @@ -Node Configuration Methods | Waku Documentation +Node Configuration Methods | Waku Documentation - - - + + +

    Node Configuration Methods

    Waku nodes can be configured using a combination of the following methods:

    1. Command line options and flags
    2. Environment variables
    3. TOML configuration files (currently the only supported format)
    4. Default values
    info

    Take note of the precedence order: Each configuration method overrides the one below it (e.g., command line options override environment variables and configuration files).

    Command line options

    Node configuration is primarily done using command line options, which override other methods. Specify configuration options by providing them in this format after the binary name:

    ./build/wakunode2 --tcp-port=65000

    When running your node with Docker, provide the command line options after the image name in this format:

    docker run wakuorg/nwaku --tcp-port=65000

    Environment variables

    Nodes can be configured using environment variables by prefixing the variable name with WAKUNODE2_ and using the configuration option in SCREAMING_SNAKE_CASE format.

    To set the tcp-port configuration, the wakunode2 binary should be called in this format:

    WAKUNODE2_TCP_PORT=65000 ./build/wakunode2

    When running your node with Docker, start the node using the -e command option:

    docker run -e "WAKUNODE2_TCP_PORT=65000" wakuorg/nwaku
    info

    This is the second configuration method in order of precedence. Command Line Options override environment variables.

    Configuration files

    Nodes can be configured using a configuration file following the TOML format:

    TOML Config File
    log-level = "DEBUG"
    tcp-port = 65000
    topic = ["/waku/2/default-waku/proto"]
    metrics-logging = false

    The config-file configuration option lets you specify the configuration file path:

    ./build/wakunode2 --config-file=[TOML CONFIGURATION FILE]

    You can also specify the configuration file via environment variables:

    # Using environment variables
    WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE] ./build/wakunode2

    # Using environment variables with Docker
    docker run -e "WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE]" wakuorg/nwaku
    info

    This is the third configuration method in order of precedence. Command Line Options and Environment Variables override configuration files.

    Default configuration values

    The default configuration is used when no other options are specified. By default, a nwaku node does the following:

    • Generate a new Node Key and PeerID.
    • Listen for incoming libp2p connections on the default TCP port (60000).
    • Subscribe to the default Pub/Sub topic (/waku/2/default-waku/proto).
    • Enable the Relay protocol for relaying messages.
    • Enable the Store protocol as a client, allowing it to query peers for historical messages but not store any message itself.

    To see the default values of all configuration options, run wakunode2 --help:

    ./build/wakunode2 --help
    tip

    To explore the available node configuration options, have a look at the Node Configuration Options guide.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Node Configuration Methods

    Waku nodes can be configured using a combination of the following methods:

    1. Command line options and flags
    2. Environment variables
    3. TOML configuration files (currently the only supported format)
    4. Default values
    info

    Take note of the precedence order: Each configuration method overrides the one below it (e.g., command line options override environment variables and configuration files).

    Command line options

    Node configuration is primarily done using command line options, which override other methods. Specify configuration options by providing them in this format after the binary name:

    ./build/wakunode2 --tcp-port=65000

    When running your node with Docker, provide the command line options after the image name in this format:

    docker run wakuorg/nwaku --tcp-port=65000

    Environment variables

    Nodes can be configured using environment variables by prefixing the variable name with WAKUNODE2_ and using the configuration option in SCREAMING_SNAKE_CASE format.

    To set the tcp-port configuration, the wakunode2 binary should be called in this format:

    WAKUNODE2_TCP_PORT=65000 ./build/wakunode2

    When running your node with Docker, start the node using the -e command option:

    docker run -e "WAKUNODE2_TCP_PORT=65000" wakuorg/nwaku
    info

    This is the second configuration method in order of precedence. Command Line Options override environment variables.

    Configuration files

    Nodes can be configured using a configuration file following the TOML format:

    TOML Config File
    log-level = "DEBUG"
    tcp-port = 65000
    topic = ["/waku/2/default-waku/proto"]
    metrics-logging = false

    The config-file configuration option lets you specify the configuration file path:

    ./build/wakunode2 --config-file=[TOML CONFIGURATION FILE]

    You can also specify the configuration file via environment variables:

    # Using environment variables
    WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE] ./build/wakunode2

    # Using environment variables with Docker
    docker run -e "WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE]" wakuorg/nwaku
    info

    This is the third configuration method in order of precedence. Command Line Options and Environment Variables override configuration files.

    Default configuration values

    The default configuration is used when no other options are specified. By default, a nwaku node does the following:

    • Generate a new Node Key and PeerID.
    • Listen for incoming libp2p connections on the default TCP port (60000).
    • Subscribe to the default Pub/Sub topic (/waku/2/default-waku/proto).
    • Enable the Relay protocol for relaying messages.
    • Enable the Store protocol as a client, allowing it to query peers for historical messages but not store any message itself.

    To see the default values of all configuration options, run wakunode2 --help:

    ./build/wakunode2 --help
    tip

    To explore the available node configuration options, have a look at the Node Configuration Options guide.

    + + \ No newline at end of file diff --git a/guides/nwaku/config-options/index.html b/guides/nwaku/config-options/index.html index 19cab68..4ea14f5 100644 --- a/guides/nwaku/config-options/index.html +++ b/guides/nwaku/config-options/index.html @@ -3,19 +3,19 @@ -Node Configuration Options | Waku Documentation +Node Configuration Options | Waku Documentation - - - + + +

    Node Configuration Options

    Here are the available node configuration options, along with their default values and descriptions:

    Application-level config

    NameDefault ValueDescription
    config-fileLoads configuration from a TOML file (cmd-line parameters take precedence)
    protected-shardnewSeq[ProtectedShard](0)Shards and its public keys to be used for message validation, shard:pubkey. Argument may be repeated

    Log config

    NameDefault ValueDescription
    log-levellogging.LogLevel.INFOSets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL
    log-formatlogging.LogFormat.TEXTSpecifies what kind of logs should be written to stdout. Supported formats: TEXT, JSON

    General node config

    NameDefault ValueDescription
    cluster-id0Cluster id that the node is running in. Node in a different cluster id is disconnected
    agent-stringnwakuNode agent string which is used as identifier in network
    nodekeyP2P node private key as 64-char hex string
    listen-addressdefaultListenAddress()Listening address for LibP2P (and Discovery v5, if enabled) traffic
    tcp-port60000TCP listening port
    ports-shift0Add a shift to all port numbers
    natanySpecify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip:<IP>
    ext-multiaddrExternal multiaddresses to advertise to the network. Argument may be repeated
    ext-multiaddr-onlyfalseOnly announce external multiaddresses
    max-connections50Maximum allowed number of libp2p connections
    relay-service-ratio"60:40"This percentage ratio represents the relay peers to service peers. For example, 60:40, tells that 60% of the max-connections will be used for relay protocol and the other 40% of max-connections will be reserved for other service protocols (e.g., filter, lightpush, store, metadata, etc.)
    peer-store-capacityMaximum stored peers in the peerstore
    peer-persistencefalseEnable peer persistence

    DNS addrs config

    NameDefault ValueDescription
    dns-addrstrueEnable resolution of dnsaddr, dns4 or dns6 multiaddrs
    dns-addrs-name-server["1.1.1.1", "1.0.0.1"]DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated
    dns4-domain-nameThe domain name resolving to the node's public IPv4 address

    Relay config

    NameDefault ValueDescription
    relaytrueEnable relay protocol: true|false
    relay-peer-exchangefalseEnable gossipsub peer exchange in relay protocol: true|false
    rln-relayfalseEnable spam protection through rln-relay: true|false
    rln-relay-cred-pathThe path for persisting rln-relay credential
    rln-relay-membership-indexThe index of the onchain commitment to use
    rln-relay-dynamicfalseEnable waku-rln-relay with on-chain dynamic group management: true|false
    rln-relay-id-keyRln relay identity secret key as a Hex string
    rln-relay-id-commitment-keyRln relay identity commitment key as a Hex string
    rln-relay-eth-client-addressws://localhost:8540/WebSocket address of an Ethereum testnet client e.g., ws://localhost:8540/
    rln-relay-eth-contract-addressAddress of membership contract on an Ethereum testnet
    rln-relay-eth-private-keyPrivate key for broadcasting transactions
    executefalseRuns the registration function on-chain. By default, a dry-run will occur
    rln-relay-cred-passwordPassword for encrypting RLN credentials
    rln-relay-tree-pathPath to the RLN merkle tree sled db (https://github.com/spacejam/sled)
    rln-relay-bandwidth-threshold0 # to maintain backwards compatibilityMessage rate in bytes/sec after which verification of proofs should happen
    staticnodePeer multiaddr to directly connect with. Argument may be repeated
    keep-alivefalseEnable keep-alive for idle connections: true|false
    pubsub-topicDefault pubsub topic to subscribe to. Argument may be repeated. Deprecated! Please use shard and/or content-topic instead
    shardShard to subscribe to. Argument may be repeated
    num-shards-in-networkNumber of shards in the network. Used to map content topics to shards when using autosharding
    content-topicDefault content topic to subscribe to. Argument may be repeated
    reliabilityfalseEnable experimental reliability protocol true|false

    Store and message store config

    NameDefault ValueDescription
    storefalseEnable/disable waku store protocol
    storenodePeer multiaddress to query for storage
    store-message-retention-policytime:172800Message store retention policy. Time retention policy: time:<seconds>. Capacity retention policy: capacity:<count>. Size retention policy: size:<xMB/xGB>. Set to none to disable
    store-message-db-urlsqlite://store.sqlite3The database connection URL for persistent storage
    store-message-db-vacuumfalseEnable database vacuuming at start. Only supported by SQLite database engine
    store-message-db-migrationtrueEnable database migration at start

    Filter config

    NameDefault ValueDescription
    filterfalseEnable filter protocol: true|false
    filternodePeer multiaddr to request content filtering of messages
    filter-subscription-timeout300 # 5 minutesTimeout for filter subscription without ping or refresh it, in seconds. Only for v2 filter protocol
    filter-max-peers-to-serve1000Maximum number of peers to serve at a time. Only for v2 filter protocol
    filter-max-criteria1000Maximum number of pubsub and content topic combinations per peer at a time. Only for v2 filter protocol

    Light push config

    NameDefault ValueDescription
    lightpushfalseEnable lightpush protocol: true|false
    lightpushnodePeer multiaddr to request lightpush of published messages

    REST HTTP config

    NameDefault ValueDescription
    restfalseEnable Waku REST HTTP server: true|false
    rest-address127.0.0.1Listening address of the REST HTTP server
    rest-port8645Listening port of the REST HTTP server
    rest-relay-cache-capacity30Capacity of the Relay REST API message cache
    rest-adminfalseEnable access to REST HTTP Admin API: true|false
    rest-allow-originAllow cross-origin requests from the specified origin. When using the REST API in a browser, specify the origin host to get a valid response from the node REST HTTP server. This option may be repeated and can contain wildcards (?,*) for defining URLs and ports such as localhost:*, 127.0.0.1:8080, or allow any website with *

    Metrics config

    NameDefault ValueDescription
    metrics-serverfalseEnable the metrics server: true|false
    metrics-server-address127.0.0.1Listening address of the metrics server
    metrics-server-port8008Listening HTTP port of the metrics server
    metrics-loggingtrueEnable metrics logging: true|false

    DNS discovery config

    NameDefault ValueDescription
    dns-discoveryfalseEnable discovering nodes via DNS
    dns-discovery-urlURL for DNS node list in format 'enrtree://<key>@<fqdn>'
    dns-discovery-name-server["1.1.1.1", "1.0.0.1"]DNS name server IPs to query. Argument may be repeated
    rendezvoustrueEnable waku rendezvous discovery server

    Discv5 config

    NameDefault ValueDescription
    discv5-discoveryfalseEnable discovering nodes via Node Discovery v5
    discv5-udp-port9000Listening UDP port for Node Discovery v5
    discv5-bootstrap-nodeText-encoded ENR for bootstrap node. Used when connecting to the network. Argument may be repeated
    discv5-enr-auto-updatefalseDiscovery can automatically update its ENR with the IP address
    discv5-table-ip-limit10Maximum amount of nodes with the same IP in discv5 routing tables
    discv5-bucket-ip-limit2Maximum amount of nodes with the same IP in discv5 routing table buckets
    discv5-bits-per-hop1Kademlia's b variable, increase for less hops per lookup

    Waku peer exchange config

    NameDefault ValueDescription
    peer-exchangefalseEnable waku peer exchange protocol (responder side): true|false
    peer-exchange-nodePeer multiaddr to send peer exchange requests to. (enables peer exchange protocol requester side)

    WebSocket config

    NameDefault ValueDescription
    websocket-supportfalseEnable websocket: true|false
    websocket-port8000WebSocket listening port
    websocket-secure-supportfalseEnable secure websocket: true|false
    websocket-secure-key-pathSecure websocket key path: '/path/to/key.txt'
    websocket-secure-cert-pathSecure websocket Certificate path: '/path/to/cert.txt'

    Non-relay, request-response protocol DOS protection configuration

    NameDefault ValueDescription
    rate-limitThis is a repeatable option. Each can describe a specific rate limit configuration for a particular protocol.
    Formatted as:<protocol>:volume/period<time-unit>
    - if protocol is not given, settings will be taken as default for un-set protocols. Ex: 80/2s
    -Supported protocols are: lightpush|filter|px|store|storev2|storev3
    -volume must be an integer value, representing number of requests over the period of time allowed.
    -period\<time-unit> must be an integer with defined unit as one of h|m|s|ms
    - storev2 and storev3 takes precedence over store which can easy set both store protocols at once.
    - In case of multiple set of the same protocol limit, last one will take place.
    - if config is not set, - which is the default - means unlimited requests are allowed.
    -filter has a bit different approach. It has a default setting applied if not overridden. Rate limit setting for filter will be applied per subscriber-peers, not globally - it must be considered when changing the setting.

    Examples:
    --rate-limit="100/1s" - default for all protocols if not set otherwise.
    --rate-limit="lightpush:0/0s" - lightpush protocol will not be rate-limited.
    --rate-limit="store:130/1500ms" - both store-v3 and store-v2 will apply 130 request per each 1500ms separately.
    --rate-limit="px:10/1h" PeerExchange will serve only 10 requests every hour.
    --rate-limit="filter:8/5m" - will allow 8 subs/unsubs/ping requests for each subscriber within every 5 min.
    tip

    To configure your node using the provided configuration options, have a look at the Node Configuration Methods guide.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Node Configuration Options

    Here are the available node configuration options, along with their default values and descriptions:

    Application-level config

    NameDefault ValueDescription
    config-fileLoads configuration from a TOML file (cmd-line parameters take precedence)
    protected-shardnewSeq[ProtectedShard](0)Shards and its public keys to be used for message validation, shard:pubkey. Argument may be repeated

    Log config

    NameDefault ValueDescription
    log-levellogging.LogLevel.INFOSets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL
    log-formatlogging.LogFormat.TEXTSpecifies what kind of logs should be written to stdout. Supported formats: TEXT, JSON

    General node config

    NameDefault ValueDescription
    cluster-id0Cluster id that the node is running in. Node in a different cluster id is disconnected
    agent-stringnwakuNode agent string which is used as identifier in network
    nodekeyP2P node private key as 64-char hex string
    listen-addressdefaultListenAddress()Listening address for LibP2P (and Discovery v5, if enabled) traffic
    tcp-port60000TCP listening port
    ports-shift0Add a shift to all port numbers
    natanySpecify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip:<IP>
    ext-multiaddrExternal multiaddresses to advertise to the network. Argument may be repeated
    ext-multiaddr-onlyfalseOnly announce external multiaddresses
    max-connections50Maximum allowed number of libp2p connections
    relay-service-ratio"60:40"This percentage ratio represents the relay peers to service peers. For example, 60:40, tells that 60% of the max-connections will be used for relay protocol and the other 40% of max-connections will be reserved for other service protocols (e.g., filter, lightpush, store, metadata, etc.)
    peer-store-capacityMaximum stored peers in the peerstore
    peer-persistencefalseEnable peer persistence

    DNS addrs config

    NameDefault ValueDescription
    dns-addrstrueEnable resolution of dnsaddr, dns4 or dns6 multiaddrs
    dns-addrs-name-server["1.1.1.1", "1.0.0.1"]DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated
    dns4-domain-nameThe domain name resolving to the node's public IPv4 address

    Relay config

    NameDefault ValueDescription
    relaytrueEnable relay protocol: true|false
    relay-peer-exchangefalseEnable gossipsub peer exchange in relay protocol: true|false
    rln-relayfalseEnable spam protection through rln-relay: true|false
    rln-relay-cred-pathThe path for persisting rln-relay credential
    rln-relay-membership-indexThe index of the onchain commitment to use
    rln-relay-dynamicfalseEnable waku-rln-relay with on-chain dynamic group management: true|false
    rln-relay-id-keyRln relay identity secret key as a Hex string
    rln-relay-id-commitment-keyRln relay identity commitment key as a Hex string
    rln-relay-eth-client-addressws://localhost:8540/WebSocket address of an Ethereum testnet client e.g., ws://localhost:8540/
    rln-relay-eth-contract-addressAddress of membership contract on an Ethereum testnet
    rln-relay-eth-private-keyPrivate key for broadcasting transactions
    executefalseRuns the registration function on-chain. By default, a dry-run will occur
    rln-relay-cred-passwordPassword for encrypting RLN credentials
    rln-relay-tree-pathPath to the RLN merkle tree sled db (https://github.com/spacejam/sled)
    rln-relay-bandwidth-threshold0 # to maintain backwards compatibilityMessage rate in bytes/sec after which verification of proofs should happen
    staticnodePeer multiaddr to directly connect with. Argument may be repeated
    keep-alivefalseEnable keep-alive for idle connections: true|false
    pubsub-topicDefault pubsub topic to subscribe to. Argument may be repeated. Deprecated! Please use shard and/or content-topic instead
    shardShard to subscribe to. Argument may be repeated
    num-shards-in-networkNumber of shards in the network. Used to map content topics to shards when using autosharding
    content-topicDefault content topic to subscribe to. Argument may be repeated
    reliabilityfalseEnable experimental reliability protocol true|false

    Store and message store config

    NameDefault ValueDescription
    storefalseEnable/disable waku store protocol
    storenodePeer multiaddress to query for storage
    store-message-retention-policytime:172800Message store retention policy. Time retention policy: time:<seconds>. Capacity retention policy: capacity:<count>. Size retention policy: size:<xMB/xGB>. Set to none to disable
    store-message-db-urlsqlite://store.sqlite3The database connection URL for persistent storage
    store-message-db-vacuumfalseEnable database vacuuming at start. Only supported by SQLite database engine
    store-message-db-migrationtrueEnable database migration at start

    Filter config

    NameDefault ValueDescription
    filterfalseEnable filter protocol: true|false
    filternodePeer multiaddr to request content filtering of messages
    filter-subscription-timeout300 # 5 minutesTimeout for filter subscription without ping or refresh it, in seconds. Only for v2 filter protocol
    filter-max-peers-to-serve1000Maximum number of peers to serve at a time. Only for v2 filter protocol
    filter-max-criteria1000Maximum number of pubsub and content topic combinations per peer at a time. Only for v2 filter protocol

    Light push config

    NameDefault ValueDescription
    lightpushfalseEnable lightpush protocol: true|false
    lightpushnodePeer multiaddr to request lightpush of published messages

    REST HTTP config

    NameDefault ValueDescription
    restfalseEnable Waku REST HTTP server: true|false
    rest-address127.0.0.1Listening address of the REST HTTP server
    rest-port8645Listening port of the REST HTTP server
    rest-relay-cache-capacity30Capacity of the Relay REST API message cache
    rest-adminfalseEnable access to REST HTTP Admin API: true|false
    rest-allow-originAllow cross-origin requests from the specified origin. When using the REST API in a browser, specify the origin host to get a valid response from the node REST HTTP server. This option may be repeated and can contain wildcards (?,*) for defining URLs and ports such as localhost:*, 127.0.0.1:8080, or allow any website with *

    Metrics config

    NameDefault ValueDescription
    metrics-serverfalseEnable the metrics server: true|false
    metrics-server-address127.0.0.1Listening address of the metrics server
    metrics-server-port8008Listening HTTP port of the metrics server
    metrics-loggingtrueEnable metrics logging: true|false

    DNS discovery config

    NameDefault ValueDescription
    dns-discoveryfalseEnable discovering nodes via DNS
    dns-discovery-urlURL for DNS node list in format 'enrtree://<key>@<fqdn>'
    dns-discovery-name-server["1.1.1.1", "1.0.0.1"]DNS name server IPs to query. Argument may be repeated
    rendezvoustrueEnable waku rendezvous discovery server

    Discv5 config

    NameDefault ValueDescription
    discv5-discoveryfalseEnable discovering nodes via Node Discovery v5
    discv5-udp-port9000Listening UDP port for Node Discovery v5
    discv5-bootstrap-nodeText-encoded ENR for bootstrap node. Used when connecting to the network. Argument may be repeated
    discv5-enr-auto-updatefalseDiscovery can automatically update its ENR with the IP address
    discv5-table-ip-limit10Maximum amount of nodes with the same IP in discv5 routing tables
    discv5-bucket-ip-limit2Maximum amount of nodes with the same IP in discv5 routing table buckets
    discv5-bits-per-hop1Kademlia's b variable, increase for less hops per lookup

    Waku peer exchange config

    NameDefault ValueDescription
    peer-exchangefalseEnable waku peer exchange protocol (responder side): true|false
    peer-exchange-nodePeer multiaddr to send peer exchange requests to. (enables peer exchange protocol requester side)

    WebSocket config

    NameDefault ValueDescription
    websocket-supportfalseEnable websocket: true|false
    websocket-port8000WebSocket listening port
    websocket-secure-supportfalseEnable secure websocket: true|false
    websocket-secure-key-pathSecure websocket key path: '/path/to/key.txt'
    websocket-secure-cert-pathSecure websocket Certificate path: '/path/to/cert.txt'

    Non-relay, request-response protocol DOS protection configuration

    NameDefault ValueDescription
    rate-limitThis is a repeatable option. Each can describe a specific rate limit configuration for a particular protocol.
    Formatted as:<protocol>:volume/period<time-unit>
    - if protocol is not given, settings will be taken as default for un-set protocols. Ex: 80/2s
    -Supported protocols are: lightpush|filter|px|store|storev2|storev3
    -volume must be an integer value, representing number of requests over the period of time allowed.
    -period\<time-unit> must be an integer with defined unit as one of h|m|s|ms
    - storev2 and storev3 takes precedence over store which can easy set both store protocols at once.
    - In case of multiple set of the same protocol limit, last one will take place.
    - if config is not set, - which is the default - means unlimited requests are allowed.
    -filter has a bit different approach. It has a default setting applied if not overridden. Rate limit setting for filter will be applied per subscriber-peers, not globally - it must be considered when changing the setting.

    Examples:
    --rate-limit="100/1s" - default for all protocols if not set otherwise.
    --rate-limit="lightpush:0/0s" - lightpush protocol will not be rate-limited.
    --rate-limit="store:130/1500ms" - both store-v3 and store-v2 will apply 130 request per each 1500ms separately.
    --rate-limit="px:10/1h" PeerExchange will serve only 10 requests every hour.
    --rate-limit="filter:8/5m" - will allow 8 subs/unsubs/ping requests for each subscriber within every 5 min.
    tip

    To configure your node using the provided configuration options, have a look at the Node Configuration Methods guide.

    + + \ No newline at end of file diff --git a/guides/nwaku/configure-discovery/index.html b/guides/nwaku/configure-discovery/index.html index 2c7f3ed..462b8a8 100644 --- a/guides/nwaku/configure-discovery/index.html +++ b/guides/nwaku/configure-discovery/index.html @@ -3,19 +3,19 @@ -Configure Peer Discovery | Waku Documentation +Configure Peer Discovery | Waku Documentation - - - + + +

    Configure Peer Discovery

    This guide provides detailed steps to configure a nwaku node to discover and connect with peers in the Waku Network.

    info

    You can configure a nwaku node to use multiple peer discovery mechanisms simultaneously.

    Configure static peers

    You can provide static peers to a nwaku node during startup using the staticnode configuration option. To connect to multiple peers on startup, repeat the staticnode option:

    ./build/wakunode2 \
    --staticnode=[PEER MULTIADDR 1] \
    --staticnode=[PEER MULTIADDR 2]

    For example, consider a nwaku node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003:

    ./build/wakunode2 \
    --staticnode=/ip4/0.0.0.0/tcp/60002/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H \
    --staticnode=/ip4/0.0.0.0/tcp/60003/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ

    Configure DNS discovery

    To enable DNS Discovery in a nwaku node, use the following configuration options:

    • dns-discovery: Enables DNS Discovery on the node (disabled by default).
    • dns-discovery-url: URL for DNS node list in the format enrtree://<key>@<fqdn> where <fqdn> is the fully qualified domain name and <key> is the base32 encoding of the compressed 32-byte public key that signed the list at that location.
    • dns-discovery-name-server (optional): DNS name server IPs to query. You can repeat this option to provide multiple DNS name servers.
    ./build/wakunode2 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://[PUBLIC KEY]@[DOMAIN NAME] \
    --dns-discovery-name-server=[DNS NAME SERVER IP]
    info

    If you omit the dns-discovery-name-server option, nwaku will attempt to use the CloudFlare servers 1.1.1.1 and 1.0.0.1.

    For example, consider a nwaku node that enables DNS Discovery, connects to a DNS node list, and queries the IPs 8.8.8.8 and 8.8.4.4:

    ./build/wakunode2 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \
    --dns-discovery-name-server=8.8.8.8 \
    --dns-discovery-name-server=8.8.4.4

    Configure Discv5

    To enable Discv5 in a nwaku node, use the following configuration options:

    • discv5-discovery: Enables Discv5 on the node (disabled by default).
    • discv5-bootstrap-node: ENR for Discv5 routing table bootstrap node. You can repeat this option to provide multiple bootstrap entries.
    ./build/wakunode2 \
    --discv5-discovery=true \
    --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 1] \
    --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 2]

    For example, consider a nwaku node that enables Discv5 and bootstraps its routing table using a static ENR:

    ./build/wakunode2 \
    --discv5-discovery=true \
    --discv5-bootstrap-node=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    info

    When Discv5 is enabled and used with DNS Discovery, the nwaku node will attempt to bootstrap the Discv5 routing table by extracting ENRs from peers discovered through DNS.

    Configure peer exchange

    To enable Peer Exchange in a nwaku node, use the following configuration options:

    • peer-exchange: Enables Peer Exchange on the node as a responder (disabled by default).
    • peer-exchange-node (optional): Multiaddr for bootstrap node with the peer exchange protocol enabled.
    ./build/wakunode2 \
    --peer-exchange=true \
    --peer-exchange-node=[PEER MULTIADDR WITH EXCHANGE ENABLED]

    For example, consider two nwaku nodes configured as a server (peer exchange responder node) and client (node using peer exchange) on the same local host (IP: 0.0.0.0):

    Server: Nwaku Node with Peer Exchange Enabled
    ./build/wakunode2 --peer-exchange=true
    Client: Nwaku Node Bootstrapping with Peer Exchange
    ./build/wakunode2 \
    --tcp-port=30305 \
    --ports-shift=1 \
    --peer-exchange-node=/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmLCe6zVqCS6KMqqRbbhyoJjfYZGr1Q3thTSbyKzibQkFR
    info

    nwaku provides a relay-peer-exchange option via libp2p for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Configure Peer Discovery

    This guide provides detailed steps to configure a nwaku node to discover and connect with peers in the Waku Network.

    info

    You can configure a nwaku node to use multiple peer discovery mechanisms simultaneously.

    Configure static peers

    You can provide static peers to a nwaku node during startup using the staticnode configuration option. To connect to multiple peers on startup, repeat the staticnode option:

    ./build/wakunode2 \
    --staticnode=[PEER MULTIADDR 1] \
    --staticnode=[PEER MULTIADDR 2]

    For example, consider a nwaku node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003:

    ./build/wakunode2 \
    --staticnode=/ip4/0.0.0.0/tcp/60002/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H \
    --staticnode=/ip4/0.0.0.0/tcp/60003/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ

    Configure DNS discovery

    To enable DNS Discovery in a nwaku node, use the following configuration options:

    • dns-discovery: Enables DNS Discovery on the node (disabled by default).
    • dns-discovery-url: URL for DNS node list in the format enrtree://<key>@<fqdn> where <fqdn> is the fully qualified domain name and <key> is the base32 encoding of the compressed 32-byte public key that signed the list at that location.
    • dns-discovery-name-server (optional): DNS name server IPs to query. You can repeat this option to provide multiple DNS name servers.
    ./build/wakunode2 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://[PUBLIC KEY]@[DOMAIN NAME] \
    --dns-discovery-name-server=[DNS NAME SERVER IP]
    info

    If you omit the dns-discovery-name-server option, nwaku will attempt to use the CloudFlare servers 1.1.1.1 and 1.0.0.1.

    For example, consider a nwaku node that enables DNS Discovery, connects to a DNS node list, and queries the IPs 8.8.8.8 and 8.8.4.4:

    ./build/wakunode2 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \
    --dns-discovery-name-server=8.8.8.8 \
    --dns-discovery-name-server=8.8.4.4

    Configure Discv5

    To enable Discv5 in a nwaku node, use the following configuration options:

    • discv5-discovery: Enables Discv5 on the node (disabled by default).
    • discv5-bootstrap-node: ENR for Discv5 routing table bootstrap node. You can repeat this option to provide multiple bootstrap entries.
    ./build/wakunode2 \
    --discv5-discovery=true \
    --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 1] \
    --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 2]

    For example, consider a nwaku node that enables Discv5 and bootstraps its routing table using a static ENR:

    ./build/wakunode2 \
    --discv5-discovery=true \
    --discv5-bootstrap-node=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    info

    When Discv5 is enabled and used with DNS Discovery, the nwaku node will attempt to bootstrap the Discv5 routing table by extracting ENRs from peers discovered through DNS.

    Configure peer exchange

    To enable Peer Exchange in a nwaku node, use the following configuration options:

    • peer-exchange: Enables Peer Exchange on the node as a responder (disabled by default).
    • peer-exchange-node (optional): Multiaddr for bootstrap node with the peer exchange protocol enabled.
    ./build/wakunode2 \
    --peer-exchange=true \
    --peer-exchange-node=[PEER MULTIADDR WITH EXCHANGE ENABLED]

    For example, consider two nwaku nodes configured as a server (peer exchange responder node) and client (node using peer exchange) on the same local host (IP: 0.0.0.0):

    Server: Nwaku Node with Peer Exchange Enabled
    ./build/wakunode2 --peer-exchange=true
    Client: Nwaku Node Bootstrapping with Peer Exchange
    ./build/wakunode2 \
    --tcp-port=30305 \
    --ports-shift=1 \
    --peer-exchange-node=/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmLCe6zVqCS6KMqqRbbhyoJjfYZGr1Q3thTSbyKzibQkFR
    info

    nwaku provides a relay-peer-exchange option via libp2p for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.

    + + \ No newline at end of file diff --git a/guides/nwaku/configure-nwaku/index.html b/guides/nwaku/configure-nwaku/index.html index c9dbe6c..9af2bfd 100644 --- a/guides/nwaku/configure-nwaku/index.html +++ b/guides/nwaku/configure-nwaku/index.html @@ -3,19 +3,19 @@ -Node Configuration Examples | Waku Documentation +Node Configuration Examples | Waku Documentation - - - + + +

    Node Configuration Examples

    This guide provides detailed steps to configure a nwaku node for different use cases.

    Connect to other peers

    To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms:

    Configure a domain name

    You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node using the dns4-domain-name option. This allows the node's publicly announced multiaddrs to use the /dns4 scheme.

    ./build/wakunode2 --dns4-domain-name=[DOMAIN NAME]

    For example, consider the domain name nwakunode.com, which resolves to a nwaku node:

    ./build/wakunode2 --dns4-domain-name=nwakunode.com

    Browser nodes can only connect to nodes with a domain name and secure WebSocket (wss) configured. These nodes will generate a discoverable ENR with /wss as the multiaddr and /dns4 as the domain name. This configuration is essential for verifying domain certificates when establishing a secure connection.

    info

    This example describes configuring a domain name that resolves to your node's IP address and is unrelated to DNS Discovery.

    tip

    You can use the domain name provided by your cloud provider to configure the domain name for your node.

    Configure store protocol and message store

    To enable message caching and serve them to network peers, enable the Store protocol using the following configuration options:

    • store: Enables storing messages to serve them to peers (disabled by default).
    • store-message-retention-policy: Retention policy of the store node (how long messages will be stored). Three different retention policies are supported:
      • Time retention policy: time:<duration-in-seconds> (e.g., time:14400)
      • Capacity retention policy: capacity:<messages-count> (e.g, capacity:25000)
      • Size retention policy: size:<storage-in-MB/GB> (e.g, size:512MB or size:10GB)
      • Set this option to none to disable the retention policy. If you omit this option, it will default to time:172800 (48 hours).
    • store-message-db-url: Database connection URL for storing messages in the SQLAlchemy database URL format. Setting this option to an empty string will instruct the node to use the fallback in-memory message store. If you omit this option, it will default to sqlite://store.sqlite3.
    ./build/wakunode2 \
    --store=true \
    --store-message-retention-policy=[MESSAGE RETENTION POLICY] \
    --store-message-db-url=[DATABASE CONNECTION URL]

    For example, consider a nwaku node that is configured to be a Store protocol and retain messages received in the last 21600 seconds (6 hours):

    ./build/wakunode2 \
    --store=true \
    --store-message-retention-policy=time:21600 \
    --store-message-db-url=sqlite://store.sqlite3

    You can configure nwaku as a Store client using the storenode option. This allows the node to query peers for historical messages but not store any message itself.

    ./build/wakunode2 --storenode=[STORE PEER MULTIADDR]

    For example, consider a nwaku node that does not store messages but can query peers for historical messages:

    ./build/wakunode2 --storenode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV

    Generate and configure a node key

    Nodes generate new random key pairs at each boot, leading to different multiaddrs. To maintain consistency, you can use a pre-generated private key with the nodekey option:

    ./build/wakunode2 --nodekey=[NODE PRIVATE KEY]

    This option takes a Secp256k1 private key (64-char hex string). On Linux, you can use the OpenSSL rand command for a pseudo-random 32-byte hex string:

    openssl rand -hex 32

    # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    On Linux, you can create a reusable key file using OpenSSL. To get the 32-byte private key in hex format, use the ecparam command and some standard utilities:

    # Generate key file
    openssl ecparam -genkey -name secp256k1 -out my_private_key.pem

    # Extract 32-byte private key
    openssl ec -in my_private_key.pem -outform DER | tail -c +8 | head -c 32| xxd -p -c 32

    # read EC key
    # writing EC key
    # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    You can use the output 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 as a Node Key for nwaku:

    ./build/wakunode2 --nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    Configure WebSocket transport

    WebSocket is the only transport method browser nodes support using @waku/sdk. To enable WebSocket in nwaku to serve browser peers, use the following configuration options:

    • websocket-support: Enables WebSocket (ws) on the node (disabled by default).
    • websocket-port (optional): WebSocket listening port. If you omit this option, it will default to 8000.
    • websocket-secure-support: Enables Secure WebSocket (wss) on the node (disabled by default).
    • websocket-secure-key-path: Secure WebSocket key path.
    • websocket-secure-cert-path: Secure WebSocket Certificate path.
    ./build/wakunode2 \
    --websocket-support=true \
    --websocket-port=[WEBSOCKET LISTENING PORT] \
    --websocket-secure-support=true \
    --websocket-secure-key-path=[SECURE WEBSOCKET KEY PATH] \
    --websocket-secure-cert-path=[SECURE WEBSOCKET CERTIFICATE PATH]

    For example, consider a nwaku node that enabled WebSocket (unencrypted) for local testing on port 8001:

    ./build/wakunode2 \
    --websocket-support=true \
    --websocket-port=8001

    Consider a nwaku node that enabled Secure WebSocket (encrypted) using its key and certificate (privkey.pem and fullchain.pem) on port 8002:

    ./build/wakunode2 \
    --websocket-secure-support=true \
    --websocket-secure-key-path=privkey.pem \
    --websocket-secure-cert-path=fullchain.pem \
    --websocket-port=8002
    tip

    You can use Let's Encrypt or Certbot to generate a valid certificate for your nwaku node:

    sudo certbot certonly -d <your.domain.name>

    Configure REST API server

    Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options:

    • rest: Enables the REST API server on the node (disabled by default).
    • rest-address (optional): Listening address of the REST API server. If you omit this option, it will default to 127.0.0.1.
    • rest-port (optional): Listening port of the REST API server. If you omit this option, it will default to 8645.
    • rest-relay-cache-capacity (optional): Capacity of the Relay REST API message cache. If you omit this option, it will default to 30.
    • rest-admin (optional): Enables access to REST admin API (disabled by default).
    • rest-private (optional): Enables access to REST private API (disabled by default).
    ./build/wakunode2 \
    --rest=true \
    --rest-address=[REST SERVER LISTENING ADDRESS] \
    --rest-port=[REST SERVER LISTENING PORT] \
    --rest-relay-cache-capacity=[MESSAGE CACHE CAPACITY] \
    --rest-admin=[true|false] \
    --rest-private=[true|false]

    For example, consider a nwaku node that enabled the REST API server on port 9000:

    ./build/wakunode2 \
    --rest=true \
    --rest-port=9000 \
    --rest-address=127.0.0.1

    Consider a nwaku node that enabled the REST admin and private API with a message cache capacity of 100:

    ./build/wakunode2 \
    --rest=true \
    --rest-admin=true \
    --rest-private=true \
    --rest-relay-cache-capacity=100

    Configure filter protocol

    To enable nwaku to serve light clients, enable the Filter protocol using filter option:

    ./build/wakunode2 --filter=true

    You can configure nwaku as a Filter client using the filternode and filter-timeout options. This allows the node to request content filtering of messages from peers.

    ./build/wakunode2 \
    --filternode=[FILTER PEER MULTIADDR] \
    --filter-timeout=[FILTER PEER TIMEOUT]

    For example, consider a nwaku node that requests content filtering of messages from peers with a timeout of 21600 seconds (6 hours):

    ./build/wakunode2 \
    --filternode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV \
    --filter-timeout=21600
    info

    If you omit the filter-timeout option, it will default to 14400 seconds (4 hours).

    Configure light push protocol

    To enable nwaku to serve light clients, enable the Light Push protocol using the lightpush option:

    ./build/wakunode2 --lightpush=true

    You can configure nwaku as a Light Push client using the lightpushnode option. This allows the node to request lightpush of published messages from peers.

    ./build/wakunode2 --lightpushnode=[LIGHT PUSH PEER MULTIADDR]

    For example, consider a nwaku node that requests lightpush of published messages from peers:

    ./build/wakunode2 --lightpushnode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV

    Run nwaku behind a reverse proxy

    When using a reverse proxy server for SSL/TLS encryption, you only want to announce the proxy server's IP or domain. Nwaku provides the ext-multiaddr-only and ext-multiaddr options for specifying published multiaddr:

    ./build/wakunode2 \
    --ext-multiaddr-only=true \
    --ext-multiaddr=[MULTIADDR TO PUBLISH]
    info

    The ext-multiaddr-only option takes precedence over the nat and dns4-domain-name options, using the values provided by the ext-multiaddr option instead.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Node Configuration Examples

    This guide provides detailed steps to configure a nwaku node for different use cases.

    Connect to other peers

    To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms:

    Configure a domain name

    You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node using the dns4-domain-name option. This allows the node's publicly announced multiaddrs to use the /dns4 scheme.

    ./build/wakunode2 --dns4-domain-name=[DOMAIN NAME]

    For example, consider the domain name nwakunode.com, which resolves to a nwaku node:

    ./build/wakunode2 --dns4-domain-name=nwakunode.com

    Browser nodes can only connect to nodes with a domain name and secure WebSocket (wss) configured. These nodes will generate a discoverable ENR with /wss as the multiaddr and /dns4 as the domain name. This configuration is essential for verifying domain certificates when establishing a secure connection.

    info

    This example describes configuring a domain name that resolves to your node's IP address and is unrelated to DNS Discovery.

    tip

    You can use the domain name provided by your cloud provider to configure the domain name for your node.

    Configure store protocol and message store

    To enable message caching and serve them to network peers, enable the Store protocol using the following configuration options:

    • store: Enables storing messages to serve them to peers (disabled by default).
    • store-message-retention-policy: Retention policy of the store node (how long messages will be stored). Three different retention policies are supported:
      • Time retention policy: time:<duration-in-seconds> (e.g., time:14400)
      • Capacity retention policy: capacity:<messages-count> (e.g, capacity:25000)
      • Size retention policy: size:<storage-in-MB/GB> (e.g, size:512MB or size:10GB)
      • Set this option to none to disable the retention policy. If you omit this option, it will default to time:172800 (48 hours).
    • store-message-db-url: Database connection URL for storing messages in the SQLAlchemy database URL format. Setting this option to an empty string will instruct the node to use the fallback in-memory message store. If you omit this option, it will default to sqlite://store.sqlite3.
    ./build/wakunode2 \
    --store=true \
    --store-message-retention-policy=[MESSAGE RETENTION POLICY] \
    --store-message-db-url=[DATABASE CONNECTION URL]

    For example, consider a nwaku node that is configured to be a Store protocol and retain messages received in the last 21600 seconds (6 hours):

    ./build/wakunode2 \
    --store=true \
    --store-message-retention-policy=time:21600 \
    --store-message-db-url=sqlite://store.sqlite3

    You can configure nwaku as a Store client using the storenode option. This allows the node to query peers for historical messages but not store any message itself.

    ./build/wakunode2 --storenode=[STORE PEER MULTIADDR]

    For example, consider a nwaku node that does not store messages but can query peers for historical messages:

    ./build/wakunode2 --storenode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV

    Generate and configure a node key

    Nodes generate new random key pairs at each boot, leading to different multiaddrs. To maintain consistency, you can use a pre-generated private key with the nodekey option:

    ./build/wakunode2 --nodekey=[NODE PRIVATE KEY]

    This option takes a Secp256k1 private key (64-char hex string). On Linux, you can use the OpenSSL rand command for a pseudo-random 32-byte hex string:

    openssl rand -hex 32

    # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    On Linux, you can create a reusable key file using OpenSSL. To get the 32-byte private key in hex format, use the ecparam command and some standard utilities:

    # Generate key file
    openssl ecparam -genkey -name secp256k1 -out my_private_key.pem

    # Extract 32-byte private key
    openssl ec -in my_private_key.pem -outform DER | tail -c +8 | head -c 32| xxd -p -c 32

    # read EC key
    # writing EC key
    # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    You can use the output 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 as a Node Key for nwaku:

    ./build/wakunode2 --nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8

    Configure WebSocket transport

    WebSocket is the only transport method browser nodes support using @waku/sdk. To enable WebSocket in nwaku to serve browser peers, use the following configuration options:

    • websocket-support: Enables WebSocket (ws) on the node (disabled by default).
    • websocket-port (optional): WebSocket listening port. If you omit this option, it will default to 8000.
    • websocket-secure-support: Enables Secure WebSocket (wss) on the node (disabled by default).
    • websocket-secure-key-path: Secure WebSocket key path.
    • websocket-secure-cert-path: Secure WebSocket Certificate path.
    ./build/wakunode2 \
    --websocket-support=true \
    --websocket-port=[WEBSOCKET LISTENING PORT] \
    --websocket-secure-support=true \
    --websocket-secure-key-path=[SECURE WEBSOCKET KEY PATH] \
    --websocket-secure-cert-path=[SECURE WEBSOCKET CERTIFICATE PATH]

    For example, consider a nwaku node that enabled WebSocket (unencrypted) for local testing on port 8001:

    ./build/wakunode2 \
    --websocket-support=true \
    --websocket-port=8001

    Consider a nwaku node that enabled Secure WebSocket (encrypted) using its key and certificate (privkey.pem and fullchain.pem) on port 8002:

    ./build/wakunode2 \
    --websocket-secure-support=true \
    --websocket-secure-key-path=privkey.pem \
    --websocket-secure-cert-path=fullchain.pem \
    --websocket-port=8002
    tip

    You can use Let's Encrypt or Certbot to generate a valid certificate for your nwaku node:

    sudo certbot certonly -d <your.domain.name>

    Configure REST API server

    Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options:

    • rest: Enables the REST API server on the node (disabled by default).
    • rest-address (optional): Listening address of the REST API server. If you omit this option, it will default to 127.0.0.1.
    • rest-port (optional): Listening port of the REST API server. If you omit this option, it will default to 8645.
    • rest-relay-cache-capacity (optional): Capacity of the Relay REST API message cache. If you omit this option, it will default to 30.
    • rest-admin (optional): Enables access to REST admin API (disabled by default).
    • rest-private (optional): Enables access to REST private API (disabled by default).
    ./build/wakunode2 \
    --rest=true \
    --rest-address=[REST SERVER LISTENING ADDRESS] \
    --rest-port=[REST SERVER LISTENING PORT] \
    --rest-relay-cache-capacity=[MESSAGE CACHE CAPACITY] \
    --rest-admin=[true|false] \
    --rest-private=[true|false]

    For example, consider a nwaku node that enabled the REST API server on port 9000:

    ./build/wakunode2 \
    --rest=true \
    --rest-port=9000 \
    --rest-address=127.0.0.1

    Consider a nwaku node that enabled the REST admin and private API with a message cache capacity of 100:

    ./build/wakunode2 \
    --rest=true \
    --rest-admin=true \
    --rest-private=true \
    --rest-relay-cache-capacity=100

    Configure filter protocol

    To enable nwaku to serve light clients, enable the Filter protocol using filter option:

    ./build/wakunode2 --filter=true

    You can configure nwaku as a Filter client using the filternode and filter-timeout options. This allows the node to request content filtering of messages from peers.

    ./build/wakunode2 \
    --filternode=[FILTER PEER MULTIADDR] \
    --filter-timeout=[FILTER PEER TIMEOUT]

    For example, consider a nwaku node that requests content filtering of messages from peers with a timeout of 21600 seconds (6 hours):

    ./build/wakunode2 \
    --filternode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV \
    --filter-timeout=21600
    info

    If you omit the filter-timeout option, it will default to 14400 seconds (4 hours).

    Configure light push protocol

    To enable nwaku to serve light clients, enable the Light Push protocol using the lightpush option:

    ./build/wakunode2 --lightpush=true

    You can configure nwaku as a Light Push client using the lightpushnode option. This allows the node to request lightpush of published messages from peers.

    ./build/wakunode2 --lightpushnode=[LIGHT PUSH PEER MULTIADDR]

    For example, consider a nwaku node that requests lightpush of published messages from peers:

    ./build/wakunode2 --lightpushnode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV

    Run nwaku behind a reverse proxy

    When using a reverse proxy server for SSL/TLS encryption, you only want to announce the proxy server's IP or domain. Nwaku provides the ext-multiaddr-only and ext-multiaddr options for specifying published multiaddr:

    ./build/wakunode2 \
    --ext-multiaddr-only=true \
    --ext-multiaddr=[MULTIADDR TO PUBLISH]
    info

    The ext-multiaddr-only option takes precedence over the nat and dns4-domain-name options, using the values provided by the ext-multiaddr option instead.

    + + \ No newline at end of file diff --git a/guides/nwaku/faq/index.html b/guides/nwaku/faq/index.html index c4264a9..6040b90 100644 --- a/guides/nwaku/faq/index.html +++ b/guides/nwaku/faq/index.html @@ -3,19 +3,19 @@ -Nwaku FAQ | Waku Documentation +Nwaku FAQ | Waku Documentation - - - + + +

    Nwaku FAQ

    Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source.
    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.
    You can interact with a running nwaku node using the REST API interface or the JavaScript Waku SDK.
    To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"
    You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the Node Configuration Methods guide to understand their usage and priority.
    Check out the Node Configuration Options guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the Node Configuration Examples guide.
    You can configure peer discovery for nwaku nodes through options like Static Peers, DNS Discovery, DiscV5, and Peer Exchange. Check out the Configure Peer Discovery guide for setting up your node.
    The node listening and ENR addresses can be found through the node's logs and REST API. Check out the Find the node addresses section to understand how to locate your node addresses.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Nwaku FAQ

    Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source.
    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.
    You can interact with a running nwaku node using the REST API interface or the JavaScript Waku SDK.
    To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"
    You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the Node Configuration Methods guide to understand their usage and priority.
    Check out the Node Configuration Options guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the Node Configuration Examples guide.
    You can configure peer discovery for nwaku nodes through options like Static Peers, DNS Discovery, DiscV5, and Peer Exchange. Check out the Configure Peer Discovery guide for setting up your node.
    The node listening and ENR addresses can be found through the node's logs and REST API. Check out the Find the node addresses section to understand how to locate your node addresses.
    + + \ No newline at end of file diff --git a/guides/nwaku/find-node-address/index.html b/guides/nwaku/find-node-address/index.html index 70307f6..8539944 100644 --- a/guides/nwaku/find-node-address/index.html +++ b/guides/nwaku/find-node-address/index.html @@ -3,19 +3,19 @@ -Find Your Node Address | Waku Documentation +Find Your Node Address | Waku Documentation - - - + + +

    Find Your Node Address

    info

    When starting the node, nwaku will display all the public listening and discovery addresses at the INFO log level.

    You can find the addresses of a running node through its logs or by calling the Get node info endpoint of the REST API.

    Listening addresses

    Look for the log entry that begins with Listening on, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 Listening on                               topics="waku node" tid=1623445 file=waku_node.nim:922 full=[/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn][/ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn]
    # Listening TCP transport address
    /ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn

    # Listening WebSocket address
    /ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn

    Discoverable ENR addresses

    A nwaku node can encode its addressing information in an Ethereum Node Record (ENR).

    ENR for DNS discovery

    Look for the log entry that begins with DNS: discoverable ENR, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 DNS: discoverable ENR                      topics="waku node" tid=1623445 file=waku_node.nim:923 enr=enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB
    # ENR the node addresses are encoded in
    enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB

    ENR for Discv5

    Look for the log entry that begins with Discv5: discoverable ENR, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 Discv5: discoverable ENR                   topics="waku node" tid=1623445 file=waku_node.nim:924 enr=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    # ENR the node addresses are encoded in
    enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    Congratulations!

    You have successfully found the listening and discoverable addresses for your nwaku node. Have a look at the Configure Peer Discovery guide to learn how to discover and connect with peers in the network.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Find Your Node Address

    info

    When starting the node, nwaku will display all the public listening and discovery addresses at the INFO log level.

    You can find the addresses of a running node through its logs or by calling the Get node info endpoint of the REST API.

    Listening addresses

    Look for the log entry that begins with Listening on, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 Listening on                               topics="waku node" tid=1623445 file=waku_node.nim:922 full=[/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn][/ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn]
    # Listening TCP transport address
    /ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn

    # Listening WebSocket address
    /ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn

    Discoverable ENR addresses

    A nwaku node can encode its addressing information in an Ethereum Node Record (ENR).

    ENR for DNS discovery

    Look for the log entry that begins with DNS: discoverable ENR, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 DNS: discoverable ENR                      topics="waku node" tid=1623445 file=waku_node.nim:923 enr=enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB
    # ENR the node addresses are encoded in
    enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB

    ENR for Discv5

    Look for the log entry that begins with Discv5: discoverable ENR, for example:

    Nwaku Log Output
    INF 2023-06-15 16:09:54.448+01:00 Discv5: discoverable ENR                   topics="waku node" tid=1623445 file=waku_node.nim:924 enr=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    # ENR the node addresses are encoded in
    enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw
    Congratulations!

    You have successfully found the listening and discoverable addresses for your nwaku node. Have a look at the Configure Peer Discovery guide to learn how to discover and connect with peers in the network.

    + + \ No newline at end of file diff --git a/guides/nwaku/run-docker-compose/index.html b/guides/nwaku/run-docker-compose/index.html index ea9fddc..00533bd 100644 --- a/guides/nwaku/run-docker-compose/index.html +++ b/guides/nwaku/run-docker-compose/index.html @@ -3,19 +3,19 @@ -Run Nwaku with Docker Compose | Waku Documentation +Run Nwaku with Docker Compose | Waku Documentation - - - + + +

    Run Nwaku with Docker Compose

    nwaku-compose is a ready-to-use Docker Compose setup that configures the following automatically:

    • nwaku node running Relay and Store protocols with RLN enabled.
    • Simple frontend to interact with the node and Waku network to send and receive messages.
    • Grafana metrics dashboard for advanced users and node operators to monitor the node.

    Video tutorial

    tip

    Check out the Waku Node Operator Cheatsheet to learn how to easily run, monitor, and interact with a node.

    Prerequisites

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Clone the repository

    git clone https://github.com/waku-org/nwaku-compose
    cd nwaku-compose

    Configure the setup

    Docker Compose reads the .env file from the filesystem. You can use .env.example as a template to provide the configuration values. The recommended process for working with .env files is to duplicate .env.example, rename it as .env, and then make the necessary value edits.

    cp .env.example .env
    ${EDITOR} .env
    caution

    Ensure that you do NOT include any secrets in the .env.example file, as it could accidentally be shared in your Git repository.

    Register for RLN membership

    The RLN membership is your access key to The Waku Network. Its registration is done on-chain, allowing your nwaku node to send messages decentralised and privately, respecting some rate limits. Other peers won't relay messages that exceed the rate limit.

    This command registers your membership and saves it in the keystore/keystore.json file. You should have Docker running at this step:

    ./register_rln.sh
    tip

    If you only want to relay traffic without sending messages to the network, you don't need to register for RLN membership.

    Run the node

    Launch all the processes: nwaku node, database for storing messages, and Grafana for metrics with the following command. Your RLN membership is loaded into nwaku under the hood:

    docker-compose up -d

    View the logs of the node to confirm that it is running correctly:

    docker-compose logs -f nwaku

    Monitor the node

    Visit http://localhost:3000/d/yns_4vFVk/nwaku-monitoring to view your node metrics in real time.

    nwaku compose dashboard

    tip

    To access Grafana from outside your machine, remove 127.0.0.1 and open the port. Consider setting up a password for Grafana to ensure security.

    Interact with the node

    Your nwaku node provides a REST API on port 8645 for interacting with it:

    # Get nwaku version
    curl --location 'http://127.0.0.1:8645/debug/v1/version'

    # Get nwaku info
    curl --location 'http://127.0.0.1:8645/debug/v1/info'

    Send a message to a contentTopic, which all subscribers will receive. Please note that the payload is encoded in base64.

    curl --location 'http://127.0.0.1:8645/relay/v1/auto/messages' \
    --header 'Content-Type: application/json' \
    --data '{
    "payload": "'$(echo -n "Hello Waku Network - from Anonymous User" | base64)'",
    "contentTopic": "/my-app/2/chatroom-1/proto"
    }'

    Retrieve messages sent to a contentTopic. Please note that this query can be made to any Store node within the network:

    curl --location 'http://127.0.0.1:8645/store/v1/messages?contentTopics=%2Fmy-app%2F2%2Fchatroom-1%2Fproto&pageSize=50&ascending=true' \
    --header 'Accept: application/json'
    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully started a nwaku node with RLN enabled using Docker Compose. Have a look at the Node Configuration Examples and Advanced Configuration guides to learn how to configure nwaku for different use cases.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Run Nwaku with Docker Compose

    nwaku-compose is a ready-to-use Docker Compose setup that configures the following automatically:

    • nwaku node running Relay and Store protocols with RLN enabled.
    • Simple frontend to interact with the node and Waku network to send and receive messages.
    • Grafana metrics dashboard for advanced users and node operators to monitor the node.

    Video tutorial

    tip

    Check out the Waku Node Operator Cheatsheet to learn how to easily run, monitor, and interact with a node.

    Prerequisites

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Clone the repository

    git clone https://github.com/waku-org/nwaku-compose
    cd nwaku-compose

    Configure the setup

    Docker Compose reads the .env file from the filesystem. You can use .env.example as a template to provide the configuration values. The recommended process for working with .env files is to duplicate .env.example, rename it as .env, and then make the necessary value edits.

    cp .env.example .env
    ${EDITOR} .env
    caution

    Ensure that you do NOT include any secrets in the .env.example file, as it could accidentally be shared in your Git repository.

    Register for RLN membership

    The RLN membership is your access key to The Waku Network. Its registration is done on-chain, allowing your nwaku node to send messages decentralised and privately, respecting some rate limits. Other peers won't relay messages that exceed the rate limit.

    This command registers your membership and saves it in the keystore/keystore.json file. You should have Docker running at this step:

    ./register_rln.sh
    tip

    If you only want to relay traffic without sending messages to the network, you don't need to register for RLN membership.

    Run the node

    Launch all the processes: nwaku node, database for storing messages, and Grafana for metrics with the following command. Your RLN membership is loaded into nwaku under the hood:

    docker-compose up -d

    View the logs of the node to confirm that it is running correctly:

    docker-compose logs -f nwaku

    Monitor the node

    Visit http://localhost:3000/d/yns_4vFVk/nwaku-monitoring to view your node metrics in real time.

    nwaku compose dashboard

    tip

    To access Grafana from outside your machine, remove 127.0.0.1 and open the port. Consider setting up a password for Grafana to ensure security.

    Interact with the node

    Your nwaku node provides a REST API on port 8645 for interacting with it:

    # Get nwaku version
    curl --location 'http://127.0.0.1:8645/debug/v1/version'

    # Get nwaku info
    curl --location 'http://127.0.0.1:8645/debug/v1/info'

    Send a message to a contentTopic, which all subscribers will receive. Please note that the payload is encoded in base64.

    curl --location 'http://127.0.0.1:8645/relay/v1/auto/messages' \
    --header 'Content-Type: application/json' \
    --data '{
    "payload": "'$(echo -n "Hello Waku Network - from Anonymous User" | base64)'",
    "contentTopic": "/my-app/2/chatroom-1/proto"
    }'

    Retrieve messages sent to a contentTopic. Please note that this query can be made to any Store node within the network:

    curl --location 'http://127.0.0.1:8645/store/v1/messages?contentTopics=%2Fmy-app%2F2%2Fchatroom-1%2Fproto&pageSize=50&ascending=true' \
    --header 'Accept: application/json'
    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully started a nwaku node with RLN enabled using Docker Compose. Have a look at the Node Configuration Examples and Advanced Configuration guides to learn how to configure nwaku for different use cases.

    + + \ No newline at end of file diff --git a/guides/nwaku/run-docker/index.html b/guides/nwaku/run-docker/index.html index 3abf030..2ff1be0 100644 --- a/guides/nwaku/run-docker/index.html +++ b/guides/nwaku/run-docker/index.html @@ -3,19 +3,19 @@ -Run Nwaku in a Docker Container | Waku Documentation +Run Nwaku in a Docker Container | Waku Documentation - - - + + +

    Run Nwaku in a Docker Container

    This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.

    Prerequisites

    Ensure Docker is installed on your system using the appropriate instructions provided in the Docker documentation.

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Get Docker image

    The Nwaku Docker images are available on the Docker Hub public registry under the wakuorg/nwaku repository. Please visit wakuorg/nwaku/tags for images of specific releases.

    Build Docker image

    You can also build the Docker image locally:

    # Clone the repository
    git clone --recurse-submodules https://github.com/waku-org/nwaku
    cd nwaku

    # Build docker image
    make docker-image

    Run Docker container

    Run nwaku in a new Docker container:

    docker run [OPTIONS] [IMAGE] [ARG...]

    Run nwaku using the most typical configuration:

    docker run -i -t -p 60000:60000 -p 9000:9000/udp wakuorg/nwaku:v0.32.0 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \
    --discv5-discovery=true \
    --nat=extip:[YOUR PUBLIC IP] # or, if you are behind a nat: --nat=any

    To find your public IP, use:

    dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'

    For more detailed information about all possible configurations, please run

    docker run -t wakuorg/nwaku:v0.32.0 --help
    info

    Note that running a node in The Waku Network (--cluster-id=1) requires a special set of configurations and therefore, it is recommended to run in this case with docker compose

    info

    We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers).

    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully built and started a nwaku node in a Docker container. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Run Nwaku in a Docker Container

    This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.

    Prerequisites

    Ensure Docker is installed on your system using the appropriate instructions provided in the Docker documentation.

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Get Docker image

    The Nwaku Docker images are available on the Docker Hub public registry under the wakuorg/nwaku repository. Please visit wakuorg/nwaku/tags for images of specific releases.

    Build Docker image

    You can also build the Docker image locally:

    # Clone the repository
    git clone --recurse-submodules https://github.com/waku-org/nwaku
    cd nwaku

    # Build docker image
    make docker-image

    Run Docker container

    Run nwaku in a new Docker container:

    docker run [OPTIONS] [IMAGE] [ARG...]

    Run nwaku using the most typical configuration:

    docker run -i -t -p 60000:60000 -p 9000:9000/udp wakuorg/nwaku:v0.32.0 \
    --dns-discovery=true \
    --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \
    --discv5-discovery=true \
    --nat=extip:[YOUR PUBLIC IP] # or, if you are behind a nat: --nat=any

    To find your public IP, use:

    dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'

    For more detailed information about all possible configurations, please run

    docker run -t wakuorg/nwaku:v0.32.0 --help
    info

    Note that running a node in The Waku Network (--cluster-id=1) requires a special set of configurations and therefore, it is recommended to run in this case with docker compose

    info

    We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers).

    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully built and started a nwaku node in a Docker container. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    + + \ No newline at end of file diff --git a/guides/nwaku/run-node/index.html b/guides/nwaku/run-node/index.html index 8697b4d..05ec11c 100644 --- a/guides/nwaku/run-node/index.html +++ b/guides/nwaku/run-node/index.html @@ -3,19 +3,19 @@ -Run a Nwaku Node | Waku Documentation +Run a Nwaku Node | Waku Documentation - - - + + +

    Run a Nwaku Node

    Nwaku is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the protocols they want to support based on their needs, motivations, and available resources.

    waku architecture

    This guide provides detailed steps to download, build, configure, and connect a nwaku node to the Waku Network. It also includes interacting with the node and finding its addresses.

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Get the node binary

    To run a node, you must have the nwaku binary. Nwaku provides multiple options for running a node:

    We recommend using Docker Compose to run a node because it's the simplest and fastest way to configure and run one:

    DescriptionDocumentation
    Docker ComposeRun a nwaku node with Docker ComposeRun Nwaku with Docker Compose
    Docker ContainerRun a nwaku node in a Docker ContainerRun Nwaku in a Docker Container

    Download the binary

    DescriptionDocumentation
    Precompiled BinaryDownload a precompiled binary of the nwaku nodeDownload Nwaku Binary
    Nightly ReleaseTry the latest nwaku updates without compiling the binariesDownload Nightly Release

    Build the binary

    DescriptionDocumentation
    Build from SourceBuild the node from the nwaku source codeBuild Nwaku from Source
    tip

    You can run the nwaku binaries and Docker images on cloud service providers like Google Cloud, Microsoft Azure, Amazon Web Services, and DigitalOcean.

    Run the node

    Once you have gotten the nwaku binary, run it using the default configuration:

    # Run the Docker Compose
    docker-compose up -d

    # Run the standalone binary
    ./build/wakunode2
    tip

    To learn how to customise the configuration of a nwaku node, have a look at the Node Configuration Methods and Node Configuration Examples guides.

    Bootstrap the node

    To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms:

    DescriptionDocumentation
    Static PeersConfigure the bootstrap nodes that nwaku should establish connections upon startupConfigure Static Peers
    DNS DiscoveryEnable nwaku to bootstrap nodes using the DNS Discovery mechanismConfigure DNS Discovery
    Discv5Enable nwaku to discover peers using the Discv5 mechanismConfigure Discv5
    Peer ExchangeEnable Peer Exchange protocol for light nodes to request peers from your nwaku nodeConfigure Peer Exchange
    tip

    We suggest configuring WebSocket transport for your node to enable support and serving of browser peers using @waku/sdk.

    Interact with the node

    You can interact with a running nwaku node through the REST API, such as querying the node information using the Get node info endpoint:

    curl --location 'http://127.0.0.1:8645/debug/v1/info' \
    --header 'Accept: application/json'
    info

    The listenAddresses field stores the node's listening addresses, while the enrUri field stores the discoverable ENR URI for peer discovery.

    Check the node health status

    You can check the health status of the node by calling the Get node health status endpoint of the REST API:

    curl --location 'http://127.0.0.1:8645/health' \
    --header 'Accept: text/plain'
    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully started, configured, and connected a nwaku node to the Waku Network. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Run a Nwaku Node

    Nwaku is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the protocols they want to support based on their needs, motivations, and available resources.

    waku architecture

    This guide provides detailed steps to download, build, configure, and connect a nwaku node to the Waku Network. It also includes interacting with the node and finding its addresses.

    info

    We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.

    Get the node binary

    To run a node, you must have the nwaku binary. Nwaku provides multiple options for running a node:

    We recommend using Docker Compose to run a node because it's the simplest and fastest way to configure and run one:

    DescriptionDocumentation
    Docker ComposeRun a nwaku node with Docker ComposeRun Nwaku with Docker Compose
    Docker ContainerRun a nwaku node in a Docker ContainerRun Nwaku in a Docker Container

    Download the binary

    DescriptionDocumentation
    Precompiled BinaryDownload a precompiled binary of the nwaku nodeDownload Nwaku Binary
    Nightly ReleaseTry the latest nwaku updates without compiling the binariesDownload Nightly Release

    Build the binary

    DescriptionDocumentation
    Build from SourceBuild the node from the nwaku source codeBuild Nwaku from Source
    tip

    You can run the nwaku binaries and Docker images on cloud service providers like Google Cloud, Microsoft Azure, Amazon Web Services, and DigitalOcean.

    Run the node

    Once you have gotten the nwaku binary, run it using the default configuration:

    # Run the Docker Compose
    docker-compose up -d

    # Run the standalone binary
    ./build/wakunode2
    tip

    To learn how to customise the configuration of a nwaku node, have a look at the Node Configuration Methods and Node Configuration Examples guides.

    Bootstrap the node

    To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms:

    DescriptionDocumentation
    Static PeersConfigure the bootstrap nodes that nwaku should establish connections upon startupConfigure Static Peers
    DNS DiscoveryEnable nwaku to bootstrap nodes using the DNS Discovery mechanismConfigure DNS Discovery
    Discv5Enable nwaku to discover peers using the Discv5 mechanismConfigure Discv5
    Peer ExchangeEnable Peer Exchange protocol for light nodes to request peers from your nwaku nodeConfigure Peer Exchange
    tip

    We suggest configuring WebSocket transport for your node to enable support and serving of browser peers using @waku/sdk.

    Interact with the node

    You can interact with a running nwaku node through the REST API, such as querying the node information using the Get node info endpoint:

    curl --location 'http://127.0.0.1:8645/debug/v1/info' \
    --header 'Accept: application/json'
    info

    The listenAddresses field stores the node's listening addresses, while the enrUri field stores the discoverable ENR URI for peer discovery.

    Check the node health status

    You can check the health status of the node by calling the Get node health status endpoint of the REST API:

    curl --location 'http://127.0.0.1:8645/health' \
    --header 'Accept: text/plain'
    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Congratulations!

    You have successfully started, configured, and connected a nwaku node to the Waku Network. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.

    + + \ No newline at end of file diff --git a/guides/nwaku/upgrade-instructions/index.html b/guides/nwaku/upgrade-instructions/index.html index 8e8efcb..c554ca7 100644 --- a/guides/nwaku/upgrade-instructions/index.html +++ b/guides/nwaku/upgrade-instructions/index.html @@ -3,19 +3,19 @@ -Upgrade Instructions | Waku Documentation +Upgrade Instructions | Waku Documentation - - - + + +

    Upgrade Instructions

    If you are currently using Nwaku, running an old version and want to upgrade your node, please follow the below migration instructions for each target release newer than your current running version in ascending order.

    For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0

    Target Releases

    The --protected-topic CLI config was deprecated and is replaced by the new --protected-shard configuration. Instead of configuring topic:public_key you will now need to configure shard:public_key

    For example, if you used to run your node with --protected-topic="waku/2/rs/3/4:your_public_key" you will need to replace this configuration for --protected-shard="4:your_public_key"

    Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: /waku/2/rs/<CLUSTER_ID>/<SHARD_ID>

    In order to migrate your existing application, you need to:

    1. Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using js-waku, the configured pubsub topics follow the static sharding format defined above.
    2. When running a node with the --pubsub-topic CLI flag, the values provided should comply with the static sharding format.
    3. If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Upgrade Instructions

    If you are currently using Nwaku, running an old version and want to upgrade your node, please follow the below migration instructions for each target release newer than your current running version in ascending order.

    For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0

    Target Releases

    The --protected-topic CLI config was deprecated and is replaced by the new --protected-shard configuration. Instead of configuring topic:public_key you will now need to configure shard:public_key

    For example, if you used to run your node with --protected-topic="waku/2/rs/3/4:your_public_key" you will need to replace this configuration for --protected-shard="4:your_public_key"

    Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: /waku/2/rs/<CLUSTER_ID>/<SHARD_ID>

    In order to migrate your existing application, you need to:

    1. Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using js-waku, the configured pubsub topics follow the static sharding format defined above.
    2. When running a node with the --pubsub-topic CLI flag, the values provided should comply with the static sharding format.
    3. If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period.
    + + \ No newline at end of file diff --git a/index.html b/index.html index bb004ca..4bc5cd1 100644 --- a/index.html +++ b/index.html @@ -3,19 +3,19 @@ -Introduction to Waku | Waku Documentation +Introduction to Waku | Waku Documentation - - - + + +

    Introduction to Waku

    Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy.

    tip

    Check out our Learn section, YouTube channel, and Blog to dive into how Waku works behind the scenes!

    What isn’t Waku?

    • Waku is not a blockchain but a network composed of protocols designed for Web3 communication, operating without the need for gas fees.
    • Waku is not just for messaging applications; it supports the development of complex applications that require secure and private data transmission.
    • Waku is not a long-term data storage network; it focuses on short, ephemeral, real-time messaging.

    What can Waku be used for?

    1. Chat Messengers: Waku can be used to build private, decentralised chat apps resistant to censorship.
    2. Voting and Proposals: Exchange votes on proposals off-chain via Waku to save gas fees, then submit aggregated results to the blockchain.
    3. NFT Marketplaces: Use Waku to handle off-chain NFT bids and offers for gas savings, and to integrate social interactions like likes and comments.
    4. State Channels: Establish and maintain state channels with Waku, facilitating seamless message exchanges and updates without blockchain interaction.
    5. Signature Exchange for Multi-Signature Wallets: Allow multi-signature wallet owners to exchange signatures privately and securely through Waku.
    6. Game Mechanics Communication: Implement Waku as a communication layer for decentralised, peer-to-peer gaming, avoiding centralised infrastructure.
    7. Layer 2 Coordination (Open Market, Spam Protected Mempool): Broadcast and aggregate Layer 2 transactions via Waku to enhance privacy and scalability, reducing network load.
    8. Social Media Platforms: Beyond chat messengers, use Waku for decentralised, censorship-resistant social media platforms like news feeds and multimedia sharing.
    tip

    Looking for what to build with Waku? Discover a collection of sample ideas and use cases for inspiration, curated by our community at: https://ideas.waku.org/ and Awesome Waku.

    Case studies

    Getting started

    Run a Waku node

    Waku is a decentralised, permissionless system where anyone can run a node, use the network, and contribute to its support. We recommend following the Run Nwaku with Docker Compose guide and Waku Node Operator Cheatsheet to easily run a node.

    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Integrate using SDKs

    Waku is implemented in multiple SDKs, allowing it to integrate with different languages and address various use cases efficiently.

    DescriptionDocumentation
    @waku/sdkJavaScript/TypeScript SDK designed for browser environmentsJavaScript Waku SDK
    @waku/reactReact components and UI adapters designed for seamless integration with @waku/sdkBuild React DApps Using @waku/react

    Other integrations

    DescriptionDocumentation
    REST APIREST API interface provided by nwaku and go-waku to interact with the Waku NetworkWaku Node REST API Reference
    @waku/create-appStarter kit to bootstrap your next @waku/sdk project from various example templatesScaffold DApps Using @waku/create-app
    tip

    Explore some example apps built using Waku at https://examples.waku.org/ and view a list of projects and workshops from previous hackathons at Awesome Waku.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Introduction to Waku

    Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy.

    tip

    Check out our Learn section, YouTube channel, and Blog to dive into how Waku works behind the scenes!

    What isn’t Waku?

    • Waku is not a blockchain but a network composed of protocols designed for Web3 communication, operating without the need for gas fees.
    • Waku is not just for messaging applications; it supports the development of complex applications that require secure and private data transmission.
    • Waku is not a long-term data storage network; it focuses on short, ephemeral, real-time messaging.

    What can Waku be used for?

    1. Chat Messengers: Waku can be used to build private, decentralised chat apps resistant to censorship.
    2. Voting and Proposals: Exchange votes on proposals off-chain via Waku to save gas fees, then submit aggregated results to the blockchain.
    3. NFT Marketplaces: Use Waku to handle off-chain NFT bids and offers for gas savings, and to integrate social interactions like likes and comments.
    4. State Channels: Establish and maintain state channels with Waku, facilitating seamless message exchanges and updates without blockchain interaction.
    5. Signature Exchange for Multi-Signature Wallets: Allow multi-signature wallet owners to exchange signatures privately and securely through Waku.
    6. Game Mechanics Communication: Implement Waku as a communication layer for decentralised, peer-to-peer gaming, avoiding centralised infrastructure.
    7. Layer 2 Coordination (Open Market, Spam Protected Mempool): Broadcast and aggregate Layer 2 transactions via Waku to enhance privacy and scalability, reducing network load.
    8. Social Media Platforms: Beyond chat messengers, use Waku for decentralised, censorship-resistant social media platforms like news feeds and multimedia sharing.
    tip

    Looking for what to build with Waku? Discover a collection of sample ideas and use cases for inspiration, curated by our community at: https://ideas.waku.org/ and Awesome Waku.

    Case studies

    Getting started

    Run a Waku node

    Waku is a decentralised, permissionless system where anyone can run a node, use the network, and contribute to its support. We recommend following the Run Nwaku with Docker Compose guide and Waku Node Operator Cheatsheet to easily run a node.

    tip

    If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.

    Integrate using SDKs

    Waku is implemented in multiple SDKs, allowing it to integrate with different languages and address various use cases efficiently.

    DescriptionDocumentation
    @waku/sdkJavaScript/TypeScript SDK designed for browser environmentsJavaScript Waku SDK
    @waku/reactReact components and UI adapters designed for seamless integration with @waku/sdkBuild React DApps Using @waku/react

    Other integrations

    DescriptionDocumentation
    REST APIREST API interface provided by nwaku and go-waku to interact with the Waku NetworkWaku Node REST API Reference
    @waku/create-appStarter kit to bootstrap your next @waku/sdk project from various example templatesScaffold DApps Using @waku/create-app
    tip

    Explore some example apps built using Waku at https://examples.waku.org/ and view a list of projects and workshops from previous hackathons at Awesome Waku.

    + + \ No newline at end of file diff --git a/learn/concepts/content-topics/index.html b/learn/concepts/content-topics/index.html index 578e89c..bd0b870 100644 --- a/learn/concepts/content-topics/index.html +++ b/learn/concepts/content-topics/index.html @@ -3,19 +3,19 @@ -Content Topics | Waku Documentation +Content Topics | Waku Documentation - - - + + +

    Content Topics

    Content Topics are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages (Relay or Filter) and retrieving historical messages (Store) that meet specific filtering criteria. Have a look at the WAKU2-TOPICS specification to learn more.

    Naming format

    Here is the recommended format for content topics:

    /{application-name}/{version}/{content-topic-name}/{encoding}

    • application-name: This is the unique name of your decentralised application (DApp) to prevent conflicts with other DApps.
    • version: Typically starting at 1, this field helps track breaking changes in your messages.
    • content-topic-name: The specific name of the content topic used for filtering.
    • encoding: The message encoding or serialisation format, with Protocol Buffers (proto) being the recommended choice.

    For example, if your DApp is called SuperCrypto and it allows users to receive notifications and send private messages, you can consider using the following content topics:

    • /supercrypto/1/notification/proto
    • /supercrypto/1/private-message/proto
    tip

    While you can choose any encoding format for your Content Topic, we highly recommend using Protocol Buffers (proto) because of its efficiency. Choosing a lightweight format ensures optimal performance of your DApp.

    Naming considerations

    When choosing a content topic, it is essential to consider the privacy implications. Here are several factors to keep in mind:

    Protocols disclose content topics to peers

    The Filter, Store, and Light Push protocols share content topics with peers, allowing them to link IP and content topic interests. The Relay protocol, using GossipSub, provides recipient anonymity, which can be compromised if the content topic exposes user information.

    For example, instead of using Personally Identifiable Information (PII) in the content topic (e.g., a public key), you can create buckets (e.g., based on the first 4 bytes of the public key hash).

    info

    Waku is developing privacy-preserving features like Anonymous Filter Subscription for the Filter protocol and Anonymous Query for the Store protocol to hide content topics from potential adversaries.

    Increasing k-anonymity preserves user anonymity

    You can increase k-anonymity within the network by using a unified content topic across the entire application or targeting specific features like notifications or private messages, allowing multiple users to share it.

    We recommend switching functionality using the Protocol Buffer (proto) message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy. For example:

    message NotificationPayload {
    ...
    }

    message FeatureAbcPayload {
    ...
    }

    // By default, all fields in protobuf are optional so only field may be encoded at a time
    message Payload {
    NotificationPayload notification = 1;
    FeatureAbcPayload feature_abc = 2;
    }

    Creating buckets help in distributing traffic

    When an application uses a single content topic, all users using request/response protocols (Filter, Store) receive all its messages. For heavy traffic, developers can create buckets by hashing a unique identifier (e.g., recipient's ID, public key, or app domain topic) and adding its first byte to the content topic, like /my-app/0/a/proto.

    This approach divides traffic into multiple topics, reducing the messages users have to download. Developers can add more first bytes to the content topic over time to improve efficiency and privacy based on messages and user needs.

    info

    The k value of k-anonymity equals the number of IDs for which the first character of the hash is "a". For example, using a single content topic in an application with 10,000 users results in k = 10,000. However, using the hash ID's first character, k reduces to 10,000 / 16 = 625.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Content Topics

    Content Topics are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages (Relay or Filter) and retrieving historical messages (Store) that meet specific filtering criteria. Have a look at the WAKU2-TOPICS specification to learn more.

    Naming format

    Here is the recommended format for content topics:

    /{application-name}/{version}/{content-topic-name}/{encoding}

    • application-name: This is the unique name of your decentralised application (DApp) to prevent conflicts with other DApps.
    • version: Typically starting at 1, this field helps track breaking changes in your messages.
    • content-topic-name: The specific name of the content topic used for filtering.
    • encoding: The message encoding or serialisation format, with Protocol Buffers (proto) being the recommended choice.

    For example, if your DApp is called SuperCrypto and it allows users to receive notifications and send private messages, you can consider using the following content topics:

    • /supercrypto/1/notification/proto
    • /supercrypto/1/private-message/proto
    tip

    While you can choose any encoding format for your Content Topic, we highly recommend using Protocol Buffers (proto) because of its efficiency. Choosing a lightweight format ensures optimal performance of your DApp.

    Naming considerations

    When choosing a content topic, it is essential to consider the privacy implications. Here are several factors to keep in mind:

    Protocols disclose content topics to peers

    The Filter, Store, and Light Push protocols share content topics with peers, allowing them to link IP and content topic interests. The Relay protocol, using GossipSub, provides recipient anonymity, which can be compromised if the content topic exposes user information.

    For example, instead of using Personally Identifiable Information (PII) in the content topic (e.g., a public key), you can create buckets (e.g., based on the first 4 bytes of the public key hash).

    info

    Waku is developing privacy-preserving features like Anonymous Filter Subscription for the Filter protocol and Anonymous Query for the Store protocol to hide content topics from potential adversaries.

    Increasing k-anonymity preserves user anonymity

    You can increase k-anonymity within the network by using a unified content topic across the entire application or targeting specific features like notifications or private messages, allowing multiple users to share it.

    We recommend switching functionality using the Protocol Buffer (proto) message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy. For example:

    message NotificationPayload {
    ...
    }

    message FeatureAbcPayload {
    ...
    }

    // By default, all fields in protobuf are optional so only field may be encoded at a time
    message Payload {
    NotificationPayload notification = 1;
    FeatureAbcPayload feature_abc = 2;
    }

    Creating buckets help in distributing traffic

    When an application uses a single content topic, all users using request/response protocols (Filter, Store) receive all its messages. For heavy traffic, developers can create buckets by hashing a unique identifier (e.g., recipient's ID, public key, or app domain topic) and adding its first byte to the content topic, like /my-app/0/a/proto.

    This approach divides traffic into multiple topics, reducing the messages users have to download. Developers can add more first bytes to the content topic over time to improve efficiency and privacy based on messages and user needs.

    info

    The k value of k-anonymity equals the number of IDs for which the first character of the hash is "a". For example, using a single content topic in an application with 10,000 users results in k = 10,000. However, using the hash ID's first character, k reduces to 10,000 / 16 = 625.

    + + \ No newline at end of file diff --git a/learn/concepts/discv5/index.html b/learn/concepts/discv5/index.html index 2e38616..af603c4 100644 --- a/learn/concepts/discv5/index.html +++ b/learn/concepts/discv5/index.html @@ -3,19 +3,19 @@ -Discv5 | Waku Documentation +Discv5 | Waku Documentation - - - + + +

    Discv5

    Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more.

    Pros

    • Decentralised with random sampling from a global view.
    • Continuously researched and improved.

    Cons

    • Requires lots of connections and involves frequent churn.
    • Relies on User Datagram Protocol (UDP), which is not supported in web browsers.

    Overview

    1. DNS Discovery protocol is executed.
    2. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server.
    3. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR.
    4. Bob returns Carol's, David's and Erin's ENRs to Alice.
    5. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections.
    6. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR.
    7. Carol returns Frank's, Gwen's and Harry's ENRs to Alice.
    8. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details.
    9. Alice selects to dial David, Frank and Gwen.
    10. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Discv5

    Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more.

    Pros

    • Decentralised with random sampling from a global view.
    • Continuously researched and improved.

    Cons

    • Requires lots of connections and involves frequent churn.
    • Relies on User Datagram Protocol (UDP), which is not supported in web browsers.

    Overview

    1. DNS Discovery protocol is executed.
    2. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server.
    3. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR.
    4. Bob returns Carol's, David's and Erin's ENRs to Alice.
    5. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections.
    6. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR.
    7. Carol returns Frank's, Gwen's and Harry's ENRs to Alice.
    8. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details.
    9. Alice selects to dial David, Frank and Gwen.
    10. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.
    + + \ No newline at end of file diff --git a/learn/concepts/dns-discovery/index.html b/learn/concepts/dns-discovery/index.html index ce598be..0c7758e 100644 --- a/learn/concepts/dns-discovery/index.html +++ b/learn/concepts/dns-discovery/index.html @@ -3,19 +3,19 @@ -DNS Discovery | Waku Documentation +DNS Discovery | Waku Documentation - - - + + +

    DNS Discovery

    Built upon the foundation of EIP-1459: Node Discovery via DNS, DNS Discovery allows the retrieval of an ENR tree from the TXT field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr.

    This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralisation.

    Pros

    • Low latency, low resource requirements.
    • Easy bootstrap list updates by modifying the domain name, eliminating the need for code changes.
    • Ability to reference a larger list of nodes by including other domain names in the code or ENR tree.

    Cons

    • Vulnerable to censorship: Domain names can be blocked or restricted.
    • Limited scalability: The listed nodes are at risk of being overwhelmed by receiving all queries. Also, operators must provide their ENR to the domain owner for listing.

    Overview

    1. DNS lookup query to retrieve TXT data stored on example.com domain.
    2. enrtree-root is returned, and the value of e is the enr-root, the root hash of the node subtree.
    3. DNS lookup query to retrieve TXT data stored on <enr-root>.example.com domain.
    4. enrtree-branch is returned; this tree contains hashes of node subtrees.
    5. DNS lookup query to retrieve TXT data stored on DU...VQ.example.com domain, the first leaf of enrtree-branch.
    6. enr record is returned.
    7. Returned value is decoded, and peer connection details such as IP address and port are learned.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    DNS Discovery

    Built upon the foundation of EIP-1459: Node Discovery via DNS, DNS Discovery allows the retrieval of an ENR tree from the TXT field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr.

    This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralisation.

    Pros

    • Low latency, low resource requirements.
    • Easy bootstrap list updates by modifying the domain name, eliminating the need for code changes.
    • Ability to reference a larger list of nodes by including other domain names in the code or ENR tree.

    Cons

    • Vulnerable to censorship: Domain names can be blocked or restricted.
    • Limited scalability: The listed nodes are at risk of being overwhelmed by receiving all queries. Also, operators must provide their ENR to the domain owner for listing.

    Overview

    1. DNS lookup query to retrieve TXT data stored on example.com domain.
    2. enrtree-root is returned, and the value of e is the enr-root, the root hash of the node subtree.
    3. DNS lookup query to retrieve TXT data stored on <enr-root>.example.com domain.
    4. enrtree-branch is returned; this tree contains hashes of node subtrees.
    5. DNS lookup query to retrieve TXT data stored on DU...VQ.example.com domain, the first leaf of enrtree-branch.
    6. enr record is returned.
    7. Returned value is decoded, and peer connection details such as IP address and port are learned.
    + + \ No newline at end of file diff --git a/learn/concepts/network-domains/index.html b/learn/concepts/network-domains/index.html index fd5c127..55b3645 100644 --- a/learn/concepts/network-domains/index.html +++ b/learn/concepts/network-domains/index.html @@ -3,19 +3,19 @@ -Network Domains | Waku Documentation +Network Domains | Waku Documentation - - - + + +

    Network Domains

    Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.

    Discovery domain

    Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as Discv5 and Peer Exchange. These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.

    Gossip domain

    GossipSub derives its name from the practice within Pub/Sub networks where peers gossip about the messages they have encountered, thus establishing a message delivery network.

    Waku employs gossiping through Relay to distribute messages across the network. Additionally, Waku introduces RLN Relay, an experimental mechanism that combines privacy preservation and economic spam protection.

    Request/response domain

    Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes.

    • Store enables the retrieval of historical messages.
    • Filter efficiently retrieves a subset of messages to conserve bandwidth.
    • Light Push facilitates message publication for nodes with limited bandwidth and short connection windows.

    Overview of protocol interaction

    Here is a diagram illustrating the interaction between different protocols within the Waku Network.

    The Pub/Sub topic pubtopic1 serves as a means of routing messages (the network employs a default Pub/Sub topic) and indicates that it is subscribed to messages on that topic for a relay. Node D serves as a Store and is responsible for storing messages.

    1. Node A creates a WakuMessage msg1 with Content Topic contentTopic1.
    2. Node F requests to get messages filtered by Pub/Sub topic pubtopic1 and Content Topic contentTopic1. Node D subscribes F to this filter and will forward messages that match that filter in the future.
    3. Node A publishes msg1 on pubtopic1. The message is sent from Node A to Node B and then forwarded to Node D.
    4. Node D, upon receiving msg1, stores the message for future retrieval by other nodes and forwards it to Node C.
    5. Node D also pushes msg1 to Node F, informing it about the arrival of a new message.
    6. At a later time, Node E comes online and requests messages matching pubtopic1 and contentTopic1 from Node D. Node D responds with msg1 and potentially other messages that match the query.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Network Domains

    Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.

    Discovery domain

    Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as Discv5 and Peer Exchange. These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.

    Gossip domain

    GossipSub derives its name from the practice within Pub/Sub networks where peers gossip about the messages they have encountered, thus establishing a message delivery network.

    Waku employs gossiping through Relay to distribute messages across the network. Additionally, Waku introduces RLN Relay, an experimental mechanism that combines privacy preservation and economic spam protection.

    Request/response domain

    Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes.

    • Store enables the retrieval of historical messages.
    • Filter efficiently retrieves a subset of messages to conserve bandwidth.
    • Light Push facilitates message publication for nodes with limited bandwidth and short connection windows.

    Overview of protocol interaction

    Here is a diagram illustrating the interaction between different protocols within the Waku Network.

    The Pub/Sub topic pubtopic1 serves as a means of routing messages (the network employs a default Pub/Sub topic) and indicates that it is subscribed to messages on that topic for a relay. Node D serves as a Store and is responsible for storing messages.

    1. Node A creates a WakuMessage msg1 with Content Topic contentTopic1.
    2. Node F requests to get messages filtered by Pub/Sub topic pubtopic1 and Content Topic contentTopic1. Node D subscribes F to this filter and will forward messages that match that filter in the future.
    3. Node A publishes msg1 on pubtopic1. The message is sent from Node A to Node B and then forwarded to Node D.
    4. Node D, upon receiving msg1, stores the message for future retrieval by other nodes and forwards it to Node C.
    5. Node D also pushes msg1 to Node F, informing it about the arrival of a new message.
    6. At a later time, Node E comes online and requests messages matching pubtopic1 and contentTopic1 from Node D. Node D responds with msg1 and potentially other messages that match the query.
    + + \ No newline at end of file diff --git a/learn/concepts/peer-discovery/index.html b/learn/concepts/peer-discovery/index.html index d4872da..78ca277 100644 --- a/learn/concepts/peer-discovery/index.html +++ b/learn/concepts/peer-discovery/index.html @@ -3,19 +3,19 @@ -Peer Discovery | Waku Documentation +Peer Discovery | Waku Documentation - - - + + +

    Peer Discovery

    When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping.

    Once a connection is established, the node must actively seek out additional peers to have:

    • Sufficient peers in the Relay mesh: The goal is to have at least 6 peers in the mesh. This ensures a robust network where messages can be efficiently relayed.
    • Reserve peers for backup: It is essential to have a surplus of peers available as reserves. These reserves are backups when the current peers become overloaded or experience unexpected disconnections.
    • Peers with specific capabilities: The node seeks out peers with specific capabilities, such as Store, Light Push, or Filter. This allows for targeted interactions and enhanced functionality based on the desired capabilities.

    Waku supports multiple peer discovery mechanisms, such as:

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Peer Discovery

    When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping.

    Once a connection is established, the node must actively seek out additional peers to have:

    • Sufficient peers in the Relay mesh: The goal is to have at least 6 peers in the mesh. This ensures a robust network where messages can be efficiently relayed.
    • Reserve peers for backup: It is essential to have a surplus of peers available as reserves. These reserves are backups when the current peers become overloaded or experience unexpected disconnections.
    • Peers with specific capabilities: The node seeks out peers with specific capabilities, such as Store, Light Push, or Filter. This allows for targeted interactions and enhanced functionality based on the desired capabilities.

    Waku supports multiple peer discovery mechanisms, such as:

    + + \ No newline at end of file diff --git a/learn/concepts/peer-exchange/index.html b/learn/concepts/peer-exchange/index.html index b902bd9..7a33856 100644 --- a/learn/concepts/peer-exchange/index.html +++ b/learn/concepts/peer-exchange/index.html @@ -3,19 +3,19 @@ -Peer Exchange | Waku Documentation +Peer Exchange | Waku Documentation - - - + + +

    Peer Exchange

    The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on Discv5. The peer exchange protocol enables light nodes to request peers from other nodes within the network.

    info

    Peer Exchange enables requesting random peers from other network nodes without revealing information about their connectivity or neighbourhood.

    Pros

    • Low resource requirements.
    • Decentralised with random sampling of nodes from a global view using Discv5.

    Cons

    • Decreased anonymity.
    • Imposes additional load on responder nodes.

    Overview

    1. DNS Discovery protocol is executed.
    2. Alice retrieves Bob's websocket multiaddr from DNS Server.
    3. Alice dials Bob using libp2p protocols.
    4. Alice executes a Peer Exchange query to Bob.
    5. Bob returns Carol's and David's ENR to Alice.
    6. Alice decodes ENRs and extracts Carol's and David's websocket multiaddrs.
    7. Alice dials Carol and David.
    8. Alice can now drop the connection with Bob (bootstrap node); Alice has 2 connections to the Waku Network.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Peer Exchange

    The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on Discv5. The peer exchange protocol enables light nodes to request peers from other nodes within the network.

    info

    Peer Exchange enables requesting random peers from other network nodes without revealing information about their connectivity or neighbourhood.

    Pros

    • Low resource requirements.
    • Decentralised with random sampling of nodes from a global view using Discv5.

    Cons

    • Decreased anonymity.
    • Imposes additional load on responder nodes.

    Overview

    1. DNS Discovery protocol is executed.
    2. Alice retrieves Bob's websocket multiaddr from DNS Server.
    3. Alice dials Bob using libp2p protocols.
    4. Alice executes a Peer Exchange query to Bob.
    5. Bob returns Carol's and David's ENR to Alice.
    6. Alice decodes ENRs and extracts Carol's and David's websocket multiaddrs.
    7. Alice dials Carol and David.
    8. Alice can now drop the connection with Bob (bootstrap node); Alice has 2 connections to the Waku Network.
    + + \ No newline at end of file diff --git a/learn/concepts/protocols/index.html b/learn/concepts/protocols/index.html index b3c0d7d..5af8c01 100644 --- a/learn/concepts/protocols/index.html +++ b/learn/concepts/protocols/index.html @@ -3,19 +3,19 @@ -Protocols | Waku Documentation +Protocols | Waku Documentation - - - + + +

    Protocols

    Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:

    Relay

    Relay protocol employs a Pub/Sub architecture to facilitate the sending and receiving of messages among peers. It extends the libp2p GossipSub protocol to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship. It also scales the Waku Network to accommodate many nodes efficiently.

    RLN relay

    RLN Relay protocol extends the Relay protocol by using Rate Limit Nullifiers (RLN) to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the RLN Relay blog post.

    Filter

    Filter protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network, particularly tailored for devices with limited bandwidth.

    info

    Filter protocol helps optimise bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.

    Store

    Store protocol is responsible for storing messages relayed in the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection.

    info

    Using Relay and Filter protocols is recommended when a node is online, as Store does not guarantee data availability. The Store protocol is suitable for retrieving messages when connecting to the network, like when a DApp starts.

    Light push

    Light Push is a Request/Response protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgement when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the Relay network.

    info

    While the Light Push protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.

    Waku message

    Waku Message specifies the structure and format of messages in the Waku Network. It includes the following attributes:

    • content_topic attribute for content-based filtering.
    • payload attribute containing the message data payload to be sent.
    • meta attribute for conveying additional details to various protocols for application-specific processing.
    • timestamp attribute signifying the time at which the message was generated by its sender.
    • ephemeral attribute specifying whether the network should not store the message.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Protocols

    Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:

    Relay

    Relay protocol employs a Pub/Sub architecture to facilitate the sending and receiving of messages among peers. It extends the libp2p GossipSub protocol to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship. It also scales the Waku Network to accommodate many nodes efficiently.

    RLN relay

    RLN Relay protocol extends the Relay protocol by using Rate Limit Nullifiers (RLN) to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the RLN Relay blog post.

    Filter

    Filter protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network, particularly tailored for devices with limited bandwidth.

    info

    Filter protocol helps optimise bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.

    Store

    Store protocol is responsible for storing messages relayed in the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection.

    info

    Using Relay and Filter protocols is recommended when a node is online, as Store does not guarantee data availability. The Store protocol is suitable for retrieving messages when connecting to the network, like when a DApp starts.

    Light push

    Light Push is a Request/Response protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgement when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the Relay network.

    info

    While the Light Push protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.

    Waku message

    Waku Message specifies the structure and format of messages in the Waku Network. It includes the following attributes:

    • content_topic attribute for content-based filtering.
    • payload attribute containing the message data payload to be sent.
    • meta attribute for conveying additional details to various protocols for application-specific processing.
    • timestamp attribute signifying the time at which the message was generated by its sender.
    • ephemeral attribute specifying whether the network should not store the message.
    + + \ No newline at end of file diff --git a/learn/concepts/static-peers/index.html b/learn/concepts/static-peers/index.html index 43407fb..d38d8a6 100644 --- a/learn/concepts/static-peers/index.html +++ b/learn/concepts/static-peers/index.html @@ -3,19 +3,19 @@ -Static Peers | Waku Documentation +Static Peers | Waku Documentation - - - + + +

    Static Peers

    Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or run a node.

    Pros

    • Low latency.
    • Low resource requirements.

    Cons

    • Vulnerable to censorship: Node IPs can be blocked or restricted.
    • Limited scalability: The number of nodes is fixed and cannot easily be expanded.
    • Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.

    Overview

    Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Static Peers

    Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or run a node.

    Pros

    • Low latency.
    • Low resource requirements.

    Cons

    • Vulnerable to censorship: Node IPs can be blocked or restricted.
    • Limited scalability: The number of nodes is fixed and cannot easily be expanded.
    • Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.

    Overview

    Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node.

    + + \ No newline at end of file diff --git a/learn/concepts/transports/index.html b/learn/concepts/transports/index.html index 1847391..d4fd8fe 100644 --- a/learn/concepts/transports/index.html +++ b/learn/concepts/transports/index.html @@ -3,19 +3,19 @@ -Transports | Waku Documentation +Transports | Waku Documentation - - - + + +

    Transports

    Transports help move data packets across a network by establishing connections between peers. They define the rules and protocols to ensure efficient network transmission, routing, and data delivery.

    Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended:

    • TCP: By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes.
    • Secure WebSocket: In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely.
    • Other protocols like WebRTC, WebTransport, and QUIC have been researched and studied for potential integration.
    info

    Waku ensures compatibility and improved communication capabilities by following these recommended transports.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Transports

    Transports help move data packets across a network by establishing connections between peers. They define the rules and protocols to ensure efficient network transmission, routing, and data delivery.

    Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended:

    • TCP: By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes.
    • Secure WebSocket: In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely.
    • Other protocols like WebRTC, WebTransport, and QUIC have been researched and studied for potential integration.
    info

    Waku ensures compatibility and improved communication capabilities by following these recommended transports.

    + + \ No newline at end of file diff --git a/learn/faq/index.html b/learn/faq/index.html index 92ea170..5f27f00 100644 --- a/learn/faq/index.html +++ b/learn/faq/index.html @@ -3,19 +3,19 @@ -Waku FAQ | Waku Documentation +Waku FAQ | Waku Documentation - - - + + +

    Waku FAQ

    Check out the Getting Started guide to explore our numerous SDKs and learn how to run a Waku node.
    No, sending and receiving messages on Waku involves no gas fee.
    Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely.
    Waku's Store protocol is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using Codex for long-term storage.
    No, Waku is flexible and imposes no specific rules on identifiers.
    Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons.
    Rate Limiting Nullifier is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which Relay nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame.
    Follow the README instructions at nwaku-compose.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Waku FAQ

    Check out the Getting Started guide to explore our numerous SDKs and learn how to run a Waku node.
    No, sending and receiving messages on Waku involves no gas fee.
    Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely.
    Waku's Store protocol is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using Codex for long-term storage.
    No, Waku is flexible and imposes no specific rules on identifiers.
    Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons.
    Rate Limiting Nullifier is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which Relay nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame.
    Follow the README instructions at nwaku-compose.
    + + \ No newline at end of file diff --git a/learn/glossary/index.html b/learn/glossary/index.html index 51119cb..06786e7 100644 --- a/learn/glossary/index.html +++ b/learn/glossary/index.html @@ -3,19 +3,19 @@ -Glossary | Waku Documentation +Glossary | Waku Documentation - - - + + +

    Waku Docs Glossary

    Definitions and usage of the terminology used in the Waku ecosystem.

    Bootstrapping

    Bootstrapping is the initial entry point of a node to the Waku Network. Once connected, other peer discovery methods can be employed to locate other peers in the network.

    Content topic

    A content topic is a string attached to messages to enable protocol-level features like selective message processing and retrieval based on specific criteria.

    Dappnode

    Dappnode is an open-source platform that simplifies the hosting and management of decentralised applications and blockchain nodes, including Waku.

    Discv5

    Discv5 is a peer discovery mechanism using a Distributed Hash Table (DHT) to store ENR records, providing censorship resistance, load distribution, and enhanced network resilience.

    DNS discovery

    DNS discovery is a peer discovery mechanism that allows the retrieval of an ENR tree from the TXT field of a domain name, enabling the storage of node connection details and promoting decentralisation.

    ENR

    Ethereum Node Record (ENR) is a specification used to represent and identify nodes, facilitating discovery and communication within the network. Besides connection details, ENR also includes node configuration information like enabled protocol and shards.

    Filter

    Filter is a protocol that enables light nodes to selectively subscribe to specific messages transmitted by peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network.

    GossipSub

    GossipSub is a protocol for efficient and scalable information dissemination in decentralised networks commonly used in blockchain systems.

    Libp2p

    Libp2p is a modular network stack and protocol suite that allows developers to build decentralised, peer-to-peer applications across various network protocols.

    Light node

    A light node is a resource-limited device or client that leverages service nodes to access the Relay network.

    Light push

    Light push is a protocol enabling light nodes to send messages to the Relay network and receive acknowledgements confirming that a peer has received them.

    Mostly offline

    Mostly offline devices are clients who spend most of their time offline or disconnected from the internet and only occasionally to the internet and Waku Network. Examples include browsers and mobile phones.

    Node

    A node is a device or client that implements Waku protocols and leverages the Waku Network to enable secure and private peer-to-peer web3 communication.

    Node key

    A node key is a Secp256k1 (64-char hex string) private key for generating the PeerID, listening addresses, and discovery addresses of a Waku node.

    Out-of-band

    Out-of-band refers to exchanging information through a separate, secure channel distinct from the main communication method to enhance security.

    Payload

    The payload field in a Waku Message contains the application data, serving as the business logic message transmitted between clients over Waku. Applications can encrypt the payload or employ encryption methods specified in Waku Message Payload Encryption.

    Peer

    A peer refers to other nodes and participants of the Waku Network with whom communication and interaction are possible.

    Peer discovery

    Peer discovery is when a node locates and gets information about other peers in the Waku Network.

    Peer exchange

    Peer exchange is a peer discovery mechanism that enables light nodes to request and receive peers from other nodes in the network, allowing them to bootstrap and expand their connections without depending on Discv5.

    Peer ID

    PeerID is the unique identifier of a node in the Waku Network generated from the cryptographic hash of the node's public key.

    Protocol

    A protocol is a set of rules that enables nodes within the Waku Network to perform various functionalities such as message sending, relaying, filtering, storing, retrieving, and more.

    Pub/Sub

    Publish/Subscribe (Pub/Sub) is an asynchronous messaging pattern where publishers send messages to topics, and subscribers receive messages from topics of interest, allowing efficient one-to-many communication.

    Pub/Sub topic

    A Pub/Sub topic is a string that serves as an identifier for the topic of interest among GossipSub peers. Peers interested in the same topic are likely to maintain a connection and forward messages received on that topic.

    Rate limit nullifiers

    Rate Limit Nullifiers (RLN) are a construct based on zero-knowledge proofs that enables rate limiting functionality while preserving the users's anonymity.

    Relay

    Relay is a protocol that extends the GossipSub protocol to enable secure and censorship resistant message sending and receiving among peers while preserving privacy. It also scales the Waku Network to accommodate many nodes efficiently.

    Resource-limited

    Resource-limited refers to environments or devices restricting available resources, including bandwidth, CPU, memory, disk, and battery power.

    RLN relay

    RLN Relay is an extension of the Relay protocol that uses Rate Limit Nullifiers (RLN) to prevent spam economically by enforcing a rate limit on messages over time, imposing penalties, and facilitating network removal for spammers.

    SDK

    SDKs are tools, libraries, and resources to integrate Waku's private, secure, and censorship-free communication features into various applications.

    Store

    Store is a protocol that enables the storage of relayed messages in the network, allowing offline peers to retrieve missed messages upon reconnecting to the network.

    Transport

    A transport is a network mechanism that establishes connections between peers and enables efficient transmission, routing, and delivery of data packets.

    Waku

    Waku is a family of private, secure, decentralised, and peer-to-peer web3 communication protocols designed to operate in resource-limited environments and suitable for node or desktop application use. Additionally, these protocols collectively form the Waku Network.

    Waku message

    Waku Message defines the structure of messages in the Waku Network, including the content topic, payload, and metadata for application-specific processing.

    Waku message payload encryption

    Waku Message Payload Encryption provides guidelines for implementing secure and private communication in the Waku Network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.

    Waku network

    The Waku Network is an open-access, scalable peer-to-peer messaging network emphasizing privacy protection and accessibility to resource limited devices.

    Waku noise

    Waku Noise is a specified way to use the Noise Protocol Framework to build protocols that enable secure key-exchange mechanisms for encrypted communication with confidentiality, authenticity, integrity, strong forward secrecy, and identity-hiding properties.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Waku Docs Glossary

    Definitions and usage of the terminology used in the Waku ecosystem.

    Bootstrapping

    Bootstrapping is the initial entry point of a node to the Waku Network. Once connected, other peer discovery methods can be employed to locate other peers in the network.

    Content topic

    A content topic is a string attached to messages to enable protocol-level features like selective message processing and retrieval based on specific criteria.

    Dappnode

    Dappnode is an open-source platform that simplifies the hosting and management of decentralised applications and blockchain nodes, including Waku.

    Discv5

    Discv5 is a peer discovery mechanism using a Distributed Hash Table (DHT) to store ENR records, providing censorship resistance, load distribution, and enhanced network resilience.

    DNS discovery

    DNS discovery is a peer discovery mechanism that allows the retrieval of an ENR tree from the TXT field of a domain name, enabling the storage of node connection details and promoting decentralisation.

    ENR

    Ethereum Node Record (ENR) is a specification used to represent and identify nodes, facilitating discovery and communication within the network. Besides connection details, ENR also includes node configuration information like enabled protocol and shards.

    Filter

    Filter is a protocol that enables light nodes to selectively subscribe to specific messages transmitted by peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network.

    GossipSub

    GossipSub is a protocol for efficient and scalable information dissemination in decentralised networks commonly used in blockchain systems.

    Libp2p

    Libp2p is a modular network stack and protocol suite that allows developers to build decentralised, peer-to-peer applications across various network protocols.

    Light node

    A light node is a resource-limited device or client that leverages service nodes to access the Relay network.

    Light push

    Light push is a protocol enabling light nodes to send messages to the Relay network and receive acknowledgements confirming that a peer has received them.

    Mostly offline

    Mostly offline devices are clients who spend most of their time offline or disconnected from the internet and only occasionally to the internet and Waku Network. Examples include browsers and mobile phones.

    Node

    A node is a device or client that implements Waku protocols and leverages the Waku Network to enable secure and private peer-to-peer web3 communication.

    Node key

    A node key is a Secp256k1 (64-char hex string) private key for generating the PeerID, listening addresses, and discovery addresses of a Waku node.

    Out-of-band

    Out-of-band refers to exchanging information through a separate, secure channel distinct from the main communication method to enhance security.

    Payload

    The payload field in a Waku Message contains the application data, serving as the business logic message transmitted between clients over Waku. Applications can encrypt the payload or employ encryption methods specified in Waku Message Payload Encryption.

    Peer

    A peer refers to other nodes and participants of the Waku Network with whom communication and interaction are possible.

    Peer discovery

    Peer discovery is when a node locates and gets information about other peers in the Waku Network.

    Peer exchange

    Peer exchange is a peer discovery mechanism that enables light nodes to request and receive peers from other nodes in the network, allowing them to bootstrap and expand their connections without depending on Discv5.

    Peer ID

    PeerID is the unique identifier of a node in the Waku Network generated from the cryptographic hash of the node's public key.

    Protocol

    A protocol is a set of rules that enables nodes within the Waku Network to perform various functionalities such as message sending, relaying, filtering, storing, retrieving, and more.

    Pub/Sub

    Publish/Subscribe (Pub/Sub) is an asynchronous messaging pattern where publishers send messages to topics, and subscribers receive messages from topics of interest, allowing efficient one-to-many communication.

    Pub/Sub topic

    A Pub/Sub topic is a string that serves as an identifier for the topic of interest among GossipSub peers. Peers interested in the same topic are likely to maintain a connection and forward messages received on that topic.

    Rate limit nullifiers

    Rate Limit Nullifiers (RLN) are a construct based on zero-knowledge proofs that enables rate limiting functionality while preserving the users's anonymity.

    Relay

    Relay is a protocol that extends the GossipSub protocol to enable secure and censorship resistant message sending and receiving among peers while preserving privacy. It also scales the Waku Network to accommodate many nodes efficiently.

    Resource-limited

    Resource-limited refers to environments or devices restricting available resources, including bandwidth, CPU, memory, disk, and battery power.

    RLN relay

    RLN Relay is an extension of the Relay protocol that uses Rate Limit Nullifiers (RLN) to prevent spam economically by enforcing a rate limit on messages over time, imposing penalties, and facilitating network removal for spammers.

    SDK

    SDKs are tools, libraries, and resources to integrate Waku's private, secure, and censorship-free communication features into various applications.

    Store

    Store is a protocol that enables the storage of relayed messages in the network, allowing offline peers to retrieve missed messages upon reconnecting to the network.

    Transport

    A transport is a network mechanism that establishes connections between peers and enables efficient transmission, routing, and delivery of data packets.

    Waku

    Waku is a family of private, secure, decentralised, and peer-to-peer web3 communication protocols designed to operate in resource-limited environments and suitable for node or desktop application use. Additionally, these protocols collectively form the Waku Network.

    Waku message

    Waku Message defines the structure of messages in the Waku Network, including the content topic, payload, and metadata for application-specific processing.

    Waku message payload encryption

    Waku Message Payload Encryption provides guidelines for implementing secure and private communication in the Waku Network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.

    Waku network

    The Waku Network is an open-access, scalable peer-to-peer messaging network emphasizing privacy protection and accessibility to resource limited devices.

    Waku noise

    Waku Noise is a specified way to use the Noise Protocol Framework to build protocols that enable secure key-exchange mechanisms for encrypted communication with confidentiality, authenticity, integrity, strong forward secrecy, and identity-hiding properties.

    + + \ No newline at end of file diff --git a/learn/research/index.html b/learn/research/index.html index 91cf182..5f2f74d 100644 --- a/learn/research/index.html +++ b/learn/research/index.html @@ -3,19 +3,19 @@ -Research | Waku Documentation +Research | Waku Documentation - - - + + +

    Research

    The following features are currently experimental and under research and initial implementation:

    Economic spam resistance

    We aim to enable an incentivised spam protection technique to enhance Relay by using Rate Limit Nullifiers (RLN). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the RLN Relay blog post.

    We have prepared a PoC implementation of this method in JS: https://examples.waku.org/rln-js/

    Prevention of denial of service (DoS) and node incentivisation

    Denial of service signifies the case where an adversarial peer exhausts another node's service capacity (e.g., by making a large number of requests) and makes it unavailable to the rest of the system. RnD on DoS attack mitigation can be tracked from here: https://github.com/vacp2p/research/issues/148.

    In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivising the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in Store and Filter to protect against DoS attacks.

    Additionally, along with RLN, this gives node operators who provide a useful service to the network an incentive to perform that service. Read more here: https://vac.dev/building-privacy-protecting-infrastructure

    You can also read more about the ongoing challenges the Waku team is working on here: https://github.com/waku-org/research

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Research

    The following features are currently experimental and under research and initial implementation:

    Economic spam resistance

    We aim to enable an incentivised spam protection technique to enhance Relay by using Rate Limit Nullifiers (RLN). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the RLN Relay blog post.

    We have prepared a PoC implementation of this method in JS: https://examples.waku.org/rln-js/

    Prevention of denial of service (DoS) and node incentivisation

    Denial of service signifies the case where an adversarial peer exhausts another node's service capacity (e.g., by making a large number of requests) and makes it unavailable to the rest of the system. RnD on DoS attack mitigation can be tracked from here: https://github.com/vacp2p/research/issues/148.

    In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivising the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in Store and Filter to protect against DoS attacks.

    Additionally, along with RLN, this gives node operators who provide a useful service to the network an incentive to perform that service. Read more here: https://vac.dev/building-privacy-protecting-infrastructure

    You can also read more about the ongoing challenges the Waku team is working on here: https://github.com/waku-org/research

    + + \ No newline at end of file diff --git a/learn/security-features/index.html b/learn/security-features/index.html index 43c6f27..10992d5 100644 --- a/learn/security-features/index.html +++ b/learn/security-features/index.html @@ -3,19 +3,19 @@ -Security Features | Waku Documentation +Security Features | Waku Documentation - - - + + +

    Security Features

    Waku's protocol layers offer different services and security considerations, shaping the overall security of Waku. We document the security models in the RFCs of the protocols, aiming to provide transparent and open-source references. This empowers Waku users to understand each protocol's security guarantees and limitations.

    Some of Waku's security features include the following:

    Pseudonymity

    Waku ensures pseudonymity across its protocol layers, using libp2p PeerID as identifiers instead of disclosing true identities. However, it is important to note that pseudonymity does not provide complete anonymity. Actions performed under the same pseudonym (PeerID) can be linked, leading to the potential re-identification of the actual actor.

    Anonymity/unlinkability

    Anonymity means an adversary cannot connect an actor to their actions or data. To achieve anonymity, avoiding linking activities with actors or their Personally Identifiable Information (PII) is crucial. In Waku, the following anonymity features are provided:

    Spam protection

    The spam protection feature in Relay ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the scoring mechanism of GossipSub v1.1. Peers assign scores to their connections based on their behaviour and remove peers with low scores.

    Ongoing research is being conducted, including developing Rate Limit Nullifiers (RLN), which can be explored further at: https://github.com/vacp2p/research/issues/148.

    Data confidentiality, integrity, and authenticity

    Confidentiality in Waku is ensured through data encryption, while integrity and authenticity are achieved through digital signatures. These security measures are available in Waku Message (version 1) and Noise protocols, which offer payload encryption and encrypted signatures. Noise protocols also facilitate secure channel negotiation within the Waku Network.

    Security considerations

    In protocols like Store and Filter, where direct connections are required for the designated service, anonymity or unlinkability is not guaranteed. This is because nodes use their PeerID to identify each other during direct connections, making the service obtained in these protocols linkable to the beneficiary's PeerID, considered Personally Identifiable Information (PII). In Store, the queried node can link the querying node's PeerID to the topics being queried. Similarly, in Filter, a node can link the PeerID of a light node to its content filter.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Security Features

    Waku's protocol layers offer different services and security considerations, shaping the overall security of Waku. We document the security models in the RFCs of the protocols, aiming to provide transparent and open-source references. This empowers Waku users to understand each protocol's security guarantees and limitations.

    Some of Waku's security features include the following:

    Pseudonymity

    Waku ensures pseudonymity across its protocol layers, using libp2p PeerID as identifiers instead of disclosing true identities. However, it is important to note that pseudonymity does not provide complete anonymity. Actions performed under the same pseudonym (PeerID) can be linked, leading to the potential re-identification of the actual actor.

    Anonymity/unlinkability

    Anonymity means an adversary cannot connect an actor to their actions or data. To achieve anonymity, avoiding linking activities with actors or their Personally Identifiable Information (PII) is crucial. In Waku, the following anonymity features are provided:

    Spam protection

    The spam protection feature in Relay ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the scoring mechanism of GossipSub v1.1. Peers assign scores to their connections based on their behaviour and remove peers with low scores.

    Ongoing research is being conducted, including developing Rate Limit Nullifiers (RLN), which can be explored further at: https://github.com/vacp2p/research/issues/148.

    Data confidentiality, integrity, and authenticity

    Confidentiality in Waku is ensured through data encryption, while integrity and authenticity are achieved through digital signatures. These security measures are available in Waku Message (version 1) and Noise protocols, which offer payload encryption and encrypted signatures. Noise protocols also facilitate secure channel negotiation within the Waku Network.

    Security considerations

    In protocols like Store and Filter, where direct connections are required for the designated service, anonymity or unlinkability is not guaranteed. This is because nodes use their PeerID to identify each other during direct connections, making the service obtained in these protocols linkable to the beneficiary's PeerID, considered Personally Identifiable Information (PII). In Store, the queried node can link the querying node's PeerID to the topics being queried. Similarly, in Filter, a node can link the PeerID of a light node to its content filter.

    + + \ No newline at end of file diff --git a/learn/waku-network/index.html b/learn/waku-network/index.html index 53dba28..7e4a689 100644 --- a/learn/waku-network/index.html +++ b/learn/waku-network/index.html @@ -3,19 +3,19 @@ -The Waku Network | Waku Documentation +The Waku Network | Waku Documentation - - - + + +

    The Waku Network

    The Waku Network is a shared p2p messaging network that is open-access, useful for generalized messaging, privacy-preserving, scalable and accessible even to resource-restricted devices. Some of the most prominent features include:

    1. DoS/spam protection with privacy-preserving Rate-Limiting Nullifiers.
    2. Scalability by sharding traffic into 8 pubsub topics.
    3. Automatic shard selection based on content topic.
    4. Services for resource-restricted nodes, including historical message storage and retrieval, filtering, etc.
    tip

    If you want to learn more about the Waku Network, The Waku Network: Technical Overview article provides an in-depth look under the hood.

    Why join the Waku network?

    1. Applications or projects can build decentralized communication components on this network, gaining from the fault-tolerance of shared infrastructure, the out-of-the-box censorship resistance of a p2p network and the privacy-preservation of Waku protocols.
    2. Supporters of public goods and decentralized infrastructure can run their nodes to support the network.
    3. We are also working on incentivisation vectors to encourage more node operators to provide services to the network.

    Prerequisites

    1. Ethereum Sepolia HTTPS endpoint, which can be yours or from a third party. Have a look at the Access a Sepolia Node Using Infura guide for a free Infura option. This node is used to interact with the on-chain RLN membership contract.
    2. Wallet with Sepolia Ethereum (less than 0.1 Sepolia ETH). Have a look at the Create a Sepolia Ethereum Wallet and Obtain Sepolia Ethereum from Faucet guides to get a Sepolia wallet and fund it with some Sepolia Ethereum. This wallet is required to register RLN membership, which is essential for publishing on the network.

    Running a Waku network node

    Have a look at the Run Nwaku with Docker Compose guide for instructions on running a nwaku node in the Waku Network. Use the Sepolia node and wallet you obtained above.

    info

    The public Waku Network replaces the previous experimental shared routing layer based on a default pubsub topic (/waku/2/default-waku/proto). If your project currently uses this or any other shared pubsub topics, we encourage you to migrate to the public Waku Network with built-in DoS protection, scalability, and reasonable bandwidth usage.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    The Waku Network

    The Waku Network is a shared p2p messaging network that is open-access, useful for generalized messaging, privacy-preserving, scalable and accessible even to resource-restricted devices. Some of the most prominent features include:

    1. DoS/spam protection with privacy-preserving Rate-Limiting Nullifiers.
    2. Scalability by sharding traffic into 8 pubsub topics.
    3. Automatic shard selection based on content topic.
    4. Services for resource-restricted nodes, including historical message storage and retrieval, filtering, etc.
    tip

    If you want to learn more about the Waku Network, The Waku Network: Technical Overview article provides an in-depth look under the hood.

    Why join the Waku network?

    1. Applications or projects can build decentralized communication components on this network, gaining from the fault-tolerance of shared infrastructure, the out-of-the-box censorship resistance of a p2p network and the privacy-preservation of Waku protocols.
    2. Supporters of public goods and decentralized infrastructure can run their nodes to support the network.
    3. We are also working on incentivisation vectors to encourage more node operators to provide services to the network.

    Prerequisites

    1. Ethereum Sepolia HTTPS endpoint, which can be yours or from a third party. Have a look at the Access a Sepolia Node Using Infura guide for a free Infura option. This node is used to interact with the on-chain RLN membership contract.
    2. Wallet with Sepolia Ethereum (less than 0.1 Sepolia ETH). Have a look at the Create a Sepolia Ethereum Wallet and Obtain Sepolia Ethereum from Faucet guides to get a Sepolia wallet and fund it with some Sepolia Ethereum. This wallet is required to register RLN membership, which is essential for publishing on the network.

    Running a Waku network node

    Have a look at the Run Nwaku with Docker Compose guide for instructions on running a nwaku node in the Waku Network. Use the Sepolia node and wallet you obtained above.

    info

    The public Waku Network replaces the previous experimental shared routing layer based on a default pubsub topic (/waku/2/default-waku/proto). If your project currently uses this or any other shared pubsub topics, we encourage you to migrate to the public Waku Network with built-in DoS protection, scalability, and reasonable bandwidth usage.

    + + \ No newline at end of file diff --git a/learn/waku-vs-libp2p/index.html b/learn/waku-vs-libp2p/index.html index dd56811..f0cbbe7 100644 --- a/learn/waku-vs-libp2p/index.html +++ b/learn/waku-vs-libp2p/index.html @@ -3,19 +3,19 @@ -Comparing Waku and libp2p | Waku Documentation +Comparing Waku and libp2p | Waku Documentation - - - + + +

    Comparing Waku and libp2p

    Since Waku is built on top of libp2p, they share a lot of concepts and terminologies between them. However, there are key differences between them that are worth noting.

    Waku as a service network

    Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to run a node to support and decentralise the network.

    Waku as a turnkey solution

    Waku includes various protocols covering the following domains: privacy preservation, censorship resistance, and platform agnosticism, allowing it to run on any platform or environment.

    Waku provides out-of-the-box protocols to enable mostly offline/resource-limited devices, Store/Light Push/Filter caters to those use cases.

    Economic spam protection

    libp2p does not have strong spam protection guarantees, RLN Relay is a protocol being developed by the Waku team towards this goal.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Comparing Waku and libp2p

    Since Waku is built on top of libp2p, they share a lot of concepts and terminologies between them. However, there are key differences between them that are worth noting.

    Waku as a service network

    Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to run a node to support and decentralise the network.

    Waku as a turnkey solution

    Waku includes various protocols covering the following domains: privacy preservation, censorship resistance, and platform agnosticism, allowing it to run on any platform or environment.

    Waku provides out-of-the-box protocols to enable mostly offline/resource-limited devices, Store/Light Push/Filter caters to those use cases.

    Economic spam protection

    libp2p does not have strong spam protection guarantees, RLN Relay is a protocol being developed by the Waku team towards this goal.

    + + \ No newline at end of file diff --git a/migrations/js-waku/migration_v0.026_0.027/index.html b/migrations/js-waku/migration_v0.026_0.027/index.html index ccbbcfb..1e68b93 100644 --- a/migrations/js-waku/migration_v0.026_0.027/index.html +++ b/migrations/js-waku/migration_v0.026_0.027/index.html @@ -3,19 +3,19 @@ -Migrating to Waku v0.027 | Waku Documentation +Migrating to Waku v0.027 | Waku Documentation - - - + + +

    Migrating to Waku v0.027

    A migration guide for refactoring your application code from Waku v0.026 to v0.027.

    Table of Contents

    Network Configuration

    The way to configure network settings for a Waku node has been simplified. The new NetworkConfig type only allows for Static Sharding or Auto Sharding.

    Default Network Configuration

    If no network configuration is provided when creating a Light Node, The Waku Network configuration will be used by default.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode();
    // This would use the default pubsub topic, that was, `/waku/2/default-waku/proto`

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode();
    // This will now use The Waku Network configuration by default:
    // { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }

    Static Sharding

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    shards: [0, 1, 2, 3]
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3]
    }
    });

    Auto Sharding

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"]
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"]
    }
    });

    Pubsub Topic Configuration

    Named pubsub topics are no longer supported. You must use either Static Sharding or Auto Sharding to configure pubsub topics.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    pubsubTopics: ["/waku/2/default-waku/proto"]
    });

    After

    Use Static Sharding:

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3, 4, 5, 6, 7]
    }
    });

    Or use Auto Sharding:

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/your-app/1/default/proto"]
    }
    });

    Removed APIs

    The following APIs have been removed:

    • ApplicationInfo type: Use string for application and version in NetworkConfig instead.
    • shardInfo option in createLightNode: Use networkConfig instead.
    • pubsubTopics option in createLightNode: Use networkConfig with Static Sharding or Auto Sharding instead.

    If you were using ApplicationInfo before, you should now use ContentTopicInfo (Auto Sharding) and specify your application and version in the content topic string.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    application: "my-app",
    version: "1"
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/default/proto"]
    }
    });

    Type Changes

    • ShardingParams has been removed. Use NetworkConfig instead.
    • NetworkConfig is now defined as StaticSharding | AutoSharding.
    • StaticSharding is equivalent to the previous ShardInfo.
    • AutoSharding is equivalent to the previous ContentTopicInfo.

    Internal/Private Utility Function Changes

    Several utility functions have been updated or added:

    • ensureShardingConfigured has been removed. Use derivePubsubTopicsFromNetworkConfig instead.
    • New function derivePubsubTopicsFromNetworkConfig has been added to derive pubsub topics from the network configuration.
    • shardInfoToPubsubTopics now accepts Partial<NetworkConfig> instead of Partial<ShardingParams>.
    • New function pubsubTopicsToShardInfo has been added to convert pubsub topics to a ShardInfo object.

    If you were using any of these utility functions directly, you'll need to update your code accordingly.

    Before

    import { ensureShardingConfigured } from "@waku/utils";

    const result = ensureShardingConfigured(shardInfo);

    After

    import { derivePubsubTopicsFromNetworkConfig } from "@waku/utils";

    const pubsubTopics = derivePubsubTopicsFromNetworkConfig(networkConfig);

    Note: The default NetworkConfig for The Waku Network is now { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Migrating to Waku v0.027

    A migration guide for refactoring your application code from Waku v0.026 to v0.027.

    Table of Contents

    Network Configuration

    The way to configure network settings for a Waku node has been simplified. The new NetworkConfig type only allows for Static Sharding or Auto Sharding.

    Default Network Configuration

    If no network configuration is provided when creating a Light Node, The Waku Network configuration will be used by default.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode();
    // This would use the default pubsub topic, that was, `/waku/2/default-waku/proto`

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode();
    // This will now use The Waku Network configuration by default:
    // { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }

    Static Sharding

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    shards: [0, 1, 2, 3]
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3]
    }
    });

    Auto Sharding

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"]
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/notifications/proto"]
    }
    });

    Pubsub Topic Configuration

    Named pubsub topics are no longer supported. You must use either Static Sharding or Auto Sharding to configure pubsub topics.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    pubsubTopics: ["/waku/2/default-waku/proto"]
    });

    After

    Use Static Sharding:

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    shards: [0, 1, 2, 3, 4, 5, 6, 7]
    }
    });

    Or use Auto Sharding:

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/your-app/1/default/proto"]
    }
    });

    Removed APIs

    The following APIs have been removed:

    • ApplicationInfo type: Use string for application and version in NetworkConfig instead.
    • shardInfo option in createLightNode: Use networkConfig instead.
    • pubsubTopics option in createLightNode: Use networkConfig with Static Sharding or Auto Sharding instead.

    If you were using ApplicationInfo before, you should now use ContentTopicInfo (Auto Sharding) and specify your application and version in the content topic string.

    Before

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    shardInfo: {
    clusterId: 1,
    application: "my-app",
    version: "1"
    }
    });

    After

    import { createLightNode } from "@waku/sdk";

    const waku = await createLightNode({
    networkConfig: {
    clusterId: 1,
    contentTopics: ["/my-app/1/default/proto"]
    }
    });

    Type Changes

    • ShardingParams has been removed. Use NetworkConfig instead.
    • NetworkConfig is now defined as StaticSharding | AutoSharding.
    • StaticSharding is equivalent to the previous ShardInfo.
    • AutoSharding is equivalent to the previous ContentTopicInfo.

    Internal/Private Utility Function Changes

    Several utility functions have been updated or added:

    • ensureShardingConfigured has been removed. Use derivePubsubTopicsFromNetworkConfig instead.
    • New function derivePubsubTopicsFromNetworkConfig has been added to derive pubsub topics from the network configuration.
    • shardInfoToPubsubTopics now accepts Partial<NetworkConfig> instead of Partial<ShardingParams>.
    • New function pubsubTopicsToShardInfo has been added to convert pubsub topics to a ShardInfo object.

    If you were using any of these utility functions directly, you'll need to update your code accordingly.

    Before

    import { ensureShardingConfigured } from "@waku/utils";

    const result = ensureShardingConfigured(shardInfo);

    After

    import { derivePubsubTopicsFromNetworkConfig } from "@waku/utils";

    const pubsubTopics = derivePubsubTopicsFromNetworkConfig(networkConfig);

    Note: The default NetworkConfig for The Waku Network is now { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }.

    + + \ No newline at end of file diff --git a/privacy-policy/index.html b/privacy-policy/index.html index 71addc1..bf6de46 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -3,19 +3,19 @@ -Privacy Policy | Waku Documentation +Privacy Policy | Waku Documentation - - - + + +

    Privacy Policy

    Last updated: 9 February 2024

    This Privacy Policy is intended to inform users of our approach to privacy in respect of this website ("Website"). In this regard, if you are visiting our Website, this Privacy Policy applies to you.

    1) Who we are

    For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at

    Logos Collective Association
    c/o PST Consulting GmbH
    Baarerstrasse 10
    6300 Zug
    Switzerland

    Whenever we refer to “Logos”, “we” or other similar references, we are referring to the Logos Collective Association.

    2) We limit the collection and processing of personal data from your use of the Website

    We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable privacy legislation. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose.

    In this regard, we collect and process the following personal data from your use of the Website:

    • IP address: As part of such use of the Website we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.

    3) Third party processing of personal data

    In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.

    4) Security measures we take in respect of the Website

    As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.

    5) Exporting data outside the European Union and Switzerland

    We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable privacy legislation.

    6) Your choices and rights

    As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant privacy legislation, you have the right to:

    • Ask us to correct or update your personal data (where reasonably possible);

    • Ask us to remove your personal data from our systems;

    • Ask us for a copy of your personal data, which may also be transferred to another data controller at your request;

    • Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent;

    • Object to the processing of your personal data; and

    • File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.

    On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.

    8) This Privacy Policy might change

    We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.

    9) Contact information

    To the extent that you have any questions about the Privacy Policy, please contact us at legal@free.technology.

    This document is licensed under CC-BY-SA.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Privacy Policy

    Last updated: 9 February 2024

    This Privacy Policy is intended to inform users of our approach to privacy in respect of this website ("Website"). In this regard, if you are visiting our Website, this Privacy Policy applies to you.

    1) Who we are

    For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at

    Logos Collective Association
    c/o PST Consulting GmbH
    Baarerstrasse 10
    6300 Zug
    Switzerland

    Whenever we refer to “Logos”, “we” or other similar references, we are referring to the Logos Collective Association.

    2) We limit the collection and processing of personal data from your use of the Website

    We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable privacy legislation. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose.

    In this regard, we collect and process the following personal data from your use of the Website:

    • IP address: As part of such use of the Website we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.

    3) Third party processing of personal data

    In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.

    4) Security measures we take in respect of the Website

    As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.

    5) Exporting data outside the European Union and Switzerland

    We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable privacy legislation.

    6) Your choices and rights

    As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant privacy legislation, you have the right to:

    • Ask us to correct or update your personal data (where reasonably possible);

    • Ask us to remove your personal data from our systems;

    • Ask us for a copy of your personal data, which may also be transferred to another data controller at your request;

    • Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent;

    • Object to the processing of your personal data; and

    • File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.

    On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.

    8) This Privacy Policy might change

    We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.

    9) Contact information

    To the extent that you have any questions about the Privacy Policy, please contact us at legal@free.technology.

    This document is licensed under CC-BY-SA.

    + + \ No newline at end of file diff --git a/research/benchmarks/postgres-adoption/index.html b/research/benchmarks/postgres-adoption/index.html index e1d1ccf..d7fc85e 100644 --- a/research/benchmarks/postgres-adoption/index.html +++ b/research/benchmarks/postgres-adoption/index.html @@ -3,11 +3,11 @@ -PostgreSQL | Waku Documentation +PostgreSQL | Waku Documentation - - - + + +

    Performance Benchmarks and Test Reports

    Introduction

    This page summarises key performance metrics for nwaku and provides links to detailed test reports.

    TL;DR

    • Average Waku bandwidth usage: ~10 KB/s (minus discv5 Discovery) for 1KB message size and message injection rate of 1msg/s.
      Confirmed for topologies of up to 2000 Relay nodes.
    • Average time for a message to propagate to 100% of nodes: 0.4s for topologies of up to 2000 Relay nodes.
    • Average per-node bandwidth usage of the discv5 protocol: 8 KB/s for incoming traffic and 7.4 KB/s for outgoing traffic,
      in a network with 100 continuously online nodes.
    • Future improvements: A messaging API is currently in development to streamline interactions with the Waku protocol suite.
      Once completed, it will enable benchmarking at the messaging API level, allowing applications to more easily compare their
      own performance results.

    Insights

    Relay Bandwidth Usage: nwaku v0.34.0

    The average per-node libp2p bandwidth usage in a 1000-node Relay network with 1KB messages at varying injection rates.

    Message Injection RateAverage libp2p incoming bandwidth (KB/s)Average libp2p outgoing bandwidth (KB/s)
    1 msg/s~10.1~10.3
    1 msg/10s~1.8~1.9

    Message Propagation Latency: nwaku v0.34.0-rc1

    The message propagation latency is measured as the total time for a message to reach all nodes.
    -We compare the latency in different network configurations for the following simulation parameters:

    • Total messages published: 600
    • Message size: 1KB
    • Message injection rate: 1msg/s

    The different network configurations tested are:

    • Relay Config: 1000 nodes with relay enabled
    • Mixed Config: 210 nodes, consisting of bootstrap nodes, filter clients and servers, lightpush clients and servers, store nodes
    • Non-persistent Relay Config: 500 persistent relay nodes, 10 store nodes and 100 non-persistent relay nodes

    Click on a specific config to see the detailed test report.

    ConfigAverage Message Propagation Latency (s)Max Message Propagation Latency (s)
    Relay (1000 nodes)0.051.6
    Mixed (210 nodes)0.01250.007
    Non-persistent Relay (510 nodes)0.01250.25

    Discv5 Bandwidth Usage: nwaku v0.34.0

    The average bandwidth usage of discv5 for a network of 100 nodes and message injection rate of 0 or 1msg/s.
    -The measurements are based on a stable network where all nodes have already connected to peers to form a healthy mesh.

    Message sizeAverage discv5 incoming bandwidth (KB/s)Average discv5 outgoing bandwidth (KB/s)
    no message injection7.886.70
    1KB8.047.40
    10KB8.037.45

    Testing

    DST

    The VAC DST team performs regression testing on all new nwaku releases, comparing performance with previous versions.
    -They simulate large Waku networks with a variety of network and protocol configurations that are representative of real-world usage.

    Test Reports: DST Reports

    QA

    The VAC QA team performs interoperability tests for nwaku and go-waku using the latest main branch builds.
    -These tests run daily and verify protocol functionality by targeting specific features of each protocol.

    Test Reports: QA Reports

    nwaku

    The nwaku team follows a structured release procedure for all release candidates.
    -This involves deploying RCs to status.staging fleet for validation and performing sanity checks.

    Release Process: nwaku Release Procedure

    Research

    The Waku Research team conducts a variety of benchmarking, performance testing, proof-of-concept validations and debugging efforts.
    -They also maintain a Waku simulator designed for small-scale, single-purpose, on-demand testing.

    Test Reports: Waku Research Reports

    Waku Simulator: Waku Simulator Book

    - - +We compare the latency in different network configurations for the following simulation parameters:

    • Total messages published: 600
    • Message size: 1KB
    • Message injection rate: 1msg/s

    The different network configurations tested are:

    • Relay Config: 1000 nodes with relay enabled
    • Mixed Config: 210 nodes, consisting of bootstrap nodes, filter clients and servers, lightpush clients and servers, store nodes
    • Non-persistent Relay Config: 500 persistent relay nodes, 10 store nodes and 100 non-persistent relay nodes

    Click on a specific config to see the detailed test report.

    ConfigAverage Message Propagation Latency (s)Max Message Propagation Latency (s)
    Relay (1000 nodes)0.051.6
    Mixed (210 nodes)0.01250.007
    Non-persistent Relay (510 nodes)0.01250.25

    Discv5 Bandwidth Usage: nwaku v0.34.0

    The average bandwidth usage of discv5 for a network of 100 nodes and message injection rate of 0 or 1msg/s.
    +The measurements are based on a stable network where all nodes have already connected to peers to form a healthy mesh.

    Message sizeAverage discv5 incoming bandwidth (KB/s)Average discv5 outgoing bandwidth (KB/s)
    no message injection7.886.70
    1KB8.047.40
    10KB8.037.45

    Testing

    DST

    The VAC DST team performs regression testing on all new nwaku releases, comparing performance with previous versions.
    +They simulate large Waku networks with a variety of network and protocol configurations that are representative of real-world usage.

    Test Reports: DST Reports

    QA

    The VAC QA team performs interoperability tests for nwaku and go-waku using the latest main branch builds.
    +These tests run daily and verify protocol functionality by targeting specific features of each protocol.

    Test Reports: QA Reports

    nwaku

    The nwaku team follows a structured release procedure for all release candidates.
    +This involves deploying RCs to status.staging fleet for validation and performing sanity checks.

    Release Process: nwaku Release Procedure

    Research

    The Waku Research team conducts a variety of benchmarking, performance testing, proof-of-concept validations and debugging efforts.
    +They also maintain a Waku simulator designed for small-scale, single-purpose, on-demand testing.

    Test Reports: Waku Research Reports

    Waku Simulator: Waku Simulator Book

    + + \ No newline at end of file diff --git a/research/index.html b/research/index.html index 7131341..ca7f91b 100644 --- a/research/index.html +++ b/research/index.html @@ -3,19 +3,19 @@ -Research | Waku Documentation +Research | Waku Documentation - - - + + +
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));} + + \ No newline at end of file diff --git a/research/research-and-studies/capped-bandwidth/index.html b/research/research-and-studies/capped-bandwidth/index.html index a6eecf4..7210300 100644 --- a/research/research-and-studies/capped-bandwidth/index.html +++ b/research/research-and-studies/capped-bandwidth/index.html @@ -3,19 +3,19 @@ -Capped Bandwidth in Waku | Waku Documentation +Capped Bandwidth in Waku | Waku Documentation - - - + + +

    Capped Bandwidth in Waku

    This post explains i) why The Waku Network requires a capped bandwidth per shard and ii) how to achieve it by rate limiting with RLN v2.

    Problem

    First of all, let's begin with the terminology. We have talked in the past about "predictable" bandwidth, but a better name would be "capped" bandwidth. This is because it is totally fine that the waku traffic is not predictable, as long as it is capped. And it has to be capped because otherwise, no one will be able to run a node.

    Since we aim that everyone can run a full waku node (at least subscribed to a single shard) it is of paramount importance that the bandwidth requirements (up/down) are i) reasonable to run with a residential internet connection in every country and ii) limited to an upper value, aka capped. If the required bandwidth to stay up to date with a topic is higher than what the node has available, then it will start losing messages and won't be able to stay up to date with the topic messages. And not to mention the problems this will cause to other services and applications being used by the user.

    The main problem is that one can't just choose the bandwidth it allocates to relay. One could set the maximum bandwidth willing to allocate to store but this is not how relay works. The required bandwidth is not set by the node, but by the network. If a pubsub topic a has a traffic of 50 Mbps (which is the sum of all messages being sent multiplied by its size, times the D_out degree), then if a node wants to stay up to date in that topic, and relay traffic in it, then it will require 50 Mbps. There is no thing such as "partially contributing" to the topic (with eg 25Mbps) because then you will be losing messages, becoming an unreliable peer and potentially be disconnected. The network sets the pace.

    So waku needs an upper boundary on the in/out bandwidth (mbps) it consumes. Just like apps have requirements on cpu and memory, we should set a requirement on bandwidth, and then guarantee that if you have that bandwidth, you will be able to run a node without any problem. And this is the tricky part. This metric is Waku's constraint, similar to the gas-per-block limit in blockchains.

    Previous Work

    Quick summary of the evolution to solve this problem:

    • Waku started with no rate-limiting mechanism. The network was subject to DoS attacks.
    • RLN v1 was introduced, which allowed to rate-limit in a privacy-preserving and anonymous way. The rate limit can be configured to 1 message every y seconds. However, this didn't offer much granularity. A low y would allow too many messages and a high y would make the protocol unusable (impossible to send two messages in a row).
    • RLN v2 was introduced, which allows to rate-limit each user to x messages every y seconds. This offers the granularity we need. It is the current solution deployed in The Waku Network.

    Current Solution (RLN v2)

    The current solution to this problem is the usage of RLN v2, which allows to rate-limit x messages every y seconds. On top of this, the introduction of WAKU2-RLN-CONTRACT enforces a maximum amount of messages that can be sent to the network per epoch. This is achieved by limiting the amount of memberships that can be registered. The current values are:

    • R_{max}: 160000 mgs/epoch
    • r_{max}: 600 msgs/epoch
    • r_{min}: 20 msgs/epoch

    In other words, the contract limits the amount of memberships that can be registered from 266 to 8000 depending on which rate limit users choose.

    On the other hand 64/WAKU2-NETWORK states that:

    • rlnEpochSizeSec: 600. Meaning the epoch size is 600 seconds.
    • maxMessageSize: 150KB. Meaning the maximum message size that is allowed. Note: recommended average of 4KB.

    Putting this all together and assuming:

    • Messages are sent uniformly distributed.
    • All users totally consumes its rate-limit.

    We can expect the following message rate and bandwidth for the whole network:

    • A traffic of 266 msg/second on average (160000/600)
    • A traffic of 6 MBps on average (266 4KB 6), where 4KB is the average message size and 6 is the average gossipsub D-out degree.

    And assuming a uniform distribution of traffic among 8 shards:

    • 33 msg/second per shard.
    • 0.75 MBps per shard.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Capped Bandwidth in Waku

    This post explains i) why The Waku Network requires a capped bandwidth per shard and ii) how to achieve it by rate limiting with RLN v2.

    Problem

    First of all, let's begin with the terminology. We have talked in the past about "predictable" bandwidth, but a better name would be "capped" bandwidth. This is because it is totally fine that the waku traffic is not predictable, as long as it is capped. And it has to be capped because otherwise, no one will be able to run a node.

    Since we aim that everyone can run a full waku node (at least subscribed to a single shard) it is of paramount importance that the bandwidth requirements (up/down) are i) reasonable to run with a residential internet connection in every country and ii) limited to an upper value, aka capped. If the required bandwidth to stay up to date with a topic is higher than what the node has available, then it will start losing messages and won't be able to stay up to date with the topic messages. And not to mention the problems this will cause to other services and applications being used by the user.

    The main problem is that one can't just choose the bandwidth it allocates to relay. One could set the maximum bandwidth willing to allocate to store but this is not how relay works. The required bandwidth is not set by the node, but by the network. If a pubsub topic a has a traffic of 50 Mbps (which is the sum of all messages being sent multiplied by its size, times the D_out degree), then if a node wants to stay up to date in that topic, and relay traffic in it, then it will require 50 Mbps. There is no thing such as "partially contributing" to the topic (with eg 25Mbps) because then you will be losing messages, becoming an unreliable peer and potentially be disconnected. The network sets the pace.

    So waku needs an upper boundary on the in/out bandwidth (mbps) it consumes. Just like apps have requirements on cpu and memory, we should set a requirement on bandwidth, and then guarantee that if you have that bandwidth, you will be able to run a node without any problem. And this is the tricky part. This metric is Waku's constraint, similar to the gas-per-block limit in blockchains.

    Previous Work

    Quick summary of the evolution to solve this problem:

    • Waku started with no rate-limiting mechanism. The network was subject to DoS attacks.
    • RLN v1 was introduced, which allowed to rate-limit in a privacy-preserving and anonymous way. The rate limit can be configured to 1 message every y seconds. However, this didn't offer much granularity. A low y would allow too many messages and a high y would make the protocol unusable (impossible to send two messages in a row).
    • RLN v2 was introduced, which allows to rate-limit each user to x messages every y seconds. This offers the granularity we need. It is the current solution deployed in The Waku Network.

    Current Solution (RLN v2)

    The current solution to this problem is the usage of RLN v2, which allows to rate-limit x messages every y seconds. On top of this, the introduction of WAKU2-RLN-CONTRACT enforces a maximum amount of messages that can be sent to the network per epoch. This is achieved by limiting the amount of memberships that can be registered. The current values are:

    • R_{max}: 160000 mgs/epoch
    • r_{max}: 600 msgs/epoch
    • r_{min}: 20 msgs/epoch

    In other words, the contract limits the amount of memberships that can be registered from 266 to 8000 depending on which rate limit users choose.

    On the other hand 64/WAKU2-NETWORK states that:

    • rlnEpochSizeSec: 600. Meaning the epoch size is 600 seconds.
    • maxMessageSize: 150KB. Meaning the maximum message size that is allowed. Note: recommended average of 4KB.

    Putting this all together and assuming:

    • Messages are sent uniformly distributed.
    • All users totally consumes its rate-limit.

    We can expect the following message rate and bandwidth for the whole network:

    • A traffic of 266 msg/second on average (160000/600)
    • A traffic of 6 MBps on average (266 4KB 6), where 4KB is the average message size and 6 is the average gossipsub D-out degree.

    And assuming a uniform distribution of traffic among 8 shards:

    • 33 msg/second per shard.
    • 0.75 MBps per shard.
    + + \ No newline at end of file diff --git a/research/research-and-studies/incentivisation/index.html b/research/research-and-studies/incentivisation/index.html index fe66056..d45e1d2 100644 --- a/research/research-and-studies/incentivisation/index.html +++ b/research/research-and-studies/incentivisation/index.html @@ -3,19 +3,19 @@ -Incentivisation | Waku Documentation +Incentivisation | Waku Documentation - - - + + +

    Incentivisation

    Waku is a family of decentralised communication protocols. The Waku Network (TWN) consists of independent nodes running Waku protocols. TWN needs incentivisation (shortened to i13n) to ensure proper node behaviour.

    The goal of this document is to outline and contextualize our approach to TWN i13n. After providing an overview of Waku and relevant prior work, we focus on Waku Store - a client-server protocol for querying historical messages. We introduce a minimal viable addition to Store to enable i13n, and list research directions for future work.

    Incentivisation in decentralised networks

    Incentivisation tools

    We can think of incentivisation tools as a two-by-two matrix:

    • rewards vs punishment;
    • monetary vs reputation.

    In other words, there are four quadrants:

    • monetary reward: the node gets rewarded;
    • monetary punishment: the nodes deposits funds that are taken away (slashed) if it misbehaves;
    • reputation reward: the node's reputation increases if it behaves well;
    • reputation punishment: the node's reputation decreases if it behaves badly.

    Reputation only works if high reputation brings tangible benefits. For example, if nodes chose neighbors based on reputation, low-reputation nodes miss out on potential revenue. Reputation scores may be local (a node assigns scores to its neighbors) or global (each node gets a uniform score). Global reputation in its simplest form involves a trusted third party, although decentralised approaches are also possible.

    Prior work

    We may split incentivized decentralised networks into early file-sharing, blockchains, and decentralised storage.

    Early P2P file-sharing

    Early P2P file-sharing networks employ reputation-based approaches and sticky defaults. For instance, the BitTorrent protocol rewards uploading peers with faster downloads. The download bandwidth available to a peer depends on how much it has uploaded. Moreover, peers share pieces of a file before having received it in whole. This non-monetary i13n policy has been proved to work in practice.

    Blockchains

    Bitcoin has introduced proof-of-work (PoW) for native monetary rewards in a P2P network. PoW miners are automatically assigned newly mined coins for generating blocks. Miners must expend physical resources to generate a block. If the block is invalid, these expenses are not compensated (implicit monetary punishment). Proof-of-stake (PoS), used in Ethereum and many other cryptocurrencies, introduces explicit monetary punishments. PoS validators lock up (stake) native tokens and get rewarded for validating blocks or slashed for misbehaviour.

    Decentralised storage

    Post-Bitcoin decentralised storage networks include Codex, Storj, Sia, Filecoin, IPFS. Their i13n methods combine techniques from early P2P file-sharing with blockchain-inspired reward mechanisms.

    Waku background

    Waku is a family of protocols for a modular privacy-preserving censorship-resistant decentralised communication network. The backbone of Waku is the Relay protocol (and its spam-protected version RLN-Relay). Additionally, there are light protocols: Store, Filter, and Lightpush. Light protocols are also referred to as client-server protocols and request-response protocols.

    A server is a node running Relay and a server-side of at least one light protocol. A client is a node running a client-side of any of the light protocols. A server may sometimes be referred to as a full node, and a client as a light node. There is no strict definition of a full node vs a light node in Waku (see discussion).

    In light protocols, a client sends a request to a server, and a server performs some actions and returns a response:

    • Store: the server responds with messages relayed that match a set of criteria;
    • Filter: the server will relay (only) messages that pass a filter to the client;
    • Lightpush: the server publishes the client's message to the Relay network.

    Waku i13n challenges

    Waku has no consensus and no native token, which brings it closer to reputation-incentivised file-sharing networks. As of late 2023, Waku only operates under reputation-based rewards and punishments. While RLN-Relay adds monetary punishments for spammers, slashing is yet to be activated.

    Monetary rewards and punishments should ideally be atomically linked with the node's behaviour. A benefit of blockchains in this respect is that the desired behaviour of miners or validators can be verified automatically. Enforcing atomicity in a communication network is more challenging: it is non-trivial to prove that a given piece of data has been relayed.

    Our goal is to combine monetary and reputation-based incentives for Waku. Monetary incentives have demonstrated their robustness in blockchains. We think they are necessary to scale the network beyond the initial phase when it's maintained altruistically.

    Waku Store

    Waku Store is a light protocol for querying historic messages that works as follows:

    1. the client sends a HistoryQuery to the server;
    2. the server sends a HistoryResponse to the client.

    The response may be split into multiple parts, as specified by pagination parameters in PagingInfo.

    We define a relevant message as a message that matches client-defined criteria (e.g., relayed within a given time frame). Upon receiving a request, a server should quickly send back a response containing all and only relevant messages.

    Waku Store incentivisation

    An incentivised Store protocol has the following extra steps:

    1. pricing:
      1. cost calculation
      2. price advertisement
      3. price negotiation
    2. payment:
      1. payment itself
      2. proof of payment
    3. reputation
    4. results cross-checking

    In this document, we focus on the simplest proof-of-concept (PoC) i13n for Store. Compared to the fully-fledged protocol, the PoC version is simplified in the following ways:

    • cost calculation is based on a common-knowledge price;
    • there is no price advertisement and no price negotiation;
    • each query is paid for in a separate transaction, txid acts a proof of payment;
    • the reputation system is simplified (see below);
    • the results are not cross-checked.

    In the PoC protocol:

    1. the client calculates the price based on the known rate per hour of history;
    2. the client pays the appropriate amount to the server's address;
    3. the client sends a HistoryQuery to the server alongside the proof of payment (txid);
    4. the server checks that the txid corresponds to a confirmed transaction with at least the required amount;
    5. the server sends a HistoryResponse to the client.

    In further subsections, we list the potential direction for future work towards a fully-fledged i13n mechanism.

    Pricing

    For PoC, we assume a constant price per hour of history. This price and the blockchain address of the server are assumed to be common knowledge. This simplifies the client-server interaction, avoiding the price negotiation step.

    In the future versions of the protocol, the price will be negotiated and will depend on multiple parameters, such as the total size of the relevant messages in the response.

    Future work

    Payment

    For the PoC, each request is paid for with a separate transaction. The transaction hash (txid) acts as a proof of payment. The server verifies the payment by ensuring that:

    1. the transaction has been confirmed;
    2. the transaction is paying the proper amount to the server's account;
    3. the txid does not correspond to any prior response.

    The client gives proof of payment before it receives the response. Other options could be:

    1. the client pays after the fact;
    2. the client pays partly upfront and partly after the fact;
    3. a centralised third party (either trusted or semi-trusted, like a smart contract) ensures atomicity;
    4. cryptographically ensured atomicity (similar to atomic swaps, Lightning, or Hopr).

    Our design considerations are:

    • the PoC protocol should be simple;
    • servers are more "permanent" entities and are more likely to have long-lived identities;
    • it is more important to protect the clients's privacy than the server's privacy.

    In light of these criteria, we suggest that the client pays first. This is simpler than splitting the payment, or involving an extra atomicity-enforcing mechanism. Moreover, pre-payment is arguably more privacy-preserving than post-payment, which encourages servers to deanonymise clients to prevent fraud.

    Future work

    Reputation

    We use reputation to discourage the server from taking the payment and not responding. The client keeps track of the server's reputation:

    • all servers start with zero reputation points;
    • if the server honours the request, it gets +n points;
    • if the server does not respond before a timeout, it gets -m points.
    • if the server's reputation drops below k points, the client will never query it again.

    n, m, and k are subject to configuration.

    Optionally, a client may treat a given server as trusted, assigning it a constant positive reputation.

    Potential issues:

    • An attacker can establish new server identities and continue running away with clients' money. Countermeasures:
      • a client only queries trusted servers (which however leads to centralisation);
      • when querying a new server, a client first sends a small (i.e. cheap) request as a test;
      • more generally, the client selects a server on a case-by-case basis, weighing the payment amount against the server's reputation.
    • The ban mechanism can theoretically be abused. For instance, a competitor may attack the victim server and cause the clients who were awaiting the response to ban that server. Countermeasure: prevent DoS-attacks.

    Future work

    Design a more comprehensive reputation system:

    Results cross-checking

    As there is no consensus over past messages, a client may want to query multiple servers and merge their responses. Cross-checking helps ensure that servers are a) not censoring real messages; b) not injecting fake messages into history. Cross-checking is absent in PoC but may be considered later.

    Future work

    Evaluation

    We should think about what the success metrics for an incentivised protocol are, and how to measure them both in simulated settings, as well as in a live network.

    Longer-term future work

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Incentivisation

    Waku is a family of decentralised communication protocols. The Waku Network (TWN) consists of independent nodes running Waku protocols. TWN needs incentivisation (shortened to i13n) to ensure proper node behaviour.

    The goal of this document is to outline and contextualize our approach to TWN i13n. After providing an overview of Waku and relevant prior work, we focus on Waku Store - a client-server protocol for querying historical messages. We introduce a minimal viable addition to Store to enable i13n, and list research directions for future work.

    Incentivisation in decentralised networks

    Incentivisation tools

    We can think of incentivisation tools as a two-by-two matrix:

    • rewards vs punishment;
    • monetary vs reputation.

    In other words, there are four quadrants:

    • monetary reward: the node gets rewarded;
    • monetary punishment: the nodes deposits funds that are taken away (slashed) if it misbehaves;
    • reputation reward: the node's reputation increases if it behaves well;
    • reputation punishment: the node's reputation decreases if it behaves badly.

    Reputation only works if high reputation brings tangible benefits. For example, if nodes chose neighbors based on reputation, low-reputation nodes miss out on potential revenue. Reputation scores may be local (a node assigns scores to its neighbors) or global (each node gets a uniform score). Global reputation in its simplest form involves a trusted third party, although decentralised approaches are also possible.

    Prior work

    We may split incentivized decentralised networks into early file-sharing, blockchains, and decentralised storage.

    Early P2P file-sharing

    Early P2P file-sharing networks employ reputation-based approaches and sticky defaults. For instance, the BitTorrent protocol rewards uploading peers with faster downloads. The download bandwidth available to a peer depends on how much it has uploaded. Moreover, peers share pieces of a file before having received it in whole. This non-monetary i13n policy has been proved to work in practice.

    Blockchains

    Bitcoin has introduced proof-of-work (PoW) for native monetary rewards in a P2P network. PoW miners are automatically assigned newly mined coins for generating blocks. Miners must expend physical resources to generate a block. If the block is invalid, these expenses are not compensated (implicit monetary punishment). Proof-of-stake (PoS), used in Ethereum and many other cryptocurrencies, introduces explicit monetary punishments. PoS validators lock up (stake) native tokens and get rewarded for validating blocks or slashed for misbehaviour.

    Decentralised storage

    Post-Bitcoin decentralised storage networks include Codex, Storj, Sia, Filecoin, IPFS. Their i13n methods combine techniques from early P2P file-sharing with blockchain-inspired reward mechanisms.

    Waku background

    Waku is a family of protocols for a modular privacy-preserving censorship-resistant decentralised communication network. The backbone of Waku is the Relay protocol (and its spam-protected version RLN-Relay). Additionally, there are light protocols: Store, Filter, and Lightpush. Light protocols are also referred to as client-server protocols and request-response protocols.

    A server is a node running Relay and a server-side of at least one light protocol. A client is a node running a client-side of any of the light protocols. A server may sometimes be referred to as a full node, and a client as a light node. There is no strict definition of a full node vs a light node in Waku (see discussion).

    In light protocols, a client sends a request to a server, and a server performs some actions and returns a response:

    • Store: the server responds with messages relayed that match a set of criteria;
    • Filter: the server will relay (only) messages that pass a filter to the client;
    • Lightpush: the server publishes the client's message to the Relay network.

    Waku i13n challenges

    Waku has no consensus and no native token, which brings it closer to reputation-incentivised file-sharing networks. As of late 2023, Waku only operates under reputation-based rewards and punishments. While RLN-Relay adds monetary punishments for spammers, slashing is yet to be activated.

    Monetary rewards and punishments should ideally be atomically linked with the node's behaviour. A benefit of blockchains in this respect is that the desired behaviour of miners or validators can be verified automatically. Enforcing atomicity in a communication network is more challenging: it is non-trivial to prove that a given piece of data has been relayed.

    Our goal is to combine monetary and reputation-based incentives for Waku. Monetary incentives have demonstrated their robustness in blockchains. We think they are necessary to scale the network beyond the initial phase when it's maintained altruistically.

    Waku Store

    Waku Store is a light protocol for querying historic messages that works as follows:

    1. the client sends a HistoryQuery to the server;
    2. the server sends a HistoryResponse to the client.

    The response may be split into multiple parts, as specified by pagination parameters in PagingInfo.

    We define a relevant message as a message that matches client-defined criteria (e.g., relayed within a given time frame). Upon receiving a request, a server should quickly send back a response containing all and only relevant messages.

    Waku Store incentivisation

    An incentivised Store protocol has the following extra steps:

    1. pricing:
      1. cost calculation
      2. price advertisement
      3. price negotiation
    2. payment:
      1. payment itself
      2. proof of payment
    3. reputation
    4. results cross-checking

    In this document, we focus on the simplest proof-of-concept (PoC) i13n for Store. Compared to the fully-fledged protocol, the PoC version is simplified in the following ways:

    • cost calculation is based on a common-knowledge price;
    • there is no price advertisement and no price negotiation;
    • each query is paid for in a separate transaction, txid acts a proof of payment;
    • the reputation system is simplified (see below);
    • the results are not cross-checked.

    In the PoC protocol:

    1. the client calculates the price based on the known rate per hour of history;
    2. the client pays the appropriate amount to the server's address;
    3. the client sends a HistoryQuery to the server alongside the proof of payment (txid);
    4. the server checks that the txid corresponds to a confirmed transaction with at least the required amount;
    5. the server sends a HistoryResponse to the client.

    In further subsections, we list the potential direction for future work towards a fully-fledged i13n mechanism.

    Pricing

    For PoC, we assume a constant price per hour of history. This price and the blockchain address of the server are assumed to be common knowledge. This simplifies the client-server interaction, avoiding the price negotiation step.

    In the future versions of the protocol, the price will be negotiated and will depend on multiple parameters, such as the total size of the relevant messages in the response.

    Future work

    Payment

    For the PoC, each request is paid for with a separate transaction. The transaction hash (txid) acts as a proof of payment. The server verifies the payment by ensuring that:

    1. the transaction has been confirmed;
    2. the transaction is paying the proper amount to the server's account;
    3. the txid does not correspond to any prior response.

    The client gives proof of payment before it receives the response. Other options could be:

    1. the client pays after the fact;
    2. the client pays partly upfront and partly after the fact;
    3. a centralised third party (either trusted or semi-trusted, like a smart contract) ensures atomicity;
    4. cryptographically ensured atomicity (similar to atomic swaps, Lightning, or Hopr).

    Our design considerations are:

    • the PoC protocol should be simple;
    • servers are more "permanent" entities and are more likely to have long-lived identities;
    • it is more important to protect the clients's privacy than the server's privacy.

    In light of these criteria, we suggest that the client pays first. This is simpler than splitting the payment, or involving an extra atomicity-enforcing mechanism. Moreover, pre-payment is arguably more privacy-preserving than post-payment, which encourages servers to deanonymise clients to prevent fraud.

    Future work

    Reputation

    We use reputation to discourage the server from taking the payment and not responding. The client keeps track of the server's reputation:

    • all servers start with zero reputation points;
    • if the server honours the request, it gets +n points;
    • if the server does not respond before a timeout, it gets -m points.
    • if the server's reputation drops below k points, the client will never query it again.

    n, m, and k are subject to configuration.

    Optionally, a client may treat a given server as trusted, assigning it a constant positive reputation.

    Potential issues:

    • An attacker can establish new server identities and continue running away with clients' money. Countermeasures:
      • a client only queries trusted servers (which however leads to centralisation);
      • when querying a new server, a client first sends a small (i.e. cheap) request as a test;
      • more generally, the client selects a server on a case-by-case basis, weighing the payment amount against the server's reputation.
    • The ban mechanism can theoretically be abused. For instance, a competitor may attack the victim server and cause the clients who were awaiting the response to ban that server. Countermeasure: prevent DoS-attacks.

    Future work

    Design a more comprehensive reputation system:

    Results cross-checking

    As there is no consensus over past messages, a client may want to query multiple servers and merge their responses. Cross-checking helps ensure that servers are a) not censoring real messages; b) not injecting fake messages into history. Cross-checking is absent in PoC but may be considered later.

    Future work

    Evaluation

    We should think about what the success metrics for an incentivised protocol are, and how to measure them both in simulated settings, as well as in a live network.

    Longer-term future work

    + + \ No newline at end of file diff --git a/research/research-and-studies/maximum-bandwidth/index.html b/research/research-and-studies/maximum-bandwidth/index.html index be1c608..e72220a 100644 --- a/research/research-and-studies/maximum-bandwidth/index.html +++ b/research/research-and-studies/maximum-bandwidth/index.html @@ -3,19 +3,19 @@ -Maximum Bandwidth for Global Adoption | Waku Documentation +Maximum Bandwidth for Global Adoption | Waku Documentation - - - + + +

    Maximum Bandwidth for Global Adoption

    TLDR: This issue aims to set the maximum bandwidth in x Mbps that each waku shard should consume so that the maximum amount of people can run a full waku node. It is up to https://github.com/waku-org/research/issues/22 to specify how this maximum will be enforced.

    Conclusion: Limit to 10 Mbps each waku shard.

    Introduction

    Waku is designed in a way that everyone should be able to run a full node on an average laptop with a residential Internet connection, at least in one shard. This will enable true decentralization and give power to the users, since they won't need to rely on third parties to send/receive messages. Professional node operators running in data centers, can of course contribute to multiple shards, but we should keep the bandwidth/hardware requirements of single shard rather low.

    This vision opposes the federated approach, where a few nodes requiring vast amounts of resources (cpu, memory, bandwidth) run in data centres, taking the power from the user. While federated approaches are an improvement from traditional client-server architectures, waku envisions a fully peer-to-peer architecture where anyone should be able to run a node.

    In order to ensure that anyone can run a node in desktop, there are two main limiting factors:

    1. Bandwidth consumption in Mbps
    2. CPU/memory resources (mainly limited by RLN proof verification)

    This issue focuses on i) bandwidth consumption and https://github.com/waku-org/research/issues/30 on ii) CPU/memory resources. Note that on https://github.com/waku-org/research/issues/23 an analysis on the impact on RLN was already made, but wasn't focused on scalability. Said issues do.

    In https://github.com/waku-org/research/issues/22 we discussed why and how to limit the maximum bandwidth per shard, but we haven't come up with a specific number in Mbps. This issue i) presents data from the available bandwidth at different locations and ii) suggests a maximum bandwidth in Mbps that waku should enforce.

    Bandwidth availability and usage

    The following tables show:

    • Table [1] The Q25, Q75 and average bandwidth (upload/download) in Mbps available on different continents. Raw data is available here and credits to @leobago for the summarized version. Note: The below numbers were rounded to the nearest integer.
    • Table [2] The median global bandwidth (upload/download) in Mbps, taken from speedtest (accessed 12 Oct 2023).
    • Table [3] Download bandwidth requirements in Mbps for Netflix video streaming, source.
    Table [1]Download (Mbps)Upload (Mbps)
    Q25AverageQ75Q25AverageQ75
    North-America58107137386885
    South-America215472133344
    Europe4993119305672
    Asia235371153750
    Oceania4484108275063
    Africa12263371722
    Table [2]Median Download (Mbps)Median Upload (Mbps)
    Global8338
    Table [3] Video resolutionRecommended Bandwidth
    HD3 Mbps
    Full HD5 Mbps
    4K/UHD15 Mbps

    Selecting a maximum bandwidth

    With the above data, we should be informed to take a decision on the maximum bandwidth that we should enforce per shard. With this number, we will apply the techniques explained in https://github.com/waku-org/research/issues/22 to ensure (with some statistical confidence) that the bandwidth won't exceed that number.

    The trade-off is clear:

    • We enforce a low bandwidth: more people can run full waku nodes, overall network throughput is less, network decentralization is easier, gives power to the user as its fully sovereign.
    • We don't enforce a low bandwidth: not possible to run full waku nodes in laptops acting as a centralization force, nodes are run by few professional operators in data centers, waku users just use light clients, network throughput can scale way easier, federated approach.

    So it's about where to draw this line.

    Points to take into account:

    • Relay contributes to bandwidth the most: Relay is the protocol that mostly contributes to bandwidth usage, and it can't choose to allocate fewer bandwidth resources like other protocols (eg store can choose to provide less resources and it will work). In other words, the network sets the relay bandwidth requirements, and if the node can't meet them, it just wont work.
    • Upload and download bandwidth are the same: Due to how gossipsub works, and hence relay, the bandwidth consumption is symmetric, meaning that upload and download bandwidth is the same. This is because of D and the reciprocity of the connections, meaning that one node upload is another download.
    • Nodes not meeting requirements can use light clients. Note that nodes not meeting the bandwidth requirements can still use waku, but they will have to use light protocols, which are a great alternative, especially on mobile, but with some drawbacks (trust assumptions, less reliability, etc)
    • Waku can't take all the bandwidth: Waku is meant to be used in conjunction with other services, so it shouldn't consume all the existing bandwidth. If Waku consumes x Mbps and someone bandwidth is x Mpbs, the UX won't be good.
    • Compare with existing well-known services: As shown in Table [3], Netflix 4K video streaming takes 15Mbps, so that is an order of magnitude to take into account.

    Coming up with a number:

    • Lowest average download speed across continents is Africa (26 Mbps)
    • Lowest average upload speed across continents is Africa (17 Mbps)
    • Since in waku the bandwidth consumption is symmetric, we are limited by the lowest (17 Mpbs)
    • However waku should not consume all bandwidth, leaving some room for other applications.
    • We could set 10 Mbps, which is between Full HD video and 4K.
    • With 10Mbps the % of average bandwidth waku will consume is:
      • North-America 9 %
      • South-America 18 %
      • Europe 11 %
      • Asia 18 %
      • Oceania 12 %
      • Africa 38 %

    Conclusion: Limit to 10 Mbps each waku shard. How? Not trivial, see https://github.com/waku-org/research/issues/22#issuecomment-1727795042

    Note: This number is not set in stone and is subject to modifications, but it will most likely stay in the same order of magnitude if changed.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Maximum Bandwidth for Global Adoption

    TLDR: This issue aims to set the maximum bandwidth in x Mbps that each waku shard should consume so that the maximum amount of people can run a full waku node. It is up to https://github.com/waku-org/research/issues/22 to specify how this maximum will be enforced.

    Conclusion: Limit to 10 Mbps each waku shard.

    Introduction

    Waku is designed in a way that everyone should be able to run a full node on an average laptop with a residential Internet connection, at least in one shard. This will enable true decentralization and give power to the users, since they won't need to rely on third parties to send/receive messages. Professional node operators running in data centers, can of course contribute to multiple shards, but we should keep the bandwidth/hardware requirements of single shard rather low.

    This vision opposes the federated approach, where a few nodes requiring vast amounts of resources (cpu, memory, bandwidth) run in data centres, taking the power from the user. While federated approaches are an improvement from traditional client-server architectures, waku envisions a fully peer-to-peer architecture where anyone should be able to run a node.

    In order to ensure that anyone can run a node in desktop, there are two main limiting factors:

    1. Bandwidth consumption in Mbps
    2. CPU/memory resources (mainly limited by RLN proof verification)

    This issue focuses on i) bandwidth consumption and https://github.com/waku-org/research/issues/30 on ii) CPU/memory resources. Note that on https://github.com/waku-org/research/issues/23 an analysis on the impact on RLN was already made, but wasn't focused on scalability. Said issues do.

    In https://github.com/waku-org/research/issues/22 we discussed why and how to limit the maximum bandwidth per shard, but we haven't come up with a specific number in Mbps. This issue i) presents data from the available bandwidth at different locations and ii) suggests a maximum bandwidth in Mbps that waku should enforce.

    Bandwidth availability and usage

    The following tables show:

    • Table [1] The Q25, Q75 and average bandwidth (upload/download) in Mbps available on different continents. Raw data is available here and credits to @leobago for the summarized version. Note: The below numbers were rounded to the nearest integer.
    • Table [2] The median global bandwidth (upload/download) in Mbps, taken from speedtest (accessed 12 Oct 2023).
    • Table [3] Download bandwidth requirements in Mbps for Netflix video streaming, source.
    Table [1]Download (Mbps)Upload (Mbps)
    Q25AverageQ75Q25AverageQ75
    North-America58107137386885
    South-America215472133344
    Europe4993119305672
    Asia235371153750
    Oceania4484108275063
    Africa12263371722
    Table [2]Median Download (Mbps)Median Upload (Mbps)
    Global8338
    Table [3] Video resolutionRecommended Bandwidth
    HD3 Mbps
    Full HD5 Mbps
    4K/UHD15 Mbps

    Selecting a maximum bandwidth

    With the above data, we should be informed to take a decision on the maximum bandwidth that we should enforce per shard. With this number, we will apply the techniques explained in https://github.com/waku-org/research/issues/22 to ensure (with some statistical confidence) that the bandwidth won't exceed that number.

    The trade-off is clear:

    • We enforce a low bandwidth: more people can run full waku nodes, overall network throughput is less, network decentralization is easier, gives power to the user as its fully sovereign.
    • We don't enforce a low bandwidth: not possible to run full waku nodes in laptops acting as a centralization force, nodes are run by few professional operators in data centers, waku users just use light clients, network throughput can scale way easier, federated approach.

    So it's about where to draw this line.

    Points to take into account:

    • Relay contributes to bandwidth the most: Relay is the protocol that mostly contributes to bandwidth usage, and it can't choose to allocate fewer bandwidth resources like other protocols (eg store can choose to provide less resources and it will work). In other words, the network sets the relay bandwidth requirements, and if the node can't meet them, it just wont work.
    • Upload and download bandwidth are the same: Due to how gossipsub works, and hence relay, the bandwidth consumption is symmetric, meaning that upload and download bandwidth is the same. This is because of D and the reciprocity of the connections, meaning that one node upload is another download.
    • Nodes not meeting requirements can use light clients. Note that nodes not meeting the bandwidth requirements can still use waku, but they will have to use light protocols, which are a great alternative, especially on mobile, but with some drawbacks (trust assumptions, less reliability, etc)
    • Waku can't take all the bandwidth: Waku is meant to be used in conjunction with other services, so it shouldn't consume all the existing bandwidth. If Waku consumes x Mbps and someone bandwidth is x Mpbs, the UX won't be good.
    • Compare with existing well-known services: As shown in Table [3], Netflix 4K video streaming takes 15Mbps, so that is an order of magnitude to take into account.

    Coming up with a number:

    • Lowest average download speed across continents is Africa (26 Mbps)
    • Lowest average upload speed across continents is Africa (17 Mbps)
    • Since in waku the bandwidth consumption is symmetric, we are limited by the lowest (17 Mpbs)
    • However waku should not consume all bandwidth, leaving some room for other applications.
    • We could set 10 Mbps, which is between Full HD video and 4K.
    • With 10Mbps the % of average bandwidth waku will consume is:
      • North-America 9 %
      • South-America 18 %
      • Europe 11 %
      • Asia 18 %
      • Oceania 12 %
      • Africa 38 %

    Conclusion: Limit to 10 Mbps each waku shard. How? Not trivial, see https://github.com/waku-org/research/issues/22#issuecomment-1727795042

    Note: This number is not set in stone and is subject to modifications, but it will most likely stay in the same order of magnitude if changed.

    + + \ No newline at end of file diff --git a/research/research-and-studies/message-propagation/index.html b/research/research-and-studies/message-propagation/index.html index f4da0cd..4f3b034 100644 --- a/research/research-and-studies/message-propagation/index.html +++ b/research/research-and-studies/message-propagation/index.html @@ -3,19 +3,19 @@ -Message Propagation Times With Waku-RLN | Waku Documentation +Message Propagation Times With Waku-RLN | Waku Documentation - - - + + +

    Message Propagation Times With Waku-RLN

    TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it's affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters.

    Introduction

    Waku uses relay as a routing protocol, which is an adaptation of gossipsub. It routes messages following a publisher/subscriber architecture, where nodes can publish messages or subscribe to topics. If message m is published to topic t, all i nodes n_1...n_i subscribed to t will get m. The relay protocol ensures that every node gets the messages of the topics it is subscribed to.

    However, since relay works in a decentralized manner, all nodes contribute to the gossiping of a message, until it has successfully reached all the interested nodes (subscribed to it). This means that a message can travel multiple hops until it reaches all nodes. The amount of hops determines the message propagation time, which is measured as the time difference of when the node published the message and when another node received.

    This issue aims to go from theory to practice, by i) understanding message propagation times in theory and ii) presenting nwaku simulation results in an end-to-end setup with rln, with real message propagation times.

    Theory

    Let's start with message propagation times in theory. On a high level, it depends on:

    • The gossipsub configuration, being D one of the most important parameters. This sets the hops that a message will travel to reach all nodes. Higher D, less hops, less delay. Note that a higher D implies more bandwidth consumption.
    • The node. Different nodes will see different propagation times, because a message can travel different paths. A node connected directly to the publisher (1 hop) will see lower propagation times than other nodes further away.
    • Individual propagation times. Since a message can travel multiple hops to reach its destination, each hop adds a contribution to the overall message propagation time. This individual propagation time depends on the characteristics on the nodes involved in the connections.

    In a D-regular graph, like the one formed by waku nodes around a topic, the maximum amount of hops that a message can travel to reach all nodes can be calculated as ceil(log(total_nodes)/log(D)). For example, with log(1000)/log(6) = 3.85 = 4. So in a network with 1000 nodes and D=6, no matter which node publishes the message, in 4 hops it will reach all the nodes.

    Notice the "worst case" since some nodes might be directly connected to the publisher, so they will get the message in just 1 hop.

    But how long does it take to jump each hop? It depends on:

    • The latency between nodes. Can be measured as the time to respond to a ping.
    • The size of the messages. The bigger the message, the more time it takes to transmit.
    • Nodes bandwidth. Sender upload bandwidth and receiver download bandwidth. More important when using big message sizes.
    • Message validation time. When each node receives a message, it applies some validation to decide if the message is further gossiped or not. In the case of waku, this is RLN (paper, rfc)

    Assuming a message m that travels 4 hops from node n1 (publisher) to n5 (subscriber) we can calculate the message propagation time mpt=ipt_1+ipt_2+ipt_3+ipt_4 where ipt is the individual propagation time between each node in the chain.

    However, specific message propagation times are useless, we need average times under specific conditions. And for this, we need simulations.

    Simulations

    Using shadow simulator, we have developed a tool that allows to simulate message propagation delays of nwaku (using a slightly modified branch, mainly to instrument it with tools to measure the times + starting from an already connected mesh. Thanks @Menduist for the help. Note that running this simulation requires a significant amount of resources, done with 256 GB of RAM.

    The configuration of the simulation is (see config):

    • latency=100ms. Average latency in our current waku network. Thanks @vpavlin for the measurements. See this for live data.
    • down_bandwidth=83Mbps, up_bandwidth=38Mbps. As shown in Table 2 that's the worldwide median speed.
    • D=6, which is the current nwaku configuration.
    • nodes=1000. Amount of nodes used in the simulation
    • nwaku was used with a minor modification
    • A total of 10 messages were published, that led to 9990 received messages.
    • Since shadow doesn't take into account CPU times (by now), we simulate it with sleepAsync as per https://github.com/waku-org/research/issues/23 findings. 0.012 seconds for proof verification and 0.15 seconds for proof generation.

    Results

    The following figure shows the message propagation time with real simulations, showing the distribution in a network with the above configuration with three different message sizes: 10kB, 100kB, 500kB. Note that the whiskers indicate the best/worst values and the box contains P25 to P75 values. Average mu and P95 are also shown. Raw data here.

    message-latency-distribution

    Important note. The first messages sent in the simulations are omitted, since they show an abnormal propagation delay that doesn't reflect reality. This is due to how flow control works in TCP, where right after connection, the sender node has no idea of the "bandwidth" of the receiver node, so it will start sending packages at a lower rate. This translates into high transmission times, and it's more pronounced when dealing with big message sizes.

    In other words, in a 100Mpbs link, 100Mbits won't be sent in 1 second, or at least not a the beginning, when the node is slowly increasing the rate until based on ACK/NACK ratio. For more information about this, this is explained in here.

    Conclusions:

    • Using small messages 10kB the average propagation delay is 508 ms, quite reasonable for applications using waku. The variance is acceptable, with 95% of the messages arriving in <627 ms.
    • When using a size of 10kB we can see that the best case propagation delay is 263 ms. This corresponds to the nodes that are just 1 hop from the publisher. The proof generation time 0.15 seconds affects the most, where the rest is the inter-node latency and the transmission of the message itself.
    • We can see that the message propagation delay increases with big messages, 100kB and 500kB. So its probably not a good idea to use waku for such big messages. Note that these simulations had 1000 nodes, so if we scale it to 10000 or beyond, propagation times would be worse.
    • Best case propagation time (lower part of the whisker) is quite similar in all cases. This is because it corresponds to the node that is just 1 hop away from the publisher.

    Future work:

    • Current waku D values (average of 6 ranging from 4 to 12) have a huge impact on the bandwidth that a node consumes. Are we willing to lower D in order to reduce bandwidth but increase message propagation times?
    • Since shadow doesn't take CPU time into account, it's currently simulated for rln, which should be the biggest bottleneck. Once shadow has this feature times would be more accurate.
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Message Propagation Times With Waku-RLN

    TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it's affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters.

    Introduction

    Waku uses relay as a routing protocol, which is an adaptation of gossipsub. It routes messages following a publisher/subscriber architecture, where nodes can publish messages or subscribe to topics. If message m is published to topic t, all i nodes n_1...n_i subscribed to t will get m. The relay protocol ensures that every node gets the messages of the topics it is subscribed to.

    However, since relay works in a decentralized manner, all nodes contribute to the gossiping of a message, until it has successfully reached all the interested nodes (subscribed to it). This means that a message can travel multiple hops until it reaches all nodes. The amount of hops determines the message propagation time, which is measured as the time difference of when the node published the message and when another node received.

    This issue aims to go from theory to practice, by i) understanding message propagation times in theory and ii) presenting nwaku simulation results in an end-to-end setup with rln, with real message propagation times.

    Theory

    Let's start with message propagation times in theory. On a high level, it depends on:

    • The gossipsub configuration, being D one of the most important parameters. This sets the hops that a message will travel to reach all nodes. Higher D, less hops, less delay. Note that a higher D implies more bandwidth consumption.
    • The node. Different nodes will see different propagation times, because a message can travel different paths. A node connected directly to the publisher (1 hop) will see lower propagation times than other nodes further away.
    • Individual propagation times. Since a message can travel multiple hops to reach its destination, each hop adds a contribution to the overall message propagation time. This individual propagation time depends on the characteristics on the nodes involved in the connections.

    In a D-regular graph, like the one formed by waku nodes around a topic, the maximum amount of hops that a message can travel to reach all nodes can be calculated as ceil(log(total_nodes)/log(D)). For example, with log(1000)/log(6) = 3.85 = 4. So in a network with 1000 nodes and D=6, no matter which node publishes the message, in 4 hops it will reach all the nodes.

    Notice the "worst case" since some nodes might be directly connected to the publisher, so they will get the message in just 1 hop.

    But how long does it take to jump each hop? It depends on:

    • The latency between nodes. Can be measured as the time to respond to a ping.
    • The size of the messages. The bigger the message, the more time it takes to transmit.
    • Nodes bandwidth. Sender upload bandwidth and receiver download bandwidth. More important when using big message sizes.
    • Message validation time. When each node receives a message, it applies some validation to decide if the message is further gossiped or not. In the case of waku, this is RLN (paper, rfc)

    Assuming a message m that travels 4 hops from node n1 (publisher) to n5 (subscriber) we can calculate the message propagation time mpt=ipt_1+ipt_2+ipt_3+ipt_4 where ipt is the individual propagation time between each node in the chain.

    However, specific message propagation times are useless, we need average times under specific conditions. And for this, we need simulations.

    Simulations

    Using shadow simulator, we have developed a tool that allows to simulate message propagation delays of nwaku (using a slightly modified branch, mainly to instrument it with tools to measure the times + starting from an already connected mesh. Thanks @Menduist for the help. Note that running this simulation requires a significant amount of resources, done with 256 GB of RAM.

    The configuration of the simulation is (see config):

    • latency=100ms. Average latency in our current waku network. Thanks @vpavlin for the measurements. See this for live data.
    • down_bandwidth=83Mbps, up_bandwidth=38Mbps. As shown in Table 2 that's the worldwide median speed.
    • D=6, which is the current nwaku configuration.
    • nodes=1000. Amount of nodes used in the simulation
    • nwaku was used with a minor modification
    • A total of 10 messages were published, that led to 9990 received messages.
    • Since shadow doesn't take into account CPU times (by now), we simulate it with sleepAsync as per https://github.com/waku-org/research/issues/23 findings. 0.012 seconds for proof verification and 0.15 seconds for proof generation.

    Results

    The following figure shows the message propagation time with real simulations, showing the distribution in a network with the above configuration with three different message sizes: 10kB, 100kB, 500kB. Note that the whiskers indicate the best/worst values and the box contains P25 to P75 values. Average mu and P95 are also shown. Raw data here.

    message-latency-distribution

    Important note. The first messages sent in the simulations are omitted, since they show an abnormal propagation delay that doesn't reflect reality. This is due to how flow control works in TCP, where right after connection, the sender node has no idea of the "bandwidth" of the receiver node, so it will start sending packages at a lower rate. This translates into high transmission times, and it's more pronounced when dealing with big message sizes.

    In other words, in a 100Mpbs link, 100Mbits won't be sent in 1 second, or at least not a the beginning, when the node is slowly increasing the rate until based on ACK/NACK ratio. For more information about this, this is explained in here.

    Conclusions:

    • Using small messages 10kB the average propagation delay is 508 ms, quite reasonable for applications using waku. The variance is acceptable, with 95% of the messages arriving in <627 ms.
    • When using a size of 10kB we can see that the best case propagation delay is 263 ms. This corresponds to the nodes that are just 1 hop from the publisher. The proof generation time 0.15 seconds affects the most, where the rest is the inter-node latency and the transmission of the message itself.
    • We can see that the message propagation delay increases with big messages, 100kB and 500kB. So its probably not a good idea to use waku for such big messages. Note that these simulations had 1000 nodes, so if we scale it to 10000 or beyond, propagation times would be worse.
    • Best case propagation time (lower part of the whisker) is quite similar in all cases. This is because it corresponds to the node that is just 1 hop away from the publisher.

    Future work:

    • Current waku D values (average of 6 ranging from 4 to 12) have a huge impact on the bandwidth that a node consumes. Are we willing to lower D in order to reduce bandwidth but increase message propagation times?
    • Since shadow doesn't take CPU time into account, it's currently simulated for rln, which should be the biggest bottleneck. Once shadow has this feature times would be more accurate.
    + + \ No newline at end of file diff --git a/research/research-and-studies/rln-key-benchmarks/index.html b/research/research-and-studies/rln-key-benchmarks/index.html index 6c38337..193fce0 100644 --- a/research/research-and-studies/rln-key-benchmarks/index.html +++ b/research/research-and-studies/rln-key-benchmarks/index.html @@ -3,11 +3,11 @@ -RLN Key Benchmarks | Waku Documentation +RLN Key Benchmarks | Waku Documentation - - - + + +

    RLN Key Benchmarks

    Introduction

    Since RLN has been chosen as the spamming protection mechanism for waku, we must understand the practical implications of using it. This issue explains the main differences between relay and rln-relay and gives some benchmarks after running simulations using waku-simulator, in a network with the following characteristics:

    • 100 nwaku nodes, each one with a valid rln membership and publishing a message every 10 seconds to a common topic.
    • rln contract deployed in Ethereum Sepolia
    • 10.000 memberships registered in the contract
    • pure relay (store and light protocols disabled)

    The main deltas rln vs rln-relay are:

    • New proof field in WakuMessage containing 384 extra bytes. This field must be generated and attached to each message.
    • New validator, that uses proof to Accept or Reject the message. The proof has to be verified.
    • New dependency on a blockchain, Ethereum, or any EVM chain, to keep track of the members allowed to publish.

    But what are the practical implications of these?

    TLDR:

    • Proof generation is constant-ish. 0.15 second for each proof
    • Proof verification is constant-ish, 0.012 seconds. In a network with 10k nodes and D=6 this would add an overhead delay of 0.06 seconds.
    • Gossipsub scoring drops connections from spammer peers, which acts as the punishment (instead of slashing). Validated in the simulation.
    • Rln doesn't have any impact on memory consumption.

    Proof generation times

    Seems that proof generation times stay constant no matter the size of the message. In the following simulation it was increased from: 1kB, 10kB, 50kB, 150kB. On average it takes 0.15 seconds to calculate the message proof. This means that when a node wants to send a message, it will need to spend this time generating the proof. It seems very reasonable and it actually acts as a mini proof of work, where a consumer computer won't be able to publish a really high number of messages per second.

    proof-generation-times

    Proof verification times

    On the other hand, rln also adds an overhead in the gossipsub validation process. On average it takes 0.012 seconds to verify the proof. It seems that when we increase the message size, validation time seems to increase a bit, which can be for any other reason besides rln itself (eg deserializing the message might take longer).

    This number seems reasonable and shouldn't affect that much the average delay of a message. Assuming a d-regular graph, with 10k nodes and D=6, we can have up to log(total_nodes)/log(D)=5 hops. So in the worst case, rln will add a network latency of 0.012*5 = 0.06 seconds

    proof-verification-times

    Spam protection

    For the initial release of RLN, slashing won't be implemented and it still remains unclear if it will be implemented in the future. Luckily, even if slashing is not implemented rln can be used to detect spam and punish the sender off-chain (instead of slashing an onchain collateral). This is done with gossipsub scoring.

    In the following simulation, we can see 100 nwaku interconnected nodes, where one of them suddenly starts spamming the network with multiple valid rln messages 3000 messages/minute. Since its rate limited to 1msg/10 seconds, we can see that in almost no time, every node in the network disconnects from the spammer peer (see red node), leaving it with 0 peers, which disincentivise such attacks and without requiring a financial slashing.

    connected-peers

    RLN tree sync

    Using RLN implies that waku should now piggyback on a blockchain (the case study uses Ethereum Sepolia) and has to stay up to date with the latest events emitted by the rln smart contract. These events are used to locally construct a tree that contains all members allowed to create valid proofs to send messages. Some numbers:

    • A tree with 10k members takes 2Mbytes of space. Negligible.
    • A tree with 10k members takes `<4 minutes to synchronize. Assumable since it's done just once.
    • With a block range of 5000 blocks for each request, we would need 520 requests to synchronize 1 year of historical data from the tree. Assumable since most of the free endpoints out there allow 100k/day.

    Performance relay vs. rln-relay

    Same simulation with 100 nodes was executed with rln and without rln:

    • Memory consumption is almost identical

    with rln

    with-rln

    without rln -

    without-rln

    • Couldn't capture cpu metrics
    • Minor differences in messages per seconds is due to injection technique, nothing related to rln itself.
    - - +

    without-rln

    • Couldn't capture cpu metrics
    • Minor differences in messages per seconds is due to injection technique, nothing related to rln itself.
    + + \ No newline at end of file diff --git a/rules-of-engagement/index.html b/rules-of-engagement/index.html index 05527c9..65a0d8f 100644 --- a/rules-of-engagement/index.html +++ b/rules-of-engagement/index.html @@ -3,11 +3,11 @@ -Rules of Engagement | Waku Documentation +Rules of Engagement | Waku Documentation - - - + + +

    Rules of Engagement

    Waku is a nascent technology and the Waku community is still growing. Hence, the Waku team is keen to work closely with projects to help leverage Waku technology to drive the success of their own applications.

    We describe below the expected flow for working with Waku and some rules of engagement to set expectations for project teams interacting with the Waku team.

    1. Initial discussion

    We encourage the initial discussion to happen over a video call. However, in-person event or online discussions are also an option.

    During this initial interaction, the project team should present their product and the needs they have in relation to peer-to-peer communication and real time interaction.

    The Waku team will provide an overview of Waku and point to specific protocol and software that should help fulfil such needs.

    Benefits and caveats are highlighted and further documentation and examples will be provided.

    2. Solution design

    Projects should review Waku documentations and libraries in their own time; start building a PoC using Waku.

    Projects should start designing over Waku and come up with skeleton design or user flows about specific friction points or complex area (e.g. user experience, scaling).

    Project should appoint one or two Waku SME (Subject Matter Expert) to drive most discussions with Waku team to start acquire expertise on Waku behaviour.

    Project's Waku SMEs should present unresolved design issues to Waku team.

    The Waku team will then review and provide skeleton design solutions on how to overcome said unresolved or complex issues.

    3. Commitment

    The project should finalise a design, solution or protocol they will build using Waku.

    If they wish to, they can present this solution to the Waku team to get feedback and identify technical gaps.

    The Waku team can provide feedback, highlight potential caveats, and communicate on delivery timeline for gaps, if any.

    note

    While the Waku team can provide feedback or even design potential solution on how Waku could be integrated in an application. It is the responsibility of the project team to understand the potential caveats and limitations that may incur with such a design.

    The Waku team can provide options, but it is up to the project team to decide on the final solution.

    4. Building

    The project then start building their MVP using Waku. The Waku team can provide support regarding API usage, bugs encountered, documentation gaps.

    Waku team will use feedback raised by project to improve APIs, fix bugs and enhance documentation. Waku team continues R&D to deliver any committed technical gaps.

    Project delivers their MVP.

    note

    The Waku team is keen to help any usage of Waku library. Please note that code snippets are necessary for preliminary investigations of issues.

    Sometimes, a code snippet is not enough; in this case, a minimal reproduction repo is necessary to allow us to do further investigation. -If the project is open-source, then the Waku team might try to further investigate using it, as long as the reproduction steps are easy.

    If no code is provided to help with the investigation, then there is nothing the Waku team can do.

    For any unresolved issue, the project must open an issue on the related GitHub repository under the waku-org organisation.

    5. Ongoing relation

    Once the project application is live, the Waku team is keen to maintain regular contact. This can include discussion around performance, bugs found by users, etc.

    The Waku team is keen to regularly present new and upcoming development to project team, highlight items that are particularly relevant.

    If a project wishes to take onboard any new Waku protocol, or decide to extend their product with a new functionality using Waku, the circle can resume from step 1.

    - - +If the project is open-source, then the Waku team might try to further investigate using it, as long as the reproduction steps are easy.

    If no code is provided to help with the investigation, then there is nothing the Waku team can do.

    For any unresolved issue, the project must open an issue on the related GitHub repository under the waku-org organisation.

    5. Ongoing relation

    Once the project application is live, the Waku team is keen to maintain regular contact. This can include discussion around performance, bugs found by users, etc.

    The Waku team is keen to regularly present new and upcoming development to project team, highlight items that are particularly relevant.

    If a project wishes to take onboard any new Waku protocol, or decide to extend their product with a new functionality using Waku, the circle can resume from step 1.

    + + \ No newline at end of file diff --git a/search-index.json b/search-index.json index 52baa4a..1046dbd 100644 --- a/search-index.json +++ b/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"JavaScript Waku SDK","u":"/guides/js-waku/","b":["Guides","JavaScript Waku SDK"]},{"i":11,"t":"Send and Receive Messages Using Light Push and Filter","u":"/guides/js-waku/light-send-receive","b":["Guides","JavaScript Waku SDK"]},{"i":27,"t":"Introduction to Waku","u":"/","b":["Guides"]},{"i":41,"t":"JavaScript SDK FAQ","u":"/guides/js-waku/faq","b":["Guides","JavaScript Waku SDK"]},{"i":43,"t":"Bootstrap Nodes and Discover Peers","u":"/guides/js-waku/configure-discovery","b":["Guides","JavaScript Waku SDK"]},{"i":55,"t":"Debug Your Waku DApp and WebSocket","u":"/guides/js-waku/debug-waku-dapp","b":["Guides","JavaScript Waku SDK"]},{"i":71,"t":"Scaffold DApps Using @waku/create-app","u":"/guides/js-waku/use-waku-create-app","b":["Guides","JavaScript Waku SDK"]},{"i":77,"t":"Build React DApps Using @waku/react","u":"/guides/js-waku/use-waku-react","b":["Guides","JavaScript Waku SDK"]},{"i":91,"t":"Run @waku/sdk in a NodeJS Application","u":"/guides/js-waku/run-waku-nodejs","b":["Guides","JavaScript Waku SDK"]},{"i":106,"t":"Encrypt, Decrypt, and Sign Your Messages","u":"/guides/js-waku/message-encryption","b":["Guides","JavaScript Waku SDK"]},{"i":118,"t":"Build Nwaku from Source","u":"/guides/nwaku/build-source","b":["Guides","Run a Nwaku Node"]},{"i":130,"t":"Manage Your Filter Subscriptions","u":"/guides/js-waku/manage-filter","b":["Guides","JavaScript Waku SDK"]},{"i":136,"t":"Configure Peer Discovery","u":"/guides/nwaku/configure-discovery","b":["Guides","Run a Nwaku Node"]},{"i":146,"t":"Retrieve Messages Using Store Protocol","u":"/guides/js-waku/store-retrieve-messages","b":["Guides","JavaScript Waku SDK"]},{"i":167,"t":"Node Configuration Options","u":"/guides/nwaku/config-options","b":["Guides","Run a Nwaku Node"]},{"i":199,"t":"Find Your Node Address","u":"/guides/nwaku/find-node-address","b":["Guides","Run a Nwaku Node"]},{"i":209,"t":"Nwaku FAQ","u":"/guides/nwaku/faq","b":["Guides","Run a Nwaku Node"]},{"i":211,"t":"Run Nwaku with Docker Compose","u":"/guides/nwaku/run-docker-compose","b":["Guides","Run a Nwaku Node"]},{"i":229,"t":"Node Configuration Methods","u":"/guides/nwaku/config-methods","b":["Guides","Run a Nwaku Node"]},{"i":239,"t":"Discv5","u":"/learn/concepts/discv5","b":["Learn","Concepts","Peer Discovery"]},{"i":243,"t":"Content Topics","u":"/learn/concepts/content-topics","b":["Learn","Concepts"]},{"i":255,"t":"Run Nwaku in a Docker Container","u":"/guides/nwaku/run-docker","b":["Guides","Run a Nwaku Node"]},{"i":265,"t":"Run a Nwaku Node","u":"/guides/nwaku/run-node","b":["Guides","Run a Nwaku Node"]},{"i":277,"t":"Node Configuration Examples","u":"/guides/nwaku/configure-nwaku","b":["Guides","Run a Nwaku Node"]},{"i":297,"t":"DNS Discovery","u":"/learn/concepts/dns-discovery","b":["Learn","Concepts","Peer Discovery"]},{"i":301,"t":"Upgrade Instructions","u":"/guides/nwaku/upgrade-instructions","b":["Guides","Run a Nwaku Node"]},{"i":305,"t":"Static Peers","u":"/learn/concepts/static-peers","b":["Learn","Concepts","Peer Discovery"]},{"i":309,"t":"Peer Exchange","u":"/learn/concepts/peer-exchange","b":["Learn","Concepts","Peer Discovery"]},{"i":313,"t":"Transports","u":"/learn/concepts/transports","b":["Learn","Concepts"]},{"i":315,"t":"Network Domains","u":"/learn/concepts/network-domains","b":["Learn","Concepts"]},{"i":325,"t":"Peer Discovery","u":"/learn/concepts/peer-discovery","b":["Learn","Concepts","Peer Discovery"]},{"i":327,"t":"Security Features","u":"/learn/security-features","b":["Learn"]},{"i":339,"t":"The Waku Network","u":"/learn/waku-network","b":["Learn"]},{"i":347,"t":"Waku FAQ","u":"/learn/faq","b":["Learn"]},{"i":349,"t":"Migrating to Waku v0.027","u":"/migrations/js-waku/migration_v0.026_0.027","b":[]},{"i":369,"t":"Protocols","u":"/learn/concepts/protocols","b":["Learn","Concepts"]},{"i":383,"t":"Research","u":"/learn/research","b":["Learn"]},{"i":389,"t":"Comparing Waku and libp2p","u":"/learn/waku-vs-libp2p","b":["Learn"]},{"i":397,"t":"PostgreSQL","u":"/research/benchmarks/postgres-adoption","b":["Research","Benchmarks"]},{"i":414,"t":"Capped Bandwidth in Waku","u":"/research/research-and-studies/capped-bandwidth","b":["Research","Research and Studies"]},{"i":422,"t":"Privacy Policy","u":"/privacy-policy","b":[]},{"i":442,"t":"Maximum Bandwidth for Global Adoption","u":"/research/research-and-studies/maximum-bandwidth","b":["Research","Research and Studies"]},{"i":450,"t":"Waku Docs Glossary","u":"/learn/glossary","b":["Learn"]},{"i":522,"t":"Research","u":"/research/","b":["Research"]},{"i":524,"t":"Performance Benchmarks and Test Reports","u":"/research/benchmarks/test-results-summary","b":["Research","Benchmarks"]},{"i":545,"t":"RLN Key Benchmarks","u":"/research/research-and-studies/rln-key-benchmarks","b":["Research","Research and Studies"]},{"i":560,"t":"Message Propagation Times With Waku-RLN","u":"/research/research-and-studies/message-propagation","b":["Research","Research and Studies"]},{"i":570,"t":"Incentivisation","u":"/research/research-and-studies/incentivisation","b":["Research","Research and Studies"]},{"i":612,"t":"Terms of Use","u":"/terms","b":[]},{"i":636,"t":"Rules of Engagement","u":"/rules-of-engagement","b":[]},{"i":648,"t":"Security","u":"/security","b":[]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.942,1,1.551,2,2.942]],["t/11",[3,2.19,4,2.19,5,1.511,6,1.387,7,2.19,8,2.19,9,1.874]],["t/27",[1,1.808,10,4.008]],["t/41",[0,2.942,2,2.942,11,2.616]],["t/43",[12,3.008,13,1.764,14,3.008,15,1.906]],["t/55",[1,1.357,16,3.008,17,2.29,18,3.008]],["t/71",[6,1.695,17,2.036,19,2.675,20,2.675,21,2.675]],["t/77",[6,1.695,17,2.036,22,2.29,23,2.675,24,2.675]],["t/91",[25,2.076,26,3.008,27,3.008,28,3.008]],["t/106",[5,2.076,29,3.008,30,3.008,31,3.008]],["t/118",[22,2.942,32,2.177,33,3.437]],["t/130",[9,2.942,34,3.437,35,3.437]],["t/136",[15,2.177,36,2.372,37,2.616]],["t/146",[5,1.846,6,1.695,38,2.675,39,2.675,40,2.29]],["t/167",[13,2.016,36,2.372,41,3.437]],["t/199",[13,2.016,42,3.437,43,3.437]],["t/209",[11,3.05,32,2.539]],["t/211",[25,2.076,32,1.906,44,2.575,45,3.008]],["t/229",[13,2.016,36,2.372,46,3.437]],["t/239",[47,4.806]],["t/243",[48,4.008,49,4.008]],["t/255",[25,2.076,32,1.906,44,2.575,50,3.008]],["t/265",[13,2.016,25,2.372,32,2.177]],["t/277",[13,2.016,36,2.372,51,3.437]],["t/297",[37,3.05,52,4.008]],["t/301",[53,4.008,54,4.008]],["t/305",[15,2.539,55,4.008]],["t/309",[15,2.539,56,4.008]],["t/313",[57,4.806]],["t/315",[58,3.43,59,4.008]],["t/325",[15,2.539,37,3.05]],["t/327",[60,3.43,61,4.008]],["t/339",[1,1.808,58,3.43]],["t/347",[1,1.808,11,3.05]],["t/349",[1,1.551,62,3.437,63,3.437]],["t/369",[40,4.113]],["t/383",[64,4.113]],["t/389",[1,1.551,65,3.437,66,3.437]],["t/397",[67,4.806]],["t/414",[1,1.551,68,3.437,69,2.942]],["t/422",[70,4.008,71,4.008]],["t/442",[69,2.575,72,3.008,73,3.008,74,3.008]],["t/450",[1,1.551,75,3.437,76,3.437]],["t/522",[64,4.113]],["t/524",[77,3.008,78,2.575,79,3.008,80,3.008]],["t/545",[78,2.942,81,2.942,82,3.437]],["t/560",[1,1.207,5,1.846,81,2.29,83,2.675,84,2.675]],["t/570",[85,4.806]],["t/612",[6,2.539,86,4.008]],["t/636",[87,4.008,88,4.008]],["t/648",[60,4.113]]],"invertedIndex":[["address",{"_index":43,"t":{"199":{"position":[[15,7]]}}}],["adopt",{"_index":74,"t":{"442":{"position":[[29,8]]}}}],["app",{"_index":21,"t":{"71":{"position":[[34,3]]}}}],["applic",{"_index":28,"t":{"91":{"position":[[26,11]]}}}],["bandwidth",{"_index":69,"t":{"414":{"position":[[7,9]]},"442":{"position":[[8,9]]}}}],["benchmark",{"_index":78,"t":{"524":{"position":[[12,10]]},"545":{"position":[[8,10]]}}}],["bootstrap",{"_index":12,"t":{"43":{"position":[[0,9]]}}}],["build",{"_index":22,"t":{"77":{"position":[[0,5]]},"118":{"position":[[0,5]]}}}],["cap",{"_index":68,"t":{"414":{"position":[[0,6]]}}}],["compar",{"_index":65,"t":{"389":{"position":[[0,9]]}}}],["compos",{"_index":45,"t":{"211":{"position":[[22,7]]}}}],["configur",{"_index":36,"t":{"136":{"position":[[0,9]]},"167":{"position":[[5,13]]},"229":{"position":[[5,13]]},"277":{"position":[[5,13]]}}}],["contain",{"_index":50,"t":{"255":{"position":[[22,9]]}}}],["content",{"_index":48,"t":{"243":{"position":[[0,7]]}}}],["dapp",{"_index":17,"t":{"55":{"position":[[16,4]]},"71":{"position":[[9,5]]},"77":{"position":[[12,5]]}}}],["debug",{"_index":16,"t":{"55":{"position":[[0,5]]}}}],["decrypt",{"_index":30,"t":{"106":{"position":[[9,8]]}}}],["discov",{"_index":14,"t":{"43":{"position":[[20,8]]}}}],["discoveri",{"_index":37,"t":{"136":{"position":[[15,9]]},"297":{"position":[[4,9]]},"325":{"position":[[5,9]]}}}],["discv5",{"_index":47,"t":{"239":{"position":[[0,6]]}}}],["dn",{"_index":52,"t":{"297":{"position":[[0,3]]}}}],["doc",{"_index":75,"t":{"450":{"position":[[5,4]]}}}],["docker",{"_index":44,"t":{"211":{"position":[[15,6]]},"255":{"position":[[15,6]]}}}],["domain",{"_index":59,"t":{"315":{"position":[[8,7]]}}}],["encrypt",{"_index":29,"t":{"106":{"position":[[0,8]]}}}],["engag",{"_index":88,"t":{"636":{"position":[[9,10]]}}}],["exampl",{"_index":51,"t":{"277":{"position":[[19,8]]}}}],["exchang",{"_index":56,"t":{"309":{"position":[[5,8]]}}}],["faq",{"_index":11,"t":{"41":{"position":[[15,3]]},"209":{"position":[[6,3]]},"347":{"position":[[5,3]]}}}],["featur",{"_index":61,"t":{"327":{"position":[[9,8]]}}}],["filter",{"_index":9,"t":{"11":{"position":[[47,6]]},"130":{"position":[[12,6]]}}}],["find",{"_index":42,"t":{"199":{"position":[[0,4]]}}}],["global",{"_index":73,"t":{"442":{"position":[[22,6]]}}}],["glossari",{"_index":76,"t":{"450":{"position":[[10,8]]}}}],["incentivis",{"_index":85,"t":{"570":{"position":[[0,15]]}}}],["instruct",{"_index":54,"t":{"301":{"position":[[8,12]]}}}],["introduct",{"_index":10,"t":{"27":{"position":[[0,12]]}}}],["javascript",{"_index":0,"t":{"1":{"position":[[0,10]]},"41":{"position":[[0,10]]}}}],["key",{"_index":82,"t":{"545":{"position":[[4,3]]}}}],["libp2p",{"_index":66,"t":{"389":{"position":[[19,6]]}}}],["light",{"_index":7,"t":{"11":{"position":[[32,5]]}}}],["manag",{"_index":34,"t":{"130":{"position":[[0,6]]}}}],["maximum",{"_index":72,"t":{"442":{"position":[[0,7]]}}}],["messag",{"_index":5,"t":{"11":{"position":[[17,8]]},"106":{"position":[[32,8]]},"146":{"position":[[9,8]]},"560":{"position":[[0,7]]}}}],["method",{"_index":46,"t":{"229":{"position":[[19,7]]}}}],["migrat",{"_index":62,"t":{"349":{"position":[[0,9]]}}}],["network",{"_index":58,"t":{"315":{"position":[[0,7]]},"339":{"position":[[9,7]]}}}],["node",{"_index":13,"t":{"43":{"position":[[10,5]]},"167":{"position":[[0,4]]},"199":{"position":[[10,4]]},"229":{"position":[[0,4]]},"265":{"position":[[12,4]]},"277":{"position":[[0,4]]}}}],["nodej",{"_index":27,"t":{"91":{"position":[[19,6]]}}}],["nwaku",{"_index":32,"t":{"118":{"position":[[6,5]]},"209":{"position":[[0,5]]},"211":{"position":[[4,5]]},"255":{"position":[[4,5]]},"265":{"position":[[6,5]]}}}],["option",{"_index":41,"t":{"167":{"position":[[19,7]]}}}],["peer",{"_index":15,"t":{"43":{"position":[[29,5]]},"136":{"position":[[10,4]]},"305":{"position":[[7,5]]},"309":{"position":[[0,4]]},"325":{"position":[[0,4]]}}}],["perform",{"_index":77,"t":{"524":{"position":[[0,11]]}}}],["polici",{"_index":71,"t":{"422":{"position":[[8,6]]}}}],["postgresql",{"_index":67,"t":{"397":{"position":[[0,10]]}}}],["privaci",{"_index":70,"t":{"422":{"position":[[0,7]]}}}],["propag",{"_index":83,"t":{"560":{"position":[[8,11]]}}}],["protocol",{"_index":40,"t":{"146":{"position":[[30,8]]},"369":{"position":[[0,9]]}}}],["push",{"_index":8,"t":{"11":{"position":[[38,4]]}}}],["react",{"_index":23,"t":{"77":{"position":[[6,5]]}}}],["receiv",{"_index":4,"t":{"11":{"position":[[9,7]]}}}],["report",{"_index":80,"t":{"524":{"position":[[32,7]]}}}],["research",{"_index":64,"t":{"383":{"position":[[0,8]]},"522":{"position":[[0,8]]}}}],["retriev",{"_index":38,"t":{"146":{"position":[[0,8]]}}}],["rln",{"_index":81,"t":{"545":{"position":[[0,3]]},"560":{"position":[[36,3]]}}}],["rule",{"_index":87,"t":{"636":{"position":[[0,5]]}}}],["run",{"_index":25,"t":{"91":{"position":[[0,3]]},"211":{"position":[[0,3]]},"255":{"position":[[0,3]]},"265":{"position":[[0,3]]}}}],["scaffold",{"_index":19,"t":{"71":{"position":[[0,8]]}}}],["sdk",{"_index":2,"t":{"1":{"position":[[16,3]]},"41":{"position":[[11,3]]}}}],["secur",{"_index":60,"t":{"327":{"position":[[0,8]]},"648":{"position":[[0,8]]}}}],["send",{"_index":3,"t":{"11":{"position":[[0,4]]}}}],["sign",{"_index":31,"t":{"106":{"position":[[22,4]]}}}],["sourc",{"_index":33,"t":{"118":{"position":[[17,6]]}}}],["static",{"_index":55,"t":{"305":{"position":[[0,6]]}}}],["store",{"_index":39,"t":{"146":{"position":[[24,5]]}}}],["subscript",{"_index":35,"t":{"130":{"position":[[19,13]]}}}],["term",{"_index":86,"t":{"612":{"position":[[0,5]]}}}],["test",{"_index":79,"t":{"524":{"position":[[27,4]]}}}],["time",{"_index":84,"t":{"560":{"position":[[20,5]]}}}],["topic",{"_index":49,"t":{"243":{"position":[[8,6]]}}}],["transport",{"_index":57,"t":{"313":{"position":[[0,10]]}}}],["upgrad",{"_index":53,"t":{"301":{"position":[[0,7]]}}}],["us",{"_index":6,"t":{"11":{"position":[[26,5]]},"71":{"position":[[15,5]]},"77":{"position":[[18,5]]},"146":{"position":[[18,5]]},"612":{"position":[[9,3]]}}}],["v0.027",{"_index":63,"t":{"349":{"position":[[18,6]]}}}],["waku",{"_index":1,"t":{"1":{"position":[[11,4]]},"27":{"position":[[16,4]]},"55":{"position":[[11,4]]},"339":{"position":[[4,4]]},"347":{"position":[[0,4]]},"349":{"position":[[13,4]]},"389":{"position":[[10,4]]},"414":{"position":[[20,4]]},"450":{"position":[[0,4]]},"560":{"position":[[31,4]]}}}],["waku/cr",{"_index":20,"t":{"71":{"position":[[21,12]]}}}],["waku/react",{"_index":24,"t":{"77":{"position":[[24,11]]}}}],["waku/sdk",{"_index":26,"t":{"91":{"position":[[4,9]]}}}],["websocket",{"_index":18,"t":{"55":{"position":[[25,9]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Installation","u":"/guides/js-waku/","h":"#installation","p":1},{"i":5,"t":"Message structure","u":"/guides/js-waku/","h":"#message-structure","p":1},{"i":7,"t":"Getting started","u":"/guides/js-waku/","h":"#getting-started","p":1},{"i":9,"t":"Get help and report issues","u":"/guides/js-waku/","h":"#get-help-and-report-issues","p":1},{"i":13,"t":"Create a light node","u":"/guides/js-waku/light-send-receive","h":"#create-a-light-node","p":11},{"i":15,"t":"Alternative network configuration","u":"/guides/js-waku/light-send-receive","h":"#alternative-network-configuration","p":11},{"i":17,"t":"Connect to remote peers","u":"/guides/js-waku/light-send-receive","h":"#connect-to-remote-peers","p":11},{"i":19,"t":"Choose a content topic","u":"/guides/js-waku/light-send-receive","h":"#choose-a-content-topic","p":11},{"i":21,"t":"Create a message structure","u":"/guides/js-waku/light-send-receive","h":"#create-a-message-structure","p":11},{"i":23,"t":"Send messages using light push","u":"/guides/js-waku/light-send-receive","h":"#send-messages-using-light-push","p":11},{"i":25,"t":"Receive messages using filter","u":"/guides/js-waku/light-send-receive","h":"#receive-messages-using-filter","p":11},{"i":29,"t":"What isn’t Waku?","u":"/","h":"#what-isnt-waku","p":27},{"i":31,"t":"What can Waku be used for?","u":"/","h":"#what-can-waku-be-used-for","p":27},{"i":33,"t":"Case studies","u":"/","h":"#case-studies","p":27},{"i":34,"t":"Getting started","u":"/","h":"#getting-started","p":27},{"i":35,"t":"Run a Waku node","u":"/","h":"#run-a-waku-node","p":27},{"i":37,"t":"Integrate using SDKs","u":"/","h":"#integrate-using-sdks","p":27},{"i":39,"t":"Other integrations","u":"/","h":"#other-integrations","p":27},{"i":45,"t":"Default bootstrap method","u":"/guides/js-waku/configure-discovery","h":"#default-bootstrap-method","p":43},{"i":47,"t":"Configure static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-static-peers","p":43},{"i":49,"t":"Configure DNS discovery","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery","p":43},{"i":51,"t":"Configure DNS discovery and static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery-and-static-peers","p":43},{"i":53,"t":"Retrieving connected peers","u":"/guides/js-waku/configure-discovery","h":"#retrieving-connected-peers","p":43},{"i":57,"t":"Enabling debug logs","u":"/guides/js-waku/debug-waku-dapp","h":"#enabling-debug-logs","p":55},{"i":59,"t":"NodeJS environments","u":"/guides/js-waku/debug-waku-dapp","h":"#nodejs-environments","p":55},{"i":61,"t":"Browser environments","u":"/guides/js-waku/debug-waku-dapp","h":"#browser-environments","p":55},{"i":63,"t":"Checking WebSocket setup","u":"/guides/js-waku/debug-waku-dapp","h":"#checking-websocket-setup","p":55},{"i":65,"t":"Try Websocat for connection","u":"/guides/js-waku/debug-waku-dapp","h":"#try-websocat-for-connection","p":55},{"i":67,"t":"Check certificate validity","u":"/guides/js-waku/debug-waku-dapp","h":"#check-certificate-validity","p":55},{"i":69,"t":"Check WebSocket port accessibility","u":"/guides/js-waku/debug-waku-dapp","h":"#check-websocket-port-accessibility","p":55},{"i":73,"t":"Usage","u":"/guides/js-waku/use-waku-create-app","h":"#usage","p":71},{"i":75,"t":"Contributing new templates","u":"/guides/js-waku/use-waku-create-app","h":"#contributing-new-templates","p":71},{"i":79,"t":"Install the dependencies","u":"/guides/js-waku/use-waku-react","h":"#install-the-dependencies","p":77},{"i":81,"t":"Initialise the Waku provider","u":"/guides/js-waku/use-waku-react","h":"#initialise-the-waku-provider","p":77},{"i":83,"t":"Build the application interface","u":"/guides/js-waku/use-waku-react","h":"#build-the-application-interface","p":77},{"i":85,"t":"Send messages using light push","u":"/guides/js-waku/use-waku-react","h":"#send-messages-using-light-push","p":77},{"i":87,"t":"Receive messages using filter","u":"/guides/js-waku/use-waku-react","h":"#receive-messages-using-filter","p":77},{"i":89,"t":"Retrieve messages using store","u":"/guides/js-waku/use-waku-react","h":"#retrieve-messages-using-store","p":77},{"i":93,"t":"Limitations","u":"/guides/js-waku/run-waku-nodejs","h":"#limitations","p":91},{"i":94,"t":"API compatibility","u":"/guides/js-waku/run-waku-nodejs","h":"#api-compatibility","p":91},{"i":96,"t":"Protocol implementation","u":"/guides/js-waku/run-waku-nodejs","h":"#protocol-implementation","p":91},{"i":98,"t":"Codebase complexity","u":"/guides/js-waku/run-waku-nodejs","h":"#codebase-complexity","p":91},{"i":100,"t":"Browser-specific protocols","u":"/guides/js-waku/run-waku-nodejs","h":"#browser-specific-protocols","p":91},{"i":102,"t":"Recommendations","u":"/guides/js-waku/run-waku-nodejs","h":"#recommendations","p":91},{"i":104,"t":"Future developments","u":"/guides/js-waku/run-waku-nodejs","h":"#future-developments","p":91},{"i":108,"t":"Installation","u":"/guides/js-waku/message-encryption","h":"#installation","p":106},{"i":110,"t":"Symmetric encryption","u":"/guides/js-waku/message-encryption","h":"#symmetric-encryption","p":106},{"i":112,"t":"ECIES encryption","u":"/guides/js-waku/message-encryption","h":"#ecies-encryption","p":106},{"i":114,"t":"Signing encrypted messages","u":"/guides/js-waku/message-encryption","h":"#signing-encrypted-messages","p":106},{"i":116,"t":"Storing encryption keys","u":"/guides/js-waku/message-encryption","h":"#storing-encryption-keys","p":106},{"i":120,"t":"Prerequisites","u":"/guides/nwaku/build-source","h":"#prerequisites","p":118},{"i":122,"t":"Clone the repository","u":"/guides/nwaku/build-source","h":"#clone-the-repository","p":118},{"i":124,"t":"Build the binary","u":"/guides/nwaku/build-source","h":"#build-the-binary","p":118},{"i":126,"t":"Run the binary","u":"/guides/nwaku/build-source","h":"#run-the-binary","p":118},{"i":128,"t":"Run test suite","u":"/guides/nwaku/build-source","h":"#run-test-suite","p":118},{"i":132,"t":"Overview","u":"/guides/js-waku/manage-filter","h":"#overview","p":130},{"i":134,"t":"Pinging filter subscriptions","u":"/guides/js-waku/manage-filter","h":"#pinging-filter-subscriptions","p":130},{"i":138,"t":"Configure static peers","u":"/guides/nwaku/configure-discovery","h":"#configure-static-peers","p":136},{"i":140,"t":"Configure DNS discovery","u":"/guides/nwaku/configure-discovery","h":"#configure-dns-discovery","p":136},{"i":142,"t":"Configure Discv5","u":"/guides/nwaku/configure-discovery","h":"#configure-discv5","p":136},{"i":144,"t":"Configure peer exchange","u":"/guides/nwaku/configure-discovery","h":"#configure-peer-exchange","p":136},{"i":148,"t":"Create a light node","u":"/guides/js-waku/store-retrieve-messages","h":"#create-a-light-node","p":146},{"i":150,"t":"Connect to store peers","u":"/guides/js-waku/store-retrieve-messages","h":"#connect-to-store-peers","p":146},{"i":152,"t":"Choose a content topic","u":"/guides/js-waku/store-retrieve-messages","h":"#choose-a-content-topic","p":146},{"i":154,"t":"Retrieve messages","u":"/guides/js-waku/store-retrieve-messages","h":"#retrieve-messages","p":146},{"i":156,"t":"queryWithOrderedCallback","u":"/guides/js-waku/store-retrieve-messages","h":"#querywithorderedcallback","p":146},{"i":158,"t":"queryGenerator","u":"/guides/js-waku/store-retrieve-messages","h":"#querygenerator","p":146},{"i":160,"t":"Store query options","u":"/guides/js-waku/store-retrieve-messages","h":"#store-query-options","p":146},{"i":161,"t":"pageDirection","u":"/guides/js-waku/store-retrieve-messages","h":"#pagedirection","p":146},{"i":163,"t":"cursor","u":"/guides/js-waku/store-retrieve-messages","h":"#cursor","p":146},{"i":165,"t":"timeFilter","u":"/guides/js-waku/store-retrieve-messages","h":"#timefilter","p":146},{"i":169,"t":"Application-level config","u":"/guides/nwaku/config-options","h":"#application-level-config","p":167},{"i":171,"t":"Log config","u":"/guides/nwaku/config-options","h":"#log-config","p":167},{"i":173,"t":"General node config","u":"/guides/nwaku/config-options","h":"#general-node-config","p":167},{"i":175,"t":"DNS addrs config","u":"/guides/nwaku/config-options","h":"#dns-addrs-config","p":167},{"i":177,"t":"Relay config","u":"/guides/nwaku/config-options","h":"#relay-config","p":167},{"i":179,"t":"Store and message store config","u":"/guides/nwaku/config-options","h":"#store-and-message-store-config","p":167},{"i":181,"t":"Filter config","u":"/guides/nwaku/config-options","h":"#filter-config","p":167},{"i":183,"t":"Light push config","u":"/guides/nwaku/config-options","h":"#light-push-config","p":167},{"i":185,"t":"REST HTTP config","u":"/guides/nwaku/config-options","h":"#rest-http-config","p":167},{"i":187,"t":"Metrics config","u":"/guides/nwaku/config-options","h":"#metrics-config","p":167},{"i":189,"t":"DNS discovery config","u":"/guides/nwaku/config-options","h":"#dns-discovery-config","p":167},{"i":191,"t":"Discv5 config","u":"/guides/nwaku/config-options","h":"#discv5-config","p":167},{"i":193,"t":"Waku peer exchange config","u":"/guides/nwaku/config-options","h":"#waku-peer-exchange-config","p":167},{"i":195,"t":"WebSocket config","u":"/guides/nwaku/config-options","h":"#websocket-config","p":167},{"i":197,"t":"Non-relay, request-response protocol DOS protection configuration","u":"/guides/nwaku/config-options","h":"#non-relay-request-response-protocol-dos-protection-configuration","p":167},{"i":201,"t":"Listening addresses","u":"/guides/nwaku/find-node-address","h":"#listening-addresses","p":199},{"i":203,"t":"Discoverable ENR addresses","u":"/guides/nwaku/find-node-address","h":"#discoverable-enr-addresses","p":199},{"i":205,"t":"ENR for DNS discovery","u":"/guides/nwaku/find-node-address","h":"#enr-for-dns-discovery","p":199},{"i":207,"t":"ENR for Discv5","u":"/guides/nwaku/find-node-address","h":"#enr-for-discv5","p":199},{"i":213,"t":"Video tutorial","u":"/guides/nwaku/run-docker-compose","h":"#video-tutorial","p":211},{"i":215,"t":"Prerequisites","u":"/guides/nwaku/run-docker-compose","h":"#prerequisites","p":211},{"i":217,"t":"Clone the repository","u":"/guides/nwaku/run-docker-compose","h":"#clone-the-repository","p":211},{"i":219,"t":"Configure the setup","u":"/guides/nwaku/run-docker-compose","h":"#configure-the-setup","p":211},{"i":221,"t":"Register for RLN membership","u":"/guides/nwaku/run-docker-compose","h":"#register-for-rln-membership","p":211},{"i":223,"t":"Run the node","u":"/guides/nwaku/run-docker-compose","h":"#run-the-node","p":211},{"i":225,"t":"Monitor the node","u":"/guides/nwaku/run-docker-compose","h":"#monitor-the-node","p":211},{"i":227,"t":"Interact with the node","u":"/guides/nwaku/run-docker-compose","h":"#interact-with-the-node","p":211},{"i":231,"t":"Command line options","u":"/guides/nwaku/config-methods","h":"#command-line-options","p":229},{"i":233,"t":"Environment variables","u":"/guides/nwaku/config-methods","h":"#environment-variables","p":229},{"i":235,"t":"Configuration files","u":"/guides/nwaku/config-methods","h":"#configuration-files","p":229},{"i":237,"t":"Default configuration values","u":"/guides/nwaku/config-methods","h":"#default-configuration-values","p":229},{"i":241,"t":"Overview","u":"/learn/concepts/discv5","h":"#overview","p":239},{"i":245,"t":"Naming format","u":"/learn/concepts/content-topics","h":"#naming-format","p":243},{"i":247,"t":"Naming considerations","u":"/learn/concepts/content-topics","h":"#naming-considerations","p":243},{"i":249,"t":"Protocols disclose content topics to peers","u":"/learn/concepts/content-topics","h":"#protocols-disclose-content-topics-to-peers","p":243},{"i":251,"t":"Increasing k-anonymity preserves user anonymity","u":"/learn/concepts/content-topics","h":"#increasing-k-anonymity-preserves-user-anonymity","p":243},{"i":253,"t":"Creating buckets help in distributing traffic","u":"/learn/concepts/content-topics","h":"#creating-buckets-help-in-distributing-traffic","p":243},{"i":257,"t":"Prerequisites","u":"/guides/nwaku/run-docker","h":"#prerequisites","p":255},{"i":259,"t":"Get Docker image","u":"/guides/nwaku/run-docker","h":"#get-docker-image","p":255},{"i":261,"t":"Build Docker image","u":"/guides/nwaku/run-docker","h":"#build-docker-image","p":255},{"i":263,"t":"Run Docker container","u":"/guides/nwaku/run-docker","h":"#run-docker-container","p":255},{"i":267,"t":"Get the node binary","u":"/guides/nwaku/run-node","h":"#get-the-node-binary","p":265},{"i":269,"t":"Run the node","u":"/guides/nwaku/run-node","h":"#run-the-node","p":265},{"i":271,"t":"Bootstrap the node","u":"/guides/nwaku/run-node","h":"#bootstrap-the-node","p":265},{"i":273,"t":"Interact with the node","u":"/guides/nwaku/run-node","h":"#interact-with-the-node","p":265},{"i":275,"t":"Check the node health status","u":"/guides/nwaku/run-node","h":"#check-the-node-health-status","p":265},{"i":279,"t":"Connect to other peers","u":"/guides/nwaku/configure-nwaku","h":"#connect-to-other-peers","p":277},{"i":281,"t":"Configure a domain name","u":"/guides/nwaku/configure-nwaku","h":"#configure-a-domain-name","p":277},{"i":283,"t":"Configure store protocol and message store","u":"/guides/nwaku/configure-nwaku","h":"#configure-store-protocol-and-message-store","p":277},{"i":285,"t":"Generate and configure a node key","u":"/guides/nwaku/configure-nwaku","h":"#generate-and-configure-a-node-key","p":277},{"i":287,"t":"Configure WebSocket transport","u":"/guides/nwaku/configure-nwaku","h":"#configure-websocket-transport","p":277},{"i":289,"t":"Configure REST API server","u":"/guides/nwaku/configure-nwaku","h":"#configure-rest-api-server","p":277},{"i":291,"t":"Configure filter protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-filter-protocol","p":277},{"i":293,"t":"Configure light push protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-light-push-protocol","p":277},{"i":295,"t":"Run nwaku behind a reverse proxy","u":"/guides/nwaku/configure-nwaku","h":"#run-nwaku-behind-a-reverse-proxy","p":277},{"i":299,"t":"Overview","u":"/learn/concepts/dns-discovery","h":"#overview","p":297},{"i":303,"t":"Target Releases","u":"/guides/nwaku/upgrade-instructions","h":"#target-releases","p":301},{"i":307,"t":"Overview","u":"/learn/concepts/static-peers","h":"#overview","p":305},{"i":311,"t":"Overview","u":"/learn/concepts/peer-exchange","h":"#overview","p":309},{"i":317,"t":"Discovery domain","u":"/learn/concepts/network-domains","h":"#discovery-domain","p":315},{"i":319,"t":"Gossip domain","u":"/learn/concepts/network-domains","h":"#gossip-domain","p":315},{"i":321,"t":"Request/response domain","u":"/learn/concepts/network-domains","h":"#requestresponse-domain","p":315},{"i":323,"t":"Overview of protocol interaction","u":"/learn/concepts/network-domains","h":"#overview-of-protocol-interaction","p":315},{"i":329,"t":"Pseudonymity","u":"/learn/security-features","h":"#pseudonymity","p":327},{"i":331,"t":"Anonymity/unlinkability","u":"/learn/security-features","h":"#anonymityunlinkability","p":327},{"i":333,"t":"Spam protection","u":"/learn/security-features","h":"#spam-protection","p":327},{"i":335,"t":"Data confidentiality, integrity, and authenticity","u":"/learn/security-features","h":"#data-confidentiality-integrity-and-authenticity","p":327},{"i":337,"t":"Security considerations","u":"/learn/security-features","h":"#security-considerations","p":327},{"i":341,"t":"Why join the Waku network?","u":"/learn/waku-network","h":"#why-join-the-waku-network","p":339},{"i":343,"t":"Prerequisites","u":"/learn/waku-network","h":"#prerequisites","p":339},{"i":345,"t":"Running a Waku network node","u":"/learn/waku-network","h":"#running-a-waku-network-node","p":339},{"i":351,"t":"Table of Contents","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#table-of-contents","p":349},{"i":353,"t":"Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#network-configuration","p":349},{"i":355,"t":"Default Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#default-network-configuration","p":349},{"i":357,"t":"Static Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#static-sharding","p":349},{"i":359,"t":"Auto Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#auto-sharding","p":349},{"i":361,"t":"Pubsub Topic Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#pubsub-topic-configuration","p":349},{"i":363,"t":"Removed APIs","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#removed-apis","p":349},{"i":365,"t":"Type Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#type-changes","p":349},{"i":367,"t":"Internal/Private Utility Function Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#internalprivate-utility-function-changes","p":349},{"i":371,"t":"Relay","u":"/learn/concepts/protocols","h":"#relay","p":369},{"i":373,"t":"RLN relay","u":"/learn/concepts/protocols","h":"#rln-relay","p":369},{"i":375,"t":"Filter","u":"/learn/concepts/protocols","h":"#filter","p":369},{"i":377,"t":"Store","u":"/learn/concepts/protocols","h":"#store","p":369},{"i":379,"t":"Light push","u":"/learn/concepts/protocols","h":"#light-push","p":369},{"i":381,"t":"Waku message","u":"/learn/concepts/protocols","h":"#waku-message","p":369},{"i":385,"t":"Economic spam resistance","u":"/learn/research","h":"#economic-spam-resistance","p":383},{"i":387,"t":"Prevention of denial of service (DoS) and node incentivisation","u":"/learn/research","h":"#prevention-of-denial-of-service-dos-and-node-incentivisation","p":383},{"i":391,"t":"Waku as a service network","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-service-network","p":389},{"i":393,"t":"Waku as a turnkey solution","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-turnkey-solution","p":389},{"i":395,"t":"Economic spam protection","u":"/learn/waku-vs-libp2p","h":"#economic-spam-protection","p":389},{"i":398,"t":"Introduction","u":"/research/benchmarks/postgres-adoption","h":"#introduction","p":397},{"i":400,"t":"How to connect the nwaku to Postgres","u":"/research/benchmarks/postgres-adoption","h":"#how-to-connect-the-nwaku-to-postgres","p":397},{"i":402,"t":"Examples of nwaku using Postgres","u":"/research/benchmarks/postgres-adoption","h":"#examples-of-nwaku-using-postgres","p":397},{"i":404,"t":"Stress tests","u":"/research/benchmarks/postgres-adoption","h":"#stress-tests","p":397},{"i":406,"t":"Insert test results","u":"/research/benchmarks/postgres-adoption","h":"#insert-test-results","p":397},{"i":408,"t":"Query test results (jmeter)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-jmeter","p":397},{"i":410,"t":"Query test results (only Store protocol)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-only-store-protocol","p":397},{"i":412,"t":"Multiple nodes & one single database","u":"/research/benchmarks/postgres-adoption","h":"#multiple-nodes--one-single-database","p":397},{"i":416,"t":"Problem","u":"/research/research-and-studies/capped-bandwidth","h":"#problem","p":414},{"i":418,"t":"Previous Work","u":"/research/research-and-studies/capped-bandwidth","h":"#previous-work","p":414},{"i":420,"t":"Current Solution (RLN v2)","u":"/research/research-and-studies/capped-bandwidth","h":"#current-solution-rln-v2","p":414},{"i":424,"t":"1) Who we are","u":"/privacy-policy","h":"#1-who-we-are","p":422},{"i":426,"t":"2) We limit the collection and processing of personal data from your use of the Website","u":"/privacy-policy","h":"#2-we-limit-the-collection-and-processing-of-personal-data-from-your-use-of-the-website","p":422},{"i":428,"t":"3) Third party processing of personal data","u":"/privacy-policy","h":"#3-third-party-processing-of-personal-data","p":422},{"i":430,"t":"4) Security measures we take in respect of the Website","u":"/privacy-policy","h":"#4-security-measures-we-take-in-respect-of-the-website","p":422},{"i":432,"t":"5) Exporting data outside the European Union and Switzerland","u":"/privacy-policy","h":"#5-exporting-data-outside-the-european-union-and-switzerland","p":422},{"i":434,"t":"6) Your choices and rights","u":"/privacy-policy","h":"#6-your-choices-and-rights","p":422},{"i":436,"t":"7) Third party links","u":"/privacy-policy","h":"#7-third-party-links","p":422},{"i":438,"t":"8) This Privacy Policy might change","u":"/privacy-policy","h":"#8-this-privacy-policy-might-change","p":422},{"i":440,"t":"9) Contact information","u":"/privacy-policy","h":"#9-contact-information","p":422},{"i":444,"t":"Introduction","u":"/research/research-and-studies/maximum-bandwidth","h":"#introduction","p":442},{"i":446,"t":"Bandwidth availability and usage","u":"/research/research-and-studies/maximum-bandwidth","h":"#bandwidth-availability-and-usage","p":442},{"i":448,"t":"Selecting a maximum bandwidth","u":"/research/research-and-studies/maximum-bandwidth","h":"#selecting-a-maximum-bandwidth","p":442},{"i":452,"t":"Bootstrapping","u":"/learn/glossary","h":"#bootstrapping","p":450},{"i":454,"t":"Content topic","u":"/learn/glossary","h":"#content-topic","p":450},{"i":456,"t":"Dappnode","u":"/learn/glossary","h":"#dappnode","p":450},{"i":458,"t":"Discv5","u":"/learn/glossary","h":"#discv5","p":450},{"i":460,"t":"DNS discovery","u":"/learn/glossary","h":"#dns-discovery","p":450},{"i":462,"t":"ENR","u":"/learn/glossary","h":"#enr","p":450},{"i":464,"t":"Filter","u":"/learn/glossary","h":"#filter","p":450},{"i":466,"t":"GossipSub","u":"/learn/glossary","h":"#gossipsub","p":450},{"i":468,"t":"Libp2p","u":"/learn/glossary","h":"#libp2p","p":450},{"i":470,"t":"Light node","u":"/learn/glossary","h":"#light-node","p":450},{"i":472,"t":"Light push","u":"/learn/glossary","h":"#light-push","p":450},{"i":474,"t":"Mostly offline","u":"/learn/glossary","h":"#mostly-offline","p":450},{"i":476,"t":"Node","u":"/learn/glossary","h":"#node","p":450},{"i":478,"t":"Node key","u":"/learn/glossary","h":"#node-key","p":450},{"i":480,"t":"Out-of-band","u":"/learn/glossary","h":"#out-of-band","p":450},{"i":482,"t":"Payload","u":"/learn/glossary","h":"#payload","p":450},{"i":484,"t":"Peer","u":"/learn/glossary","h":"#peer","p":450},{"i":486,"t":"Peer discovery","u":"/learn/glossary","h":"#peer-discovery","p":450},{"i":488,"t":"Peer exchange","u":"/learn/glossary","h":"#peer-exchange","p":450},{"i":490,"t":"Peer ID","u":"/learn/glossary","h":"#peer-id","p":450},{"i":492,"t":"Protocol","u":"/learn/glossary","h":"#protocol","p":450},{"i":494,"t":"Pub/Sub","u":"/learn/glossary","h":"#pubsub","p":450},{"i":496,"t":"Pub/Sub topic","u":"/learn/glossary","h":"#pubsub-topic","p":450},{"i":498,"t":"Rate limit nullifiers","u":"/learn/glossary","h":"#rate-limit-nullifiers","p":450},{"i":500,"t":"Relay","u":"/learn/glossary","h":"#relay","p":450},{"i":502,"t":"Resource-limited","u":"/learn/glossary","h":"#resource-limited","p":450},{"i":504,"t":"RLN relay","u":"/learn/glossary","h":"#rln-relay","p":450},{"i":506,"t":"SDK","u":"/learn/glossary","h":"#sdk","p":450},{"i":508,"t":"Store","u":"/learn/glossary","h":"#store","p":450},{"i":510,"t":"Transport","u":"/learn/glossary","h":"#transport","p":450},{"i":512,"t":"Waku","u":"/learn/glossary","h":"#waku","p":450},{"i":514,"t":"Waku message","u":"/learn/glossary","h":"#waku-message","p":450},{"i":516,"t":"Waku message payload encryption","u":"/learn/glossary","h":"#waku-message-payload-encryption","p":450},{"i":518,"t":"Waku network","u":"/learn/glossary","h":"#waku-network","p":450},{"i":520,"t":"Waku noise","u":"/learn/glossary","h":"#waku-noise","p":450},{"i":525,"t":"Introduction","u":"/research/benchmarks/test-results-summary","h":"#introduction","p":524},{"i":527,"t":"TL;DR","u":"/research/benchmarks/test-results-summary","h":"#tldr","p":524},{"i":529,"t":"Insights","u":"/research/benchmarks/test-results-summary","h":"#insights","p":524},{"i":530,"t":"Relay Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#relay-bandwidth-usage-nwaku-v0340","p":524},{"i":532,"t":"Message Propagation Latency: nwaku v0.34.0-rc1","u":"/research/benchmarks/test-results-summary","h":"#message-propagation-latency-nwaku-v0340-rc1","p":524},{"i":534,"t":"Discv5 Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#discv5-bandwidth-usage-nwaku-v0340","p":524},{"i":536,"t":"Testing","u":"/research/benchmarks/test-results-summary","h":"#testing","p":524},{"i":537,"t":"DST","u":"/research/benchmarks/test-results-summary","h":"#dst","p":524},{"i":539,"t":"QA","u":"/research/benchmarks/test-results-summary","h":"#qa","p":524},{"i":541,"t":"nwaku","u":"/research/benchmarks/test-results-summary","h":"#nwaku","p":524},{"i":543,"t":"Research","u":"/research/benchmarks/test-results-summary","h":"#research","p":524},{"i":546,"t":"Introduction","u":"/research/research-and-studies/rln-key-benchmarks","h":"#introduction","p":545},{"i":548,"t":"TLDR:","u":"/research/research-and-studies/rln-key-benchmarks","h":"#tldr","p":545},{"i":550,"t":"Proof generation times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-generation-times","p":545},{"i":552,"t":"Proof verification times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-verification-times","p":545},{"i":554,"t":"Spam protection","u":"/research/research-and-studies/rln-key-benchmarks","h":"#spam-protection","p":545},{"i":556,"t":"RLN tree sync","u":"/research/research-and-studies/rln-key-benchmarks","h":"#rln-tree-sync","p":545},{"i":558,"t":"Performance relay vs. rln-relay","u":"/research/research-and-studies/rln-key-benchmarks","h":"#performance-relay-vs-rln-relay","p":545},{"i":562,"t":"Introduction","u":"/research/research-and-studies/message-propagation","h":"#introduction","p":560},{"i":564,"t":"Theory","u":"/research/research-and-studies/message-propagation","h":"#theory","p":560},{"i":566,"t":"Simulations","u":"/research/research-and-studies/message-propagation","h":"#simulations","p":560},{"i":568,"t":"Results","u":"/research/research-and-studies/message-propagation","h":"#results","p":560},{"i":572,"t":"Incentivisation in decentralised networks","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":574,"t":"Incentivisation tools","u":"/research/research-and-studies/incentivisation","h":"#incentivisation-tools","p":570},{"i":576,"t":"Prior work","u":"/research/research-and-studies/incentivisation","h":"#prior-work","p":570},{"i":578,"t":"Early P2P file-sharing","u":"/research/research-and-studies/incentivisation","h":"#early-p2p-file-sharing","p":570},{"i":580,"t":"Blockchains","u":"/research/research-and-studies/incentivisation","h":"#blockchains","p":570},{"i":582,"t":"Decentralised storage","u":"/research/research-and-studies/incentivisation","h":"#decentralised-storage","p":570},{"i":584,"t":"Waku background","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":586,"t":"Waku i13n challenges","u":"/research/research-and-studies/incentivisation","h":"#waku-i13n-challenges","p":570},{"i":588,"t":"Waku Store","u":"/research/research-and-studies/incentivisation","h":"#waku-store","p":570},{"i":590,"t":"Waku Store incentivisation","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":592,"t":"Pricing","u":"/research/research-and-studies/incentivisation","h":"#pricing","p":570},{"i":594,"t":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work","p":570},{"i":596,"t":"Payment","u":"/research/research-and-studies/incentivisation","h":"#payment","p":570},{"i":598,"t":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-1","p":570},{"i":600,"t":"Reputation","u":"/research/research-and-studies/incentivisation","h":"#reputation","p":570},{"i":602,"t":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-2","p":570},{"i":604,"t":"Results cross-checking","u":"/research/research-and-studies/incentivisation","h":"#results-cross-checking","p":570},{"i":606,"t":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-3","p":570},{"i":608,"t":"Evaluation","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":610,"t":"Longer-term future work","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":614,"t":"1) Who we are","u":"/terms","h":"#1-who-we-are","p":612},{"i":616,"t":"2) Disclaimers","u":"/terms","h":"#2-disclaimers","p":612},{"i":618,"t":"3) Forward looking statements","u":"/terms","h":"#3-forward-looking-statements","p":612},{"i":620,"t":"4) Intellectual property rights","u":"/terms","h":"#4-intellectual-property-rights","p":612},{"i":622,"t":"5) Third-party website links","u":"/terms","h":"#5-third-party-website-links","p":612},{"i":624,"t":"6) Limitation of liability","u":"/terms","h":"#6-limitation-of-liability","p":612},{"i":626,"t":"7) Indemnity","u":"/terms","h":"#7-indemnity","p":612},{"i":628,"t":"8) Modifications","u":"/terms","h":"#8-modifications","p":612},{"i":630,"t":"9) Governing law","u":"/terms","h":"#9-governing-law","p":612},{"i":632,"t":"10) Disputes","u":"/terms","h":"#10-disputes","p":612},{"i":634,"t":"11) About these Website Terms of Use","u":"/terms","h":"#11-about-these-website-terms-of-use","p":612},{"i":638,"t":"1. Initial discussion","u":"/rules-of-engagement","h":"#1-initial-discussion","p":636},{"i":640,"t":"2. Solution design","u":"/rules-of-engagement","h":"#2-solution-design","p":636},{"i":642,"t":"3. Commitment","u":"/rules-of-engagement","h":"#3-commitment","p":636},{"i":644,"t":"4. Building","u":"/rules-of-engagement","h":"#4-building","p":636},{"i":646,"t":"5. Ongoing relation","u":"/rules-of-engagement","h":"#5-ongoing-relation","p":636}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,5.792]],["t/5",[1,3.138,2,5.119]],["t/7",[3,5.119,4,5.119]],["t/9",[5,4.341,6,4.812,7,4.812]],["t/13",[8,3.8,9,3.112,10,2.45]],["t/15",[11,4.812,12,3.214,13,2.318]],["t/17",[14,3.461,15,4.812,16,2.723]],["t/19",[17,4.341,18,3.615,19,3.461]],["t/21",[1,2.661,2,4.341,8,3.8]],["t/23",[1,2.041,9,2.387,20,3.329,21,2.316,22,2.655]],["t/25",[1,2.31,21,2.621,23,3.768,24,2.89]],["t/29",[25,5.674,26,2.889]],["t/31",[21,3.561,26,2.889]],["t/33",[27,5.674,28,5.674]],["t/34",[3,5.119,4,5.119]],["t/35",[10,2.45,26,2.45,29,3.214]],["t/37",[21,3.02,30,4.031,31,4.341]],["t/39",[30,5.792]],["t/45",[32,4.031,33,4.031,34,4.812]],["t/47",[13,2.318,16,2.723,35,3.8]],["t/49",[13,2.318,36,3.33,37,3.214]],["t/51",[13,1.778,16,2.088,35,2.914,36,2.554,37,2.465]],["t/53",[14,3.461,16,2.723,38,4.031]],["t/57",[39,4.812,40,4.812,41,4.341]],["t/59",[42,5.674,43,4.754]],["t/61",[43,4.754,44,5.119]],["t/63",[45,3.615,46,3.8,47,4.341]],["t/65",[14,3.461,48,4.812,49,4.812]],["t/67",[45,3.615,50,4.812,51,4.812]],["t/69",[45,3.138,46,3.299,52,4.177,53,4.177]],["t/73",[54,5.459]],["t/75",[55,4.812,56,4.812,57,4.812]],["t/79",[0,4.754,58,5.674]],["t/81",[26,2.45,59,4.812,60,4.812]],["t/83",[61,3.8,62,4.341,63,4.812]],["t/85",[1,2.041,9,2.387,20,3.329,21,2.316,22,2.655]],["t/87",[1,2.31,21,2.621,23,3.768,24,2.89]],["t/89",[1,2.31,21,2.621,38,3.5,64,2.549]],["t/93",[65,5.194]],["t/94",[66,4.754,67,5.674]],["t/96",[68,3.561,69,5.674]],["t/98",[70,5.674,71,5.674]],["t/100",[44,4.341,68,3.02,72,4.812]],["t/102",[73,6.913]],["t/104",[74,4.082,75,5.674]],["t/108",[0,5.792]],["t/110",[76,5.674,77,4.263]],["t/112",[77,4.263,78,5.674]],["t/114",[1,2.661,77,3.615,79,4.812]],["t/116",[64,2.936,77,3.615,80,4.031]],["t/120",[81,5.459]],["t/122",[82,5.119,83,5.119]],["t/124",[61,4.481,84,4.754]],["t/126",[29,3.79,84,4.754]],["t/128",[29,3.214,85,3.461,86,4.812]],["t/132",[87,4.973]],["t/134",[24,3.33,88,4.812,89,4.812]],["t/138",[13,2.318,16,2.723,35,3.8]],["t/140",[13,2.318,36,3.33,37,3.214]],["t/142",[13,2.734,90,4.263]],["t/144",[13,2.318,16,2.723,91,4.031]],["t/148",[8,3.8,9,3.112,10,2.45]],["t/150",[14,3.461,16,2.723,64,2.936]],["t/152",[17,4.341,18,3.615,19,3.461]],["t/154",[1,3.138,38,4.754]],["t/156",[92,6.913]],["t/158",[93,6.913]],["t/160",[64,2.936,94,4.031,95,4.341]],["t/161",[96,6.913]],["t/163",[97,6.913]],["t/165",[98,6.913]],["t/169",[62,4.341,99,4.812,100,2.723]],["t/171",[41,5.119,100,3.211]],["t/173",[10,2.45,100,2.723,101,4.031]],["t/175",[36,3.33,100,2.723,102,4.812]],["t/177",[100,3.211,103,3.79]],["t/179",[1,2.31,64,3.739,100,2.363]],["t/181",[24,3.926,100,3.211]],["t/183",[9,3.112,22,3.461,100,2.723]],["t/185",[100,2.723,104,4.341,105,4.812]],["t/187",[100,3.211,106,5.674]],["t/189",[36,3.33,37,3.214,100,2.723]],["t/191",[90,4.263,100,3.211]],["t/193",[16,2.363,26,2.127,91,3.5,100,2.363]],["t/195",[46,4.481,100,3.211]],["t/197",[13,1.317,68,1.716,103,1.826,107,2.734,108,2.734,109,2.734,110,2.467,111,2.159]],["t/201",[112,5.674,113,5.119]],["t/203",[113,4.341,114,4.812,115,3.8]],["t/205",[36,3.33,37,3.214,115,3.8]],["t/207",[90,4.263,115,4.481]],["t/213",[116,5.674,117,5.674]],["t/215",[81,5.459]],["t/217",[82,5.119,83,5.119]],["t/219",[13,2.734,47,5.119]],["t/221",[118,4.812,119,3.461,120,4.812]],["t/223",[10,2.889,29,3.79]],["t/225",[10,2.889,121,5.674]],["t/227",[10,2.889,122,4.754]],["t/231",[95,4.341,123,4.812,124,4.812]],["t/233",[43,4.754,125,5.674]],["t/235",[13,2.734,126,5.119]],["t/237",[13,2.318,32,4.031,127,4.812]],["t/241",[87,4.973]],["t/245",[128,4.754,129,5.674]],["t/247",[128,4.754,130,5.119]],["t/249",[16,2.088,18,2.773,19,2.655,68,2.316,131,3.69]],["t/251",[132,3.305,133,3.305,134,5.134,135,3.305,136,3.305]],["t/253",[5,3.329,8,2.914,137,3.69,138,3.69,139,3.69]],["t/257",[81,5.459]],["t/259",[140,4.754,141,5.119]],["t/261",[61,3.8,140,4.031,141,4.341]],["t/263",[29,3.214,140,4.031,142,4.812]],["t/267",[10,2.889,84,4.754]],["t/269",[10,2.889,29,3.79]],["t/271",[10,2.889,33,4.754]],["t/273",[10,2.889,122,4.754]],["t/275",[10,2.127,45,3.138,143,4.177,144,4.177]],["t/279",[14,4.082,16,3.211]],["t/281",[13,2.318,128,4.031,145,3.8]],["t/283",[1,2.041,13,1.778,64,3.409,68,2.316]],["t/285",[10,2.127,13,2.012,80,3.5,101,3.5]],["t/287",[13,2.318,46,3.8,146,4.341]],["t/289",[13,2.012,66,3.5,104,3.768,147,4.177]],["t/291",[13,2.318,24,3.33,68,3.02]],["t/293",[9,2.701,13,2.012,22,3.005,68,2.621]],["t/295",[29,2.465,148,2.554,149,3.69,150,3.69,151,3.69]],["t/299",[87,4.973]],["t/303",[152,5.674,153,5.674]],["t/307",[87,4.973]],["t/311",[87,4.973]],["t/317",[37,3.79,145,4.481]],["t/319",[145,4.481,154,5.674]],["t/321",[145,4.481,155,5.674]],["t/323",[68,3.02,87,3.461,122,4.031]],["t/329",[156,6.913]],["t/331",[157,6.913]],["t/333",[111,4.481,158,4.481]],["t/335",[30,3.5,159,3.299,160,4.177,161,4.177]],["t/337",[130,5.119,162,5.119]],["t/341",[12,3.214,26,2.45,163,4.812]],["t/343",[81,5.459]],["t/345",[10,2.127,12,2.79,26,2.127,29,2.79]],["t/351",[18,4.263,164,5.674]],["t/353",[12,3.79,13,2.734]],["t/355",[12,3.214,13,2.318,32,4.031]],["t/357",[35,4.481,165,5.119]],["t/359",[165,5.119,166,5.674]],["t/361",[13,2.318,19,3.461,167,4.812]],["t/363",[66,4.754,168,5.674]],["t/365",[169,5.674,170,4.754]],["t/367",[170,3.5,171,4.177,172,4.177,173,4.177]],["t/371",[103,4.618]],["t/373",[103,3.79,119,4.082]],["t/375",[24,4.784]],["t/377",[64,4.218]],["t/379",[9,3.67,22,4.082]],["t/381",[1,3.138,26,2.889]],["t/385",[158,3.8,174,4.341,175,4.812]],["t/387",[10,1.683,110,2.982,176,3.305,177,3.305,178,2.982,179,2.61]],["t/391",[12,3.214,26,2.45,178,4.341]],["t/393",[26,2.45,180,4.812,181,4.031]],["t/395",[111,3.8,158,3.8,174,4.341]],["t/398",[182,5.194]],["t/400",[14,3.461,148,3.33,183,4.341]],["t/402",[21,2.621,148,2.89,183,3.768,184,4.177]],["t/404",[85,4.082,185,5.674]],["t/406",[85,3.461,186,4.812,187,3.615]],["t/408",[85,3.005,94,3.5,187,3.138,188,4.177]],["t/410",[64,2.252,68,2.316,85,2.655,94,3.092,187,2.773]],["t/412",[10,1.683,189,3.305,190,3.305,191,3.305,192,3.305,193,3.305]],["t/416",[194,6.913]],["t/418",[195,5.674,196,3.926]],["t/420",[119,3.005,181,3.5,197,4.177,198,4.177]],["t/424",[199,5.792]],["t/426",[21,1.716,65,2.054,159,2.159,200,2.291,201,2.734,202,2.467,203,2.467,204,2.159]],["t/428",[159,2.61,202,2.982,203,2.982,205,2.769,206,2.769,207,2.769]],["t/430",[162,2.982,204,2.61,208,2.769,209,3.305,210,3.305,211,3.305]],["t/432",[159,2.363,212,2.507,213,2.992,214,2.992,215,2.992,216,2.992,217,2.992]],["t/434",[218,4.341,219,4.812,220,4.341]],["t/436",[206,3.5,207,3.5,221,3.768,222,3.768]],["t/438",[170,3.5,223,3.768,224,4.177,225,4.177]],["t/440",[226,4.341,227,4.812,228,4.812]],["t/444",[182,5.194]],["t/446",[54,3.8,229,3.8,230,4.812]],["t/448",[229,3.8,231,4.812,232,4.812]],["t/452",[33,5.792]],["t/454",[18,4.263,19,4.082]],["t/456",[233,6.913]],["t/458",[90,5.194]],["t/460",[36,3.926,37,3.79]],["t/462",[115,5.459]],["t/464",[24,4.784]],["t/466",[234,6.913]],["t/468",[235,6.913]],["t/470",[9,3.67,10,2.889]],["t/472",[9,3.67,22,4.082]],["t/474",[236,5.674,237,5.674]],["t/476",[10,3.52]],["t/478",[10,2.889,80,4.754]],["t/480",[238,5.674,239,5.674]],["t/482",[240,6.237]],["t/484",[16,3.912]],["t/486",[16,3.211,37,3.79]],["t/488",[16,3.211,91,4.754]],["t/490",[16,3.211,241,5.674]],["t/492",[68,4.339]],["t/494",[242,6.237]],["t/496",[19,4.082,242,5.119]],["t/498",[65,3.615,243,4.812,244,4.812]],["t/500",[103,4.618]],["t/502",[65,4.263,245,5.674]],["t/504",[103,3.79,119,4.082]],["t/506",[31,6.237]],["t/508",[64,4.218]],["t/510",[146,6.237]],["t/512",[26,3.52]],["t/514",[1,3.138,26,2.889]],["t/516",[1,2.31,26,2.127,77,3.138,240,3.768]],["t/518",[12,3.79,26,2.889]],["t/520",[26,2.889,246,5.674]],["t/525",[182,5.194]],["t/527",[247,6.913]],["t/529",[248,6.913]],["t/530",[54,2.914,103,2.465,148,2.554,229,2.914,249,3.092]],["t/532",[1,1.828,148,2.287,249,2.769,250,3.305,251,3.305,252,3.305]],["t/534",[54,2.914,90,2.773,148,2.554,229,2.914,249,3.092]],["t/536",[85,4.973]],["t/537",[253,6.913]],["t/539",[254,6.913]],["t/541",[148,4.784]],["t/543",[255,6.913]],["t/546",[182,5.194]],["t/548",[256,6.913]],["t/550",[101,4.031,257,4.341,258,4.341]],["t/552",[257,4.341,258,4.341,259,4.812]],["t/554",[111,4.481,158,4.481]],["t/556",[119,3.461,260,4.812,261,4.812]],["t/558",[103,3.732,119,2.655,262,3.69,263,3.69]],["t/562",[182,5.194]],["t/564",[264,6.913]],["t/566",[265,6.913]],["t/568",[187,5.194]],["t/572",[12,3.214,179,3.8,266,4.341]],["t/574",[179,4.481,267,5.674]],["t/576",[196,3.926,268,5.674]],["t/578",[126,3.768,269,4.177,270,4.177,271,4.177]],["t/580",[272,6.913]],["t/582",[266,5.119,273,5.674]],["t/584",[26,2.889,274,5.674]],["t/586",[26,2.45,275,4.812,276,4.812]],["t/588",[26,2.889,64,3.462]],["t/590",[26,2.45,64,2.936,179,3.8]],["t/592",[277,6.913]],["t/594",[74,4.082,196,3.926]],["t/596",[278,6.913]],["t/598",[74,4.082,196,3.926]],["t/600",[279,6.913]],["t/602",[74,4.082,196,3.926]],["t/604",[45,3.615,187,3.615,280,4.812]],["t/606",[74,4.082,196,3.926]],["t/608",[281,6.913]],["t/610",[74,3.005,196,2.89,282,4.177,283,3.768]],["t/614",[199,5.792]],["t/616",[200,4.754,284,5.674]],["t/618",[205,3.5,285,4.177,286,4.177,287,4.177]],["t/620",[208,3.5,220,3.768,288,4.177,289,4.177]],["t/622",[204,2.914,206,3.092,207,3.092,212,3.092,222,3.329]],["t/624",[65,3.615,218,4.341,290,4.812]],["t/626",[221,5.119,291,5.674]],["t/628",[223,5.119,292,5.674]],["t/630",[226,4.341,293,4.812,294,4.812]],["t/632",[295,5.674,296,5.674]],["t/634",[21,2.621,204,3.299,283,3.768,297,4.177]],["t/638",[199,4.031,298,4.812,299,4.812]],["t/640",[181,4.031,200,4.031,300,4.812]],["t/642",[205,4.754,301,5.674]],["t/644",[61,4.481,208,4.754]],["t/646",[212,4.031,302,4.812,303,4.812]]],"invertedIndex":[["",{"_index":190,"t":{"412":{"position":[[15,1]]}}}],["1",{"_index":199,"t":{"424":{"position":[[0,2]]},"614":{"position":[[0,2]]},"638":{"position":[[0,2]]}}}],["10",{"_index":295,"t":{"632":{"position":[[0,3]]}}}],["11",{"_index":297,"t":{"634":{"position":[[0,3]]}}}],["2",{"_index":200,"t":{"426":{"position":[[0,2]]},"616":{"position":[[0,2]]},"640":{"position":[[0,2]]}}}],["3",{"_index":205,"t":{"428":{"position":[[0,2]]},"618":{"position":[[0,2]]},"642":{"position":[[0,2]]}}}],["4",{"_index":208,"t":{"430":{"position":[[0,2]]},"620":{"position":[[0,2]]},"644":{"position":[[0,2]]}}}],["5",{"_index":212,"t":{"432":{"position":[[0,2]]},"622":{"position":[[0,2]]},"646":{"position":[[0,2]]}}}],["6",{"_index":218,"t":{"434":{"position":[[0,2]]},"624":{"position":[[0,2]]}}}],["7",{"_index":221,"t":{"436":{"position":[[0,2]]},"626":{"position":[[0,2]]}}}],["8",{"_index":223,"t":{"438":{"position":[[0,2]]},"628":{"position":[[0,2]]}}}],["9",{"_index":226,"t":{"440":{"position":[[0,2]]},"630":{"position":[[0,2]]}}}],["access",{"_index":53,"t":{"69":{"position":[[21,13]]}}}],["addr",{"_index":102,"t":{"175":{"position":[[4,5]]}}}],["address",{"_index":113,"t":{"201":{"position":[[10,9]]},"203":{"position":[[17,9]]}}}],["altern",{"_index":11,"t":{"15":{"position":[[0,11]]}}}],["anonym",{"_index":134,"t":{"251":{"position":[[13,9],[38,9]]}}}],["anonymity/unlink",{"_index":157,"t":{"331":{"position":[[0,23]]}}}],["api",{"_index":66,"t":{"94":{"position":[[0,3]]},"289":{"position":[[15,3]]},"363":{"position":[[8,4]]}}}],["applic",{"_index":62,"t":{"83":{"position":[[10,11]]},"169":{"position":[[0,11]]}}}],["authent",{"_index":161,"t":{"335":{"position":[[37,12]]}}}],["auto",{"_index":166,"t":{"359":{"position":[[0,4]]}}}],["avail",{"_index":230,"t":{"446":{"position":[[10,12]]}}}],["background",{"_index":274,"t":{"584":{"position":[[5,10]]}}}],["band",{"_index":239,"t":{"480":{"position":[[7,4]]}}}],["bandwidth",{"_index":229,"t":{"446":{"position":[[0,9]]},"448":{"position":[[20,9]]},"530":{"position":[[6,9]]},"534":{"position":[[7,9]]}}}],["behind",{"_index":149,"t":{"295":{"position":[[10,6]]}}}],["binari",{"_index":84,"t":{"124":{"position":[[10,6]]},"126":{"position":[[8,6]]},"267":{"position":[[13,6]]}}}],["blockchain",{"_index":272,"t":{"580":{"position":[[0,11]]}}}],["bootstrap",{"_index":33,"t":{"45":{"position":[[8,9]]},"271":{"position":[[0,9]]},"452":{"position":[[0,13]]}}}],["browser",{"_index":44,"t":{"61":{"position":[[0,7]]},"100":{"position":[[0,7]]}}}],["bucket",{"_index":137,"t":{"253":{"position":[[9,7]]}}}],["build",{"_index":61,"t":{"83":{"position":[[0,5]]},"124":{"position":[[0,5]]},"261":{"position":[[0,5]]},"644":{"position":[[3,8]]}}}],["case",{"_index":27,"t":{"33":{"position":[[0,4]]}}}],["certif",{"_index":50,"t":{"67":{"position":[[6,11]]}}}],["challeng",{"_index":276,"t":{"586":{"position":[[10,10]]}}}],["chang",{"_index":170,"t":{"365":{"position":[[5,7]]},"367":{"position":[[34,7]]},"438":{"position":[[29,6]]}}}],["check",{"_index":45,"t":{"63":{"position":[[0,8]]},"67":{"position":[[0,5]]},"69":{"position":[[0,5]]},"275":{"position":[[0,5]]},"604":{"position":[[14,8]]}}}],["choic",{"_index":219,"t":{"434":{"position":[[8,7]]}}}],["choos",{"_index":17,"t":{"19":{"position":[[0,6]]},"152":{"position":[[0,6]]}}}],["clone",{"_index":82,"t":{"122":{"position":[[0,5]]},"217":{"position":[[0,5]]}}}],["codebas",{"_index":70,"t":{"98":{"position":[[0,8]]}}}],["collect",{"_index":201,"t":{"426":{"position":[[16,10]]}}}],["command",{"_index":123,"t":{"231":{"position":[[0,7]]}}}],["commit",{"_index":301,"t":{"642":{"position":[[3,10]]}}}],["compat",{"_index":67,"t":{"94":{"position":[[4,13]]}}}],["complex",{"_index":71,"t":{"98":{"position":[[9,10]]}}}],["confidenti",{"_index":160,"t":{"335":{"position":[[5,16]]}}}],["config",{"_index":100,"t":{"169":{"position":[[18,6]]},"171":{"position":[[4,6]]},"173":{"position":[[13,6]]},"175":{"position":[[10,6]]},"177":{"position":[[6,6]]},"179":{"position":[[24,6]]},"181":{"position":[[7,6]]},"183":{"position":[[11,6]]},"185":{"position":[[10,6]]},"187":{"position":[[8,6]]},"189":{"position":[[14,6]]},"191":{"position":[[7,6]]},"193":{"position":[[19,6]]},"195":{"position":[[10,6]]}}}],["configur",{"_index":13,"t":{"15":{"position":[[20,13]]},"47":{"position":[[0,9]]},"49":{"position":[[0,9]]},"51":{"position":[[0,9]]},"138":{"position":[[0,9]]},"140":{"position":[[0,9]]},"142":{"position":[[0,9]]},"144":{"position":[[0,9]]},"197":{"position":[[52,13]]},"219":{"position":[[0,9]]},"235":{"position":[[0,13]]},"237":{"position":[[8,13]]},"281":{"position":[[0,9]]},"283":{"position":[[0,9]]},"285":{"position":[[13,9]]},"287":{"position":[[0,9]]},"289":{"position":[[0,9]]},"291":{"position":[[0,9]]},"293":{"position":[[0,9]]},"353":{"position":[[8,13]]},"355":{"position":[[16,13]]},"361":{"position":[[13,13]]}}}],["connect",{"_index":14,"t":{"17":{"position":[[0,7]]},"53":{"position":[[11,9]]},"65":{"position":[[17,10]]},"150":{"position":[[0,7]]},"279":{"position":[[0,7]]},"400":{"position":[[7,7]]}}}],["consider",{"_index":130,"t":{"247":{"position":[[7,14]]},"337":{"position":[[9,14]]}}}],["contact",{"_index":227,"t":{"440":{"position":[[3,7]]}}}],["contain",{"_index":142,"t":{"263":{"position":[[11,9]]}}}],["content",{"_index":18,"t":{"19":{"position":[[9,7]]},"152":{"position":[[9,7]]},"249":{"position":[[19,7]]},"351":{"position":[[9,8]]},"454":{"position":[[0,7]]}}}],["contribut",{"_index":55,"t":{"75":{"position":[[0,12]]}}}],["creat",{"_index":8,"t":{"13":{"position":[[0,6]]},"21":{"position":[[0,6]]},"148":{"position":[[0,6]]},"253":{"position":[[0,8]]}}}],["cross",{"_index":280,"t":{"604":{"position":[[8,5]]}}}],["current",{"_index":197,"t":{"420":{"position":[[0,7]]}}}],["cursor",{"_index":97,"t":{"163":{"position":[[0,6]]}}}],["dappnod",{"_index":233,"t":{"456":{"position":[[0,8]]}}}],["data",{"_index":159,"t":{"335":{"position":[[0,4]]},"426":{"position":[[54,4]]},"428":{"position":[[38,4]]},"432":{"position":[[13,4]]}}}],["databas",{"_index":193,"t":{"412":{"position":[[28,8]]}}}],["debug",{"_index":40,"t":{"57":{"position":[[9,5]]}}}],["decentralis",{"_index":266,"t":{"572":{"position":[[19,13]]},"582":{"position":[[0,13]]}}}],["default",{"_index":32,"t":{"45":{"position":[[0,7]]},"237":{"position":[[0,7]]},"355":{"position":[[0,7]]}}}],["denial",{"_index":177,"t":{"387":{"position":[[14,6]]}}}],["depend",{"_index":58,"t":{"79":{"position":[[12,12]]}}}],["design",{"_index":300,"t":{"640":{"position":[[12,6]]}}}],["develop",{"_index":75,"t":{"104":{"position":[[7,12]]}}}],["disclaim",{"_index":284,"t":{"616":{"position":[[3,11]]}}}],["disclos",{"_index":131,"t":{"249":{"position":[[10,8]]}}}],["discover",{"_index":114,"t":{"203":{"position":[[0,12]]}}}],["discoveri",{"_index":37,"t":{"49":{"position":[[14,9]]},"51":{"position":[[14,9]]},"140":{"position":[[14,9]]},"189":{"position":[[4,9]]},"205":{"position":[[12,9]]},"317":{"position":[[0,9]]},"460":{"position":[[4,9]]},"486":{"position":[[5,9]]}}}],["discuss",{"_index":299,"t":{"638":{"position":[[11,10]]}}}],["discv5",{"_index":90,"t":{"142":{"position":[[10,6]]},"191":{"position":[[0,6]]},"207":{"position":[[8,6]]},"458":{"position":[[0,6]]},"534":{"position":[[0,6]]}}}],["disput",{"_index":296,"t":{"632":{"position":[[4,8]]}}}],["distribut",{"_index":138,"t":{"253":{"position":[[25,12]]}}}],["dn",{"_index":36,"t":{"49":{"position":[[10,3]]},"51":{"position":[[10,3]]},"140":{"position":[[10,3]]},"175":{"position":[[0,3]]},"189":{"position":[[0,3]]},"205":{"position":[[8,3]]},"460":{"position":[[0,3]]}}}],["do",{"_index":110,"t":{"197":{"position":[[37,3]]},"387":{"position":[[32,5]]}}}],["docker",{"_index":140,"t":{"259":{"position":[[4,6]]},"261":{"position":[[6,6]]},"263":{"position":[[4,6]]}}}],["domain",{"_index":145,"t":{"281":{"position":[[12,6]]},"317":{"position":[[10,6]]},"319":{"position":[[7,6]]},"321":{"position":[[17,6]]}}}],["dst",{"_index":253,"t":{"537":{"position":[[0,3]]}}}],["earli",{"_index":269,"t":{"578":{"position":[[0,5]]}}}],["eci",{"_index":78,"t":{"112":{"position":[[0,5]]}}}],["econom",{"_index":174,"t":{"385":{"position":[[0,8]]},"395":{"position":[[0,8]]}}}],["enabl",{"_index":39,"t":{"57":{"position":[[0,8]]}}}],["encrypt",{"_index":77,"t":{"110":{"position":[[10,10]]},"112":{"position":[[6,10]]},"114":{"position":[[8,9]]},"116":{"position":[[8,10]]},"516":{"position":[[21,10]]}}}],["enr",{"_index":115,"t":{"203":{"position":[[13,3]]},"205":{"position":[[0,3]]},"207":{"position":[[0,3]]},"462":{"position":[[0,3]]}}}],["environ",{"_index":43,"t":{"59":{"position":[[7,12]]},"61":{"position":[[8,12]]},"233":{"position":[[0,11]]}}}],["european",{"_index":215,"t":{"432":{"position":[[30,8]]}}}],["evalu",{"_index":281,"t":{"608":{"position":[[0,10]]}}}],["exampl",{"_index":184,"t":{"402":{"position":[[0,8]]}}}],["exchang",{"_index":91,"t":{"144":{"position":[[15,8]]},"193":{"position":[[10,8]]},"488":{"position":[[5,8]]}}}],["export",{"_index":213,"t":{"432":{"position":[[3,9]]}}}],["file",{"_index":126,"t":{"235":{"position":[[14,5]]},"578":{"position":[[10,4]]}}}],["filter",{"_index":24,"t":{"25":{"position":[[23,6]]},"87":{"position":[[23,6]]},"134":{"position":[[8,6]]},"181":{"position":[[0,6]]},"291":{"position":[[10,6]]},"375":{"position":[[0,6]]},"464":{"position":[[0,6]]}}}],["format",{"_index":129,"t":{"245":{"position":[[7,6]]}}}],["forward",{"_index":285,"t":{"618":{"position":[[3,7]]}}}],["function",{"_index":173,"t":{"367":{"position":[[25,8]]}}}],["futur",{"_index":74,"t":{"104":{"position":[[0,6]]},"594":{"position":[[0,6]]},"598":{"position":[[0,6]]},"602":{"position":[[0,6]]},"606":{"position":[[0,6]]},"610":{"position":[[12,6]]}}}],["gener",{"_index":101,"t":{"173":{"position":[[0,7]]},"285":{"position":[[0,8]]},"550":{"position":[[6,10]]}}}],["get",{"_index":3,"t":{"7":{"position":[[0,7]]},"34":{"position":[[0,7]]}}}],["gossip",{"_index":154,"t":{"319":{"position":[[0,6]]}}}],["gossipsub",{"_index":234,"t":{"466":{"position":[[0,9]]}}}],["govern",{"_index":293,"t":{"630":{"position":[[3,9]]}}}],["health",{"_index":143,"t":{"275":{"position":[[15,6]]}}}],["help",{"_index":5,"t":{"9":{"position":[[4,4]]},"253":{"position":[[17,4]]}}}],["http",{"_index":105,"t":{"185":{"position":[[5,4]]}}}],["i13n",{"_index":275,"t":{"586":{"position":[[5,4]]}}}],["id",{"_index":241,"t":{"490":{"position":[[5,2]]}}}],["imag",{"_index":141,"t":{"259":{"position":[[11,5]]},"261":{"position":[[13,5]]}}}],["implement",{"_index":69,"t":{"96":{"position":[[9,14]]}}}],["incentivis",{"_index":179,"t":{"387":{"position":[[47,15]]},"572":{"position":[[0,15]]},"574":{"position":[[0,15]]},"590":{"position":[[11,15]]}}}],["increas",{"_index":132,"t":{"251":{"position":[[0,10]]}}}],["indemn",{"_index":291,"t":{"626":{"position":[[3,9]]}}}],["inform",{"_index":228,"t":{"440":{"position":[[11,11]]}}}],["initi",{"_index":298,"t":{"638":{"position":[[3,7]]}}}],["initialis",{"_index":59,"t":{"81":{"position":[[0,10]]}}}],["insert",{"_index":186,"t":{"406":{"position":[[0,6]]}}}],["insight",{"_index":248,"t":{"529":{"position":[[0,8]]}}}],["instal",{"_index":0,"t":{"3":{"position":[[0,12]]},"79":{"position":[[0,7]]},"108":{"position":[[0,12]]}}}],["integr",{"_index":30,"t":{"37":{"position":[[0,9]]},"39":{"position":[[6,12]]},"335":{"position":[[22,10]]}}}],["intellectu",{"_index":288,"t":{"620":{"position":[[3,12]]}}}],["interact",{"_index":122,"t":{"227":{"position":[[0,8]]},"273":{"position":[[0,8]]},"323":{"position":[[21,11]]}}}],["interfac",{"_index":63,"t":{"83":{"position":[[22,9]]}}}],["internal/priv",{"_index":171,"t":{"367":{"position":[[0,16]]}}}],["introduct",{"_index":182,"t":{"398":{"position":[[0,12]]},"444":{"position":[[0,12]]},"525":{"position":[[0,12]]},"546":{"position":[[0,12]]},"562":{"position":[[0,12]]}}}],["isn’t",{"_index":25,"t":{"29":{"position":[[5,5]]}}}],["issu",{"_index":7,"t":{"9":{"position":[[20,6]]}}}],["jmeter",{"_index":188,"t":{"408":{"position":[[19,8]]}}}],["join",{"_index":163,"t":{"341":{"position":[[4,4]]}}}],["k",{"_index":133,"t":{"251":{"position":[[11,1]]}}}],["key",{"_index":80,"t":{"116":{"position":[[19,4]]},"285":{"position":[[30,3]]},"478":{"position":[[5,3]]}}}],["latenc",{"_index":251,"t":{"532":{"position":[[20,8]]}}}],["law",{"_index":294,"t":{"630":{"position":[[13,3]]}}}],["level",{"_index":99,"t":{"169":{"position":[[12,5]]}}}],["liabil",{"_index":290,"t":{"624":{"position":[[17,9]]}}}],["libp2p",{"_index":235,"t":{"468":{"position":[[0,6]]}}}],["light",{"_index":9,"t":{"13":{"position":[[9,5]]},"23":{"position":[[20,5]]},"85":{"position":[[20,5]]},"148":{"position":[[9,5]]},"183":{"position":[[0,5]]},"293":{"position":[[10,5]]},"379":{"position":[[0,5]]},"470":{"position":[[0,5]]},"472":{"position":[[0,5]]}}}],["limit",{"_index":65,"t":{"93":{"position":[[0,11]]},"426":{"position":[[6,5]]},"498":{"position":[[5,5]]},"502":{"position":[[9,7]]},"624":{"position":[[3,10]]}}}],["line",{"_index":124,"t":{"231":{"position":[[8,4]]}}}],["link",{"_index":222,"t":{"436":{"position":[[15,5]]},"622":{"position":[[23,5]]}}}],["listen",{"_index":112,"t":{"201":{"position":[[0,9]]}}}],["log",{"_index":41,"t":{"57":{"position":[[15,4]]},"171":{"position":[[0,3]]}}}],["longer",{"_index":282,"t":{"610":{"position":[[0,6]]}}}],["look",{"_index":286,"t":{"618":{"position":[[11,7]]}}}],["maximum",{"_index":232,"t":{"448":{"position":[[12,7]]}}}],["measur",{"_index":209,"t":{"430":{"position":[[12,8]]}}}],["membership",{"_index":120,"t":{"221":{"position":[[17,10]]}}}],["messag",{"_index":1,"t":{"5":{"position":[[0,7]]},"21":{"position":[[9,7]]},"23":{"position":[[5,8]]},"25":{"position":[[8,8]]},"85":{"position":[[5,8]]},"87":{"position":[[8,8]]},"89":{"position":[[9,8]]},"114":{"position":[[18,8]]},"154":{"position":[[9,8]]},"179":{"position":[[10,7]]},"283":{"position":[[29,7]]},"381":{"position":[[5,7]]},"514":{"position":[[5,7]]},"516":{"position":[[5,7]]},"532":{"position":[[0,7]]}}}],["method",{"_index":34,"t":{"45":{"position":[[18,6]]}}}],["metric",{"_index":106,"t":{"187":{"position":[[0,7]]}}}],["modif",{"_index":292,"t":{"628":{"position":[[3,13]]}}}],["monitor",{"_index":121,"t":{"225":{"position":[[0,7]]}}}],["mostli",{"_index":236,"t":{"474":{"position":[[0,6]]}}}],["multipl",{"_index":189,"t":{"412":{"position":[[0,8]]}}}],["name",{"_index":128,"t":{"245":{"position":[[0,6]]},"247":{"position":[[0,6]]},"281":{"position":[[19,4]]}}}],["network",{"_index":12,"t":{"15":{"position":[[12,7]]},"341":{"position":[[18,8]]},"345":{"position":[[15,7]]},"353":{"position":[[0,7]]},"355":{"position":[[8,7]]},"391":{"position":[[18,7]]},"518":{"position":[[5,7]]},"572":{"position":[[33,8]]}}}],["new",{"_index":56,"t":{"75":{"position":[[13,3]]}}}],["node",{"_index":10,"t":{"13":{"position":[[15,4]]},"35":{"position":[[11,4]]},"148":{"position":[[15,4]]},"173":{"position":[[8,4]]},"223":{"position":[[8,4]]},"225":{"position":[[12,4]]},"227":{"position":[[18,4]]},"267":{"position":[[8,4]]},"269":{"position":[[8,4]]},"271":{"position":[[14,4]]},"273":{"position":[[18,4]]},"275":{"position":[[10,4]]},"285":{"position":[[25,4]]},"345":{"position":[[23,4]]},"387":{"position":[[42,4]]},"412":{"position":[[9,5]]},"470":{"position":[[6,4]]},"476":{"position":[[0,4]]},"478":{"position":[[0,4]]}}}],["nodej",{"_index":42,"t":{"59":{"position":[[0,6]]}}}],["nois",{"_index":246,"t":{"520":{"position":[[5,5]]}}}],["non",{"_index":107,"t":{"197":{"position":[[0,3]]}}}],["nullifi",{"_index":244,"t":{"498":{"position":[[11,10]]}}}],["nwaku",{"_index":148,"t":{"295":{"position":[[4,5]]},"400":{"position":[[19,5]]},"402":{"position":[[12,5]]},"530":{"position":[[23,5]]},"532":{"position":[[29,5]]},"534":{"position":[[24,5]]},"541":{"position":[[0,5]]}}}],["offlin",{"_index":237,"t":{"474":{"position":[[7,7]]}}}],["on",{"_index":191,"t":{"412":{"position":[[17,3]]}}}],["ongo",{"_index":302,"t":{"646":{"position":[[3,7]]}}}],["option",{"_index":95,"t":{"160":{"position":[[12,7]]},"231":{"position":[[13,7]]}}}],["out",{"_index":238,"t":{"480":{"position":[[0,3]]}}}],["outsid",{"_index":214,"t":{"432":{"position":[[18,7]]}}}],["overview",{"_index":87,"t":{"132":{"position":[[0,8]]},"241":{"position":[[0,8]]},"299":{"position":[[0,8]]},"307":{"position":[[0,8]]},"311":{"position":[[0,8]]},"323":{"position":[[0,8]]}}}],["p2p",{"_index":270,"t":{"578":{"position":[[6,3]]}}}],["pagedirect",{"_index":96,"t":{"161":{"position":[[0,13]]}}}],["parti",{"_index":207,"t":{"428":{"position":[[9,5]]},"436":{"position":[[9,5]]},"622":{"position":[[9,5]]}}}],["payload",{"_index":240,"t":{"482":{"position":[[0,7]]},"516":{"position":[[13,7]]}}}],["payment",{"_index":278,"t":{"596":{"position":[[0,7]]}}}],["peer",{"_index":16,"t":{"17":{"position":[[18,5]]},"47":{"position":[[17,5]]},"51":{"position":[[35,5]]},"53":{"position":[[21,5]]},"138":{"position":[[17,5]]},"144":{"position":[[10,4]]},"150":{"position":[[17,5]]},"193":{"position":[[5,4]]},"249":{"position":[[37,5]]},"279":{"position":[[17,5]]},"484":{"position":[[0,4]]},"486":{"position":[[0,4]]},"488":{"position":[[0,4]]},"490":{"position":[[0,4]]}}}],["perform",{"_index":262,"t":{"558":{"position":[[0,11]]}}}],["person",{"_index":203,"t":{"426":{"position":[[45,8]]},"428":{"position":[[29,8]]}}}],["ping",{"_index":88,"t":{"134":{"position":[[0,7]]}}}],["polici",{"_index":225,"t":{"438":{"position":[[16,6]]}}}],["port",{"_index":52,"t":{"69":{"position":[[16,4]]}}}],["postgr",{"_index":183,"t":{"400":{"position":[[28,8]]},"402":{"position":[[24,8]]}}}],["prerequisit",{"_index":81,"t":{"120":{"position":[[0,13]]},"215":{"position":[[0,13]]},"257":{"position":[[0,13]]},"343":{"position":[[0,13]]}}}],["preserv",{"_index":135,"t":{"251":{"position":[[23,9]]}}}],["prevent",{"_index":176,"t":{"387":{"position":[[0,10]]}}}],["previou",{"_index":195,"t":{"418":{"position":[[0,8]]}}}],["price",{"_index":277,"t":{"592":{"position":[[0,7]]}}}],["prior",{"_index":268,"t":{"576":{"position":[[0,5]]}}}],["privaci",{"_index":224,"t":{"438":{"position":[[8,7]]}}}],["problem",{"_index":194,"t":{"416":{"position":[[0,7]]}}}],["process",{"_index":202,"t":{"426":{"position":[[31,10]]},"428":{"position":[[15,10]]}}}],["proof",{"_index":257,"t":{"550":{"position":[[0,5]]},"552":{"position":[[0,5]]}}}],["propag",{"_index":250,"t":{"532":{"position":[[8,11]]}}}],["properti",{"_index":289,"t":{"620":{"position":[[16,8]]}}}],["protect",{"_index":111,"t":{"197":{"position":[[41,10]]},"333":{"position":[[5,10]]},"395":{"position":[[14,10]]},"554":{"position":[[5,10]]}}}],["protocol",{"_index":68,"t":{"96":{"position":[[0,8]]},"100":{"position":[[17,9]]},"197":{"position":[[28,8]]},"249":{"position":[[0,9]]},"283":{"position":[[16,8]]},"291":{"position":[[17,8]]},"293":{"position":[[21,8]]},"323":{"position":[[12,8]]},"410":{"position":[[31,9]]},"492":{"position":[[0,8]]}}}],["provid",{"_index":60,"t":{"81":{"position":[[20,8]]}}}],["proxi",{"_index":151,"t":{"295":{"position":[[27,5]]}}}],["pseudonym",{"_index":156,"t":{"329":{"position":[[0,12]]}}}],["pub/sub",{"_index":242,"t":{"494":{"position":[[0,7]]},"496":{"position":[[0,7]]}}}],["pubsub",{"_index":167,"t":{"361":{"position":[[0,6]]}}}],["push",{"_index":22,"t":{"23":{"position":[[26,4]]},"85":{"position":[[26,4]]},"183":{"position":[[6,4]]},"293":{"position":[[16,4]]},"379":{"position":[[6,4]]},"472":{"position":[[6,4]]}}}],["qa",{"_index":254,"t":{"539":{"position":[[0,2]]}}}],["queri",{"_index":94,"t":{"160":{"position":[[6,5]]},"408":{"position":[[0,5]]},"410":{"position":[[0,5]]}}}],["querygener",{"_index":93,"t":{"158":{"position":[[0,14]]}}}],["querywithorderedcallback",{"_index":92,"t":{"156":{"position":[[0,24]]}}}],["rate",{"_index":243,"t":{"498":{"position":[[0,4]]}}}],["rc1",{"_index":252,"t":{"532":{"position":[[43,3]]}}}],["receiv",{"_index":23,"t":{"25":{"position":[[0,7]]},"87":{"position":[[0,7]]}}}],["recommend",{"_index":73,"t":{"102":{"position":[[0,15]]}}}],["regist",{"_index":118,"t":{"221":{"position":[[0,8]]}}}],["relat",{"_index":303,"t":{"646":{"position":[[11,8]]}}}],["relay",{"_index":103,"t":{"177":{"position":[[0,5]]},"197":{"position":[[4,6]]},"371":{"position":[[0,5]]},"373":{"position":[[4,5]]},"500":{"position":[[0,5]]},"504":{"position":[[4,5]]},"530":{"position":[[0,5]]},"558":{"position":[[12,5],[26,5]]}}}],["releas",{"_index":153,"t":{"303":{"position":[[7,8]]}}}],["remot",{"_index":15,"t":{"17":{"position":[[11,6]]}}}],["remov",{"_index":168,"t":{"363":{"position":[[0,7]]}}}],["report",{"_index":6,"t":{"9":{"position":[[13,6]]}}}],["repositori",{"_index":83,"t":{"122":{"position":[[10,10]]},"217":{"position":[[10,10]]}}}],["reput",{"_index":279,"t":{"600":{"position":[[0,10]]}}}],["request",{"_index":108,"t":{"197":{"position":[[11,7]]}}}],["request/respons",{"_index":155,"t":{"321":{"position":[[0,16]]}}}],["research",{"_index":255,"t":{"543":{"position":[[0,8]]}}}],["resist",{"_index":175,"t":{"385":{"position":[[14,10]]}}}],["resourc",{"_index":245,"t":{"502":{"position":[[0,8]]}}}],["respect",{"_index":211,"t":{"430":{"position":[[32,7]]}}}],["respons",{"_index":109,"t":{"197":{"position":[[19,8]]}}}],["rest",{"_index":104,"t":{"185":{"position":[[0,4]]},"289":{"position":[[10,4]]}}}],["result",{"_index":187,"t":{"406":{"position":[[12,7]]},"408":{"position":[[11,7]]},"410":{"position":[[11,7]]},"568":{"position":[[0,7]]},"604":{"position":[[0,7]]}}}],["retriev",{"_index":38,"t":{"53":{"position":[[0,10]]},"89":{"position":[[0,8]]},"154":{"position":[[0,8]]}}}],["revers",{"_index":150,"t":{"295":{"position":[[19,7]]}}}],["right",{"_index":220,"t":{"434":{"position":[[20,6]]},"620":{"position":[[25,6]]}}}],["rln",{"_index":119,"t":{"221":{"position":[[13,3]]},"373":{"position":[[0,3]]},"420":{"position":[[17,4]]},"504":{"position":[[0,3]]},"556":{"position":[[0,3]]},"558":{"position":[[22,3]]}}}],["run",{"_index":29,"t":{"35":{"position":[[0,3]]},"126":{"position":[[0,3]]},"128":{"position":[[0,3]]},"223":{"position":[[0,3]]},"263":{"position":[[0,3]]},"269":{"position":[[0,3]]},"295":{"position":[[0,3]]},"345":{"position":[[0,7]]}}}],["sdk",{"_index":31,"t":{"37":{"position":[[16,4]]},"506":{"position":[[0,3]]}}}],["secur",{"_index":162,"t":{"337":{"position":[[0,8]]},"430":{"position":[[3,8]]}}}],["select",{"_index":231,"t":{"448":{"position":[[0,9]]}}}],["send",{"_index":20,"t":{"23":{"position":[[0,4]]},"85":{"position":[[0,4]]}}}],["server",{"_index":147,"t":{"289":{"position":[[19,6]]}}}],["servic",{"_index":178,"t":{"387":{"position":[[24,7]]},"391":{"position":[[10,7]]}}}],["setup",{"_index":47,"t":{"63":{"position":[[19,5]]},"219":{"position":[[14,5]]}}}],["shard",{"_index":165,"t":{"357":{"position":[[7,8]]},"359":{"position":[[5,8]]}}}],["share",{"_index":271,"t":{"578":{"position":[[15,7]]}}}],["sign",{"_index":79,"t":{"114":{"position":[[0,7]]}}}],["simul",{"_index":265,"t":{"566":{"position":[[0,11]]}}}],["singl",{"_index":192,"t":{"412":{"position":[[21,6]]}}}],["solut",{"_index":181,"t":{"393":{"position":[[18,8]]},"420":{"position":[[8,8]]},"640":{"position":[[3,8]]}}}],["spam",{"_index":158,"t":{"333":{"position":[[0,4]]},"385":{"position":[[9,4]]},"395":{"position":[[9,4]]},"554":{"position":[[0,4]]}}}],["specif",{"_index":72,"t":{"100":{"position":[[8,8]]}}}],["start",{"_index":4,"t":{"7":{"position":[[8,7]]},"34":{"position":[[8,7]]}}}],["statement",{"_index":287,"t":{"618":{"position":[[19,10]]}}}],["static",{"_index":35,"t":{"47":{"position":[[10,6]]},"51":{"position":[[28,6]]},"138":{"position":[[10,6]]},"357":{"position":[[0,6]]}}}],["statu",{"_index":144,"t":{"275":{"position":[[22,6]]}}}],["storag",{"_index":273,"t":{"582":{"position":[[14,7]]}}}],["store",{"_index":64,"t":{"89":{"position":[[24,5]]},"116":{"position":[[0,7]]},"150":{"position":[[11,5]]},"160":{"position":[[0,5]]},"179":{"position":[[0,5],[18,5]]},"283":{"position":[[10,5],[37,5]]},"377":{"position":[[0,5]]},"410":{"position":[[25,5]]},"508":{"position":[[0,5]]},"588":{"position":[[5,5]]},"590":{"position":[[5,5]]}}}],["stress",{"_index":185,"t":{"404":{"position":[[0,6]]}}}],["structur",{"_index":2,"t":{"5":{"position":[[8,9]]},"21":{"position":[[17,9]]}}}],["studi",{"_index":28,"t":{"33":{"position":[[5,7]]}}}],["subscript",{"_index":89,"t":{"134":{"position":[[15,13]]}}}],["suit",{"_index":86,"t":{"128":{"position":[[9,5]]}}}],["switzerland",{"_index":217,"t":{"432":{"position":[[49,11]]}}}],["symmetr",{"_index":76,"t":{"110":{"position":[[0,9]]}}}],["sync",{"_index":261,"t":{"556":{"position":[[9,4]]}}}],["tabl",{"_index":164,"t":{"351":{"position":[[0,5]]}}}],["take",{"_index":210,"t":{"430":{"position":[[24,4]]}}}],["target",{"_index":152,"t":{"303":{"position":[[0,6]]}}}],["templat",{"_index":57,"t":{"75":{"position":[[17,9]]}}}],["term",{"_index":283,"t":{"610":{"position":[[7,4]]},"634":{"position":[[24,5]]}}}],["test",{"_index":85,"t":{"128":{"position":[[4,4]]},"404":{"position":[[7,5]]},"406":{"position":[[7,4]]},"408":{"position":[[6,4]]},"410":{"position":[[6,4]]},"536":{"position":[[0,7]]}}}],["theori",{"_index":264,"t":{"564":{"position":[[0,6]]}}}],["third",{"_index":206,"t":{"428":{"position":[[3,5]]},"436":{"position":[[3,5]]},"622":{"position":[[3,5]]}}}],["time",{"_index":258,"t":{"550":{"position":[[17,5]]},"552":{"position":[[19,5]]}}}],["timefilt",{"_index":98,"t":{"165":{"position":[[0,10]]}}}],["tl;dr",{"_index":247,"t":{"527":{"position":[[0,5]]}}}],["tldr",{"_index":256,"t":{"548":{"position":[[0,5]]}}}],["tool",{"_index":267,"t":{"574":{"position":[[16,5]]}}}],["topic",{"_index":19,"t":{"19":{"position":[[17,5]]},"152":{"position":[[17,5]]},"249":{"position":[[27,6]]},"361":{"position":[[7,5]]},"454":{"position":[[8,5]]},"496":{"position":[[8,5]]}}}],["traffic",{"_index":139,"t":{"253":{"position":[[38,7]]}}}],["transport",{"_index":146,"t":{"287":{"position":[[20,9]]},"510":{"position":[[0,9]]}}}],["tree",{"_index":260,"t":{"556":{"position":[[4,4]]}}}],["tri",{"_index":48,"t":{"65":{"position":[[0,3]]}}}],["turnkey",{"_index":180,"t":{"393":{"position":[[10,7]]}}}],["tutori",{"_index":117,"t":{"213":{"position":[[6,8]]}}}],["type",{"_index":169,"t":{"365":{"position":[[0,4]]}}}],["union",{"_index":216,"t":{"432":{"position":[[39,5]]}}}],["us",{"_index":21,"t":{"23":{"position":[[14,5]]},"25":{"position":[[17,5]]},"31":{"position":[[17,4]]},"37":{"position":[[10,5]]},"85":{"position":[[14,5]]},"87":{"position":[[17,5]]},"89":{"position":[[18,5]]},"402":{"position":[[18,5]]},"426":{"position":[[69,3]]},"634":{"position":[[33,3]]}}}],["usag",{"_index":54,"t":{"73":{"position":[[0,5]]},"446":{"position":[[27,5]]},"530":{"position":[[16,6]]},"534":{"position":[[17,6]]}}}],["user",{"_index":136,"t":{"251":{"position":[[33,4]]}}}],["util",{"_index":172,"t":{"367":{"position":[[17,7]]}}}],["v0.34.0",{"_index":249,"t":{"530":{"position":[[29,7]]},"532":{"position":[[35,7]]},"534":{"position":[[30,7]]}}}],["v2",{"_index":198,"t":{"420":{"position":[[22,3]]}}}],["valid",{"_index":51,"t":{"67":{"position":[[18,8]]}}}],["valu",{"_index":127,"t":{"237":{"position":[[22,6]]}}}],["variabl",{"_index":125,"t":{"233":{"position":[[12,9]]}}}],["verif",{"_index":259,"t":{"552":{"position":[[6,12]]}}}],["video",{"_index":116,"t":{"213":{"position":[[0,5]]}}}],["vs",{"_index":263,"t":{"558":{"position":[[18,3]]}}}],["waku",{"_index":26,"t":{"29":{"position":[[11,5]]},"31":{"position":[[9,4]]},"35":{"position":[[6,4]]},"81":{"position":[[15,4]]},"193":{"position":[[0,4]]},"341":{"position":[[13,4]]},"345":{"position":[[10,4]]},"381":{"position":[[0,4]]},"391":{"position":[[0,4]]},"393":{"position":[[0,4]]},"512":{"position":[[0,4]]},"514":{"position":[[0,4]]},"516":{"position":[[0,4]]},"518":{"position":[[0,4]]},"520":{"position":[[0,4]]},"584":{"position":[[0,4]]},"586":{"position":[[0,4]]},"588":{"position":[[0,4]]},"590":{"position":[[0,4]]}}}],["websit",{"_index":204,"t":{"426":{"position":[[80,7]]},"430":{"position":[[47,7]]},"622":{"position":[[15,7]]},"634":{"position":[[16,7]]}}}],["websocat",{"_index":49,"t":{"65":{"position":[[4,8]]}}}],["websocket",{"_index":46,"t":{"63":{"position":[[9,9]]},"69":{"position":[[6,9]]},"195":{"position":[[0,9]]},"287":{"position":[[10,9]]}}}],["work",{"_index":196,"t":{"418":{"position":[[9,4]]},"576":{"position":[[6,4]]},"594":{"position":[[7,4]]},"598":{"position":[[7,4]]},"602":{"position":[[7,4]]},"606":{"position":[[7,4]]},"610":{"position":[[19,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"caution Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future. The JavaScript Waku SDK (@waku/sdk) provides a TypeScript implementation of the Waku protocol designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the @waku/sdk package.","s":"JavaScript Waku SDK","u":"/guides/js-waku/","h":"","p":1},{"i":4,"t":"Install the @waku/sdk package using your preferred package manager: NPM Yarn npm install @waku/sdk yarn add @waku/sdk You can also use the @waku/sdk package via a CDN without installing it on your system: import * as waku from \"https://unpkg.com/@waku/sdk@latest/bundle/index.js\";","s":"Installation","u":"/guides/js-waku/","h":"#installation","p":1},{"i":6,"t":"We recommend creating a message structure for your application using Protocol Buffers for the following reasons: Consistency: Ensures uniform message format for easy parsing and processing. Interoperability: Facilitates effective communication between different parts of your application. Compatibility: Allows smooth communication between older and newer app versions. Payload Size: Minimizes payload overhead, especially for byte arrays, unlike JSON which adds significant overhead. To get started, install the protobufjs package using your preferred package manager: NPM Yarn npm install protobufjs yarn add protobufjs You can also use the protobufjs package via a CDN without installing it on your system: // Import the CDN import \"https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js\"; ","s":"Message structure","u":"/guides/js-waku/","h":"#message-structure","p":1},{"i":8,"t":"Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using @waku/sdk: Guide Description Send and Receive Messages Using Light Push and Filter Learn how to send and receive messages on light nodes using the Light Push and Filter protocols Retrieve Messages Using Store Protocol Learn how to retrieve and filter historical messages on light nodes using the Store protocol Encrypt, Decrypt, and Sign Your Messages Learn how to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages Build React DApps Using @waku/react Learn how to use the @waku/react package seamlessly integrate @waku/sdk into a React application Scaffold DApps Using @waku/create-app Learn how to use the @waku/create-app package to bootstrap your next @waku/sdk project from various example templates Bootstrap Nodes and Discover Peers Learn how to bootstrap your node using Static Peers and discover peers using DNS Discovery Run @waku/sdk in a NodeJS Application Learn our suggested approach for using the @waku/sdk package within a NodeJS application Debug Your Waku DApp and WebSocket Learn how to troubleshoot your Waku DApp using debug logs and check WebSocket connections in nwaku Manage Your Filter Subscriptions Learn how to manage filter subscriptions and handle node disconnections in your application tip Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.","s":"Getting started","u":"/guides/js-waku/","h":"#getting-started","p":1},{"i":10,"t":"To engage in general discussions, seek assistance, or stay updated with the latest news, visit the #support and #js-waku-contribute channels on the Waku Discord. If you discover bugs or want to suggest new features, do not hesitate to open an issue in the js-waku repository. Your feedback and contributions are highly valued and will help improve the @waku/sdk package.","s":"Get help and report issues","u":"/guides/js-waku/","h":"#get-help-and-report-issues","p":1},{"i":12,"t":"This guide provides detailed steps to start using the @waku/sdk package by setting up a Light Node to send messages using the Light Push protocol, and receive messages using the Filter protocol. Have a look at the installation guide for steps on adding @waku/sdk to your project.","s":"Send and Receive Messages Using Light Push and Filter","u":"/guides/js-waku/light-send-receive","h":"","p":11},{"i":14,"t":"Use the createLightNode() function to create a Light Node and interact with the Waku Network: import { createLightNode } from \"@waku/sdk\"; // Create and start a Light Node const node = await createLightNode({ defaultBootstrap: true }); await node.start(); // Use the stop() function to stop a running node // await node.stop(); info When the defaultBootstrap parameter is set to true, your node will be bootstrapped using the default bootstrap method. Have a look at the Bootstrap Nodes and Discover Peers guide to learn more methods to bootstrap nodes. A node needs to know how to route messages. By default, it will use The Waku Network configuration ({ clusterId: 1, shards: [0,1,2,3,4,5,6,7] }). For most applications, it's recommended to use autosharding: // Create node with auto sharding (recommended) const node = await createLightNode({ defaultBootstrap: true, networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"], }, });","s":"Create a light node","u":"/guides/js-waku/light-send-receive","h":"#create-a-light-node","p":11},{"i":16,"t":"If your project requires a specific network configuration, you can use static sharding: // Create node with static sharding const node = await createLightNode({ defaultBootstrap: true, networkConfig: { clusterId: 1, shards: [0, 1, 2, 3], }, });","s":"Alternative network configuration","u":"/guides/js-waku/light-send-receive","h":"#alternative-network-configuration","p":11},{"i":18,"t":"Use the node.waitForPeers() function to wait for the node to connect with peers on the Waku Network: // Wait for a successful peer connection await node.waitForPeers(); The protocols parameter allows you to specify the protocols that the remote peers should have enabled: import { Protocols } from \"@waku/sdk\"; // Wait for peer connections with specific protocols await node.waitForPeers([Protocols.LightPush, Protocols.Filter]);","s":"Connect to remote peers","u":"/guides/js-waku/light-send-receive","h":"#connect-to-remote-peers","p":11},{"i":20,"t":"Choose a content topic for your application and create a message encoder and decoder: import { createEncoder, createDecoder } from \"@waku/sdk\"; // Choose a content topic const contentTopic = \"/light-guide/1/message/proto\"; // Create a message encoder and decoder const encoder = createEncoder({ contentTopic }); const decoder = createDecoder(contentTopic); The ephemeral parameter allows you to specify whether messages should NOT be stored by Store peers: const encoder = createEncoder({ contentTopic: contentTopic, // message content topic ephemeral: true, // allows messages NOT be stored on the network }); The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your encoder and decoder: // Create the network config const networkConfig = { clusterId: 3, shards: [1, 2] }; // Create encoder and decoder with custom network config const encoder = createEncoder({ contentTopic: contentTopic, pubsubTopicShardInfo: networkConfig, }); const decoder = createDecoder(contentTopic, networkConfig); info In this example, users send and receive messages on a shared content topic. However, real applications may have users broadcasting messages while others listen or only have 1:1 exchanges. Waku supports all these use cases.","s":"Choose a content topic","u":"/guides/js-waku/light-send-receive","h":"#choose-a-content-topic","p":11},{"i":22,"t":"Create your application's message structure using Protobuf's valid message fields: import protobuf from \"protobufjs\"; // Create a message structure using Protobuf const DataPacket = new protobuf.Type(\"DataPacket\") .add(new protobuf.Field(\"timestamp\", 1, \"uint64\")) .add(new protobuf.Field(\"sender\", 2, \"string\")) .add(new protobuf.Field(\"message\", 3, \"string\")); info Have a look at the Protobuf installation guide for adding the protobufjs package to your project.","s":"Create a message structure","u":"/guides/js-waku/light-send-receive","h":"#create-a-message-structure","p":11},{"i":24,"t":"To send messages over the Waku Network using the Light Push protocol, create a new message object and use the lightPush.send() function: // Create a new message object const protoMessage = DataPacket.create({ timestamp: Date.now(), sender: \"Alice\", message: \"Hello, World!\", }); // Serialise the message using Protobuf const serialisedMessage = DataPacket.encode(protoMessage).finish(); // Send the message using Light Push await node.lightPush.send(encoder, { payload: serialisedMessage, });","s":"Send messages using light push","u":"/guides/js-waku/light-send-receive","h":"#send-messages-using-light-push","p":11},{"i":26,"t":"To receive messages using the Filter protocol, create a callback function for message processing, then use the filter.subscribe() function to subscribe to a content topic: // Create the callback function const callback = (wakuMessage) => { // Check if there is a payload on the message if (!wakuMessage.payload) return; // Render the messageObj as desired in your application const messageObj = DataPacket.decode(wakuMessage.payload); console.log(messageObj); }; // Create a Filter subscription const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] }); if (error) { // handle errors if happens throw Error(error); } // Subscribe to content topics and process new messages await subscription.subscribe([decoder], callback); The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your Filter subscription: // Create the network config const networkConfig = { clusterId: 3, shards: [1, 2] }; // Create Filter subscription with custom network config const subscription = await node.filter.createSubscription(networkConfig); You can use the subscription.unsubscribe() function to stop receiving messages from a content topic: await subscription.unsubscribe([contentTopic]); Congratulations! You have successfully sent and received messages over the Waku Network using the Light Push and Filter protocols. Have a look at the light-js and light-chat examples for working demos.","s":"Receive messages using filter","u":"/guides/js-waku/light-send-receive","h":"#receive-messages-using-filter","p":11},{"i":28,"t":"Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy. tip Check out our Learn section, YouTube channel, and Blog to dive into how Waku works behind the scenes!","s":"Introduction to Waku","u":"/","h":"","p":27},{"i":30,"t":"Waku is not a blockchain but a network composed of protocols designed for Web3 communication, operating without the need for gas fees. Waku is not just for messaging applications; it supports the development of complex applications that require secure and private data transmission. Waku is not a long-term data storage network; it focuses on short, ephemeral, real-time messaging.","s":"What isn’t Waku?","u":"/","h":"#what-isnt-waku","p":27},{"i":32,"t":"Chat Messengers: Waku can be used to build private, decentralised chat apps resistant to censorship. Voting and Proposals: Exchange votes on proposals off-chain via Waku to save gas fees, then submit aggregated results to the blockchain. NFT Marketplaces: Use Waku to handle off-chain NFT bids and offers for gas savings, and to integrate social interactions like likes and comments. State Channels: Establish and maintain state channels with Waku, facilitating seamless message exchanges and updates without blockchain interaction. Signature Exchange for Multi-Signature Wallets: Allow multi-signature wallet owners to exchange signatures privately and securely through Waku. Game Mechanics Communication: Implement Waku as a communication layer for decentralised, peer-to-peer gaming, avoiding centralised infrastructure. Layer 2 Coordination (Open Market, Spam Protected Mempool): Broadcast and aggregate Layer 2 transactions via Waku to enhance privacy and scalability, reducing network load. Social Media Platforms: Beyond chat messengers, use Waku for decentralised, censorship-resistant social media platforms like news feeds and multimedia sharing. tip Looking for what to build with Waku? Discover a collection of sample ideas and use cases for inspiration, curated by our community at: https://ideas.waku.org/ and Awesome Waku.","s":"What can Waku be used for?","u":"/","h":"#what-can-waku-be-used-for","p":27},{"i":36,"t":"Waku is a decentralised, permissionless system where anyone can run a node, use the network, and contribute to its support. We recommend following the Run Nwaku with Docker Compose guide and Waku Node Operator Cheatsheet to easily run a node. tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.","s":"Run a Waku node","u":"/","h":"#run-a-waku-node","p":27},{"i":38,"t":"Waku is implemented in multiple SDKs, allowing it to integrate with different languages and address various use cases efficiently. Description Documentation @waku/sdk JavaScript/TypeScript SDK designed for browser environments JavaScript Waku SDK @waku/react React components and UI adapters designed for seamless integration with @waku/sdk Build React DApps Using @waku/react","s":"Integrate using SDKs","u":"/","h":"#integrate-using-sdks","p":27},{"i":40,"t":"Description Documentation REST API REST API interface provided by nwaku and go-waku to interact with the Waku Network Waku Node REST API Reference @waku/create-app Starter kit to bootstrap your next @waku/sdk project from various example templates Scaffold DApps Using @waku/create-app tip Explore some example apps built using Waku at https://examples.waku.org/ and view a list of projects and workshops from previous hackathons at Awesome Waku.","s":"Other integrations","u":"/","h":"#other-integrations","p":27},{"i":42,"t":"How do I install the @waku/sdk package in my project? You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started. Why should I use Protocol Buffers for my application's message structure when using Waku? Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the installation guide and Protobuf documentation to learn more. What are the steps to retrieve historical messages on Waku? Check out the Retrieve Messages Using Store Protocol guide to learn how to retrieve and filter historical messages using the Store protocol. How can I prevent Store peers from storing my messages? When creating your message encoder, you can configure the ephemeral option to prevent Store peers from keeping your messages on the Waku Network. How can I encrypt, decrypt, and sign messages in my Waku application? You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the Encrypt, Decrypt, and Sign Your Messages guide to get started. How do I integrate Waku into a React application? Waku has a specialized SDK designed for building React applications. Check out the Build React DApps Using @waku/react guide for instructions on installation and usage. How can I bootstrap and discover peers in the Waku Network for browser nodes? The JavaScript SDK has a default bootstrap method that can be configured with Static Peers and DNS Discovery. Check out the Bootstrap Nodes and Discover Peers guide for setting up peer discovery for your node. How can I integrate Waku into a NodeJS application? Though the JavaScript SDK isn't directly usable in NodeJS due to certain limitations, we recommend running nwaku in a Docker container and consuming its REST API in a NodeJS application. How can I debug my Waku DApp and check WebSocket connections? Check out the Debug Your Waku DApp and WebSocket guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets. How can I manage unexpected disconnections of my Filter subscription from Waku? We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the Manage Your Filter Subscriptions guide for a detailed explanation and step-by-step instructions. How can I send images and videos on the Waku Network? While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like IPFS and then sharing the corresponding URL via Waku. How can I connect to my own node? To manually set your own node as a starting point use Configure static peers.","s":"JavaScript SDK FAQ","u":"/guides/js-waku/faq","h":"","p":41},{"i":44,"t":"This guide provides detailed steps to bootstrap your your node using Static Peers and discover peers in the Waku Network using DNS Discovery. info If you do not set up a bootstrap node or discovery mechanism, your node will not connect to any remote peer. tip Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.","s":"Bootstrap Nodes and Discover Peers","u":"/guides/js-waku/configure-discovery","h":"","p":43},{"i":46,"t":"The @waku/sdk package provides a built-in bootstrapping method that uses DNS Discovery to locate peers from the waku v2.prod ENR tree. import { createLightNode } from \"@waku/sdk\"; // Bootstrap node using the default bootstrap method const node = await createLightNode({ defaultBootstrap: true });","s":"Default bootstrap method","u":"/guides/js-waku/configure-discovery","h":"#default-bootstrap-method","p":43},{"i":48,"t":"To set static peers, a list of multiaddr to bootstrap the node should be passed to the bootstrapPeers parameter of the createLightNode() function: import { createLightNode } from \"@waku/sdk\"; // Bootstrap node using static peers const node = await createLightNode({ bootstrapPeers: [\"[PEER MULTIADDR]\"], }); For example, consider a node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003 with WebSocket enabled: // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; // Bootstrap node using the static peers const node = await createLightNode({ bootstrapPeers: peers, }); Alternatively, you can dial a particular node like this: // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; const node = await createLightNode(); // In case nodes are using IP address and / or `ws` protocol - additional configuration is needed: /* const node = await createLightNode({ libp2p: { filterMultiaddrs: false, }, }); */ const promises = peers.map(multiaddr => node.dial(multiaddr)); await Promise.all(promises); tip For local development using a nwaku node, use a ws address instead of wss. Remember that this setup is functional only when your web server is running locally. You can check how to get multi address of your locally run node in Find node address.","s":"Configure static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-static-peers","p":43},{"i":50,"t":"To bootstrap a node using DNS Discovery, first install the @waku/dns-discovery package: npm install @waku/dns-discovery yarn add @waku/dns-discovery Then, use the wakuDnsDiscovery() function to provide a list of URLs for DNS node list in the format enrtree://@: import { createLightNode } from \"@waku/sdk\"; import { wakuDnsDiscovery } from \"@waku/dns-discovery\"; // Define DNS node list const enrTree = \"enrtree://[PUBLIC KEY]@[DOMAIN NAME]\"; // Define node requirements const NODE_REQUIREMENTS = { store: 3, lightPush: 3, filter: 3, }; // Bootstrap node using DNS Discovery const node = await createLightNode({ libp2p: { peerDiscovery: [ wakuDnsDiscovery( [enrTree], NODE_REQUIREMENTS, ), ], }, }); For example, consider a node that uses the waku v2.prod and waku v2.test ENR trees for DNS Discovery: import { enrTree } from \"@waku/dns-discovery\"; // Bootstrap node using DNS Discovery const node = await createLightNode({ libp2p: { peerDiscovery: [ wakuDnsDiscovery( [enrTree[\"PROD\"], enrTree[\"TEST\"]], NODE_REQUIREMENTS, ), ], }, });","s":"Configure DNS discovery","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery","p":43},{"i":52,"t":"You can also bootstrap your node using DNS Discovery and Static Peers simultaneously: import { createLightNode } from \"@waku/sdk\"; import { bootstrap } from \"@libp2p/bootstrap\"; import { enrTree, wakuDnsDiscovery } from \"@waku/dns-discovery\"; // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; // Define node requirements const NODE_REQUIREMENTS = { store: 3, lightPush: 3, filter: 3, }; // Bootstrap node using DNS Discovery and static peers const node = await createLightNode({ libp2p: { bootstrapPeers: peers, peerDiscovery: [ wakuDnsDiscovery( [enrTree[\"PROD\"]], NODE_REQUIREMENTS, ), ], }, });","s":"Configure DNS discovery and static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery-and-static-peers","p":43},{"i":54,"t":"You can retrieve the array of peers connected to a node using the libp2p.getPeers() function within the @waku/sdk package: import { createLightNode } from \"@waku/sdk\"; const node = await createLightNode({ defaultBootstrap: true }); await node.waitForPeers(); // Retrieve array of peers connected to the node console.log(node.libp2p.getPeers());","s":"Retrieving connected peers","u":"/guides/js-waku/configure-discovery","h":"#retrieving-connected-peers","p":43},{"i":56,"t":"This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in nwaku.","s":"Debug Your Waku DApp and WebSocket","u":"/guides/js-waku/debug-waku-dapp","h":"","p":55},{"i":58,"t":"When resolving issues in your Waku DApp, debug logs can be helpful. The @waku/sdk and libp2p packages use the debug tool to handle and show logs that help you debug effectively.","s":"Enabling debug logs","u":"/guides/js-waku/debug-waku-dapp","h":"#enabling-debug-logs","p":55},{"i":60,"t":"To enable debug logs for @waku/sdk on NodeJS, you must set the DEBUG environment variable. To only enable debug logs for @waku/sdk: export DEBUG=waku* To enable debug logs for both @waku/sdk and libp2p: export DEBUG=waku*,libp2p* To enable debug logs for all components: export DEBUG=*","s":"NodeJS environments","u":"/guides/js-waku/debug-waku-dapp","h":"#nodejs-environments","p":55},{"i":62,"t":"To view debug logs in your browser's console, modify the local storage and add the debug key. Here are guides for various modern browsers: Google Chrome Firefox JavaScript KEY VALUE DESCRIPTION debug waku* Enables @waku/sdk debug logs debug waku*,libp2p* Enables @waku/sdk and libp2p debug logs debug * Enables all debug logs","s":"Browser environments","u":"/guides/js-waku/debug-waku-dapp","h":"#browser-environments","p":55},{"i":64,"t":"Nwaku provides native support for WebSocket (ws) and WebSocket Secure (wss) protocols. These are the only transports supported for connecting to the Waku Network via browsers. It's important to note that browsers impose certain limitations on WebSocket usage: Secure Context Requirement: Insecure subroutines are prohibited in secure contexts. On an https:// webpage, only wss connections are permitted, while ws connections are not allowed. This restriction does not apply if the webpage is served locally, like on localhost or 127.0.0.1. Certificate Validation: Certificate validation rules are consistent for https and wss connections. Certificates must not be expired, issued by a recognized Certificate Authority (CA), and match the domain name, among other criteria. User Feedback on Errors: Web browsers do not display errors related to subroutines to the user. If a WebSocket connection encounters an issue, users won't be alerted directly; you'll need to check the browser's console for error details. If you encounter difficulties when connecting to a remote node using wss, follow these steps:","s":"Checking WebSocket setup","u":"/guides/js-waku/debug-waku-dapp","h":"#checking-websocket-setup","p":55},{"i":66,"t":"Attempt to connect using websocat, a tool for WebSocket interactions. Test the WebSocket port using the command: websocat -v wss://[WEBSOCKET HOST]:[WEBSOCKET PORT] For example, consider a nwaku node with the multiaddr as /dns4/nwakunode.com/tcp/1234/wss/p2p/16...: $ websocat -v wss://nwakunode.com:1234 # ... [INFO websocat::ws_client_peer] Connected to ws The connection works if the [INFO websocat::ws_client_peer] Connected to ws log entry appears. If not, check that the certificate is valid","s":"Try Websocat for connection","u":"/guides/js-waku/debug-waku-dapp","h":"#try-websocat-for-connection","p":55},{"i":68,"t":"Verify the certificate's validity by passing the -k or --insecure flag to handle invalid certificates in websocat: websocat -v -k wss://nwakunode.com:1234 If this works, the certificate's invalidity is the problem, and you should investigate the cause of the error if not, check if the WebSocket port is accessible.","s":"Check certificate validity","u":"/guides/js-waku/debug-waku-dapp","h":"#check-certificate-validity","p":55},{"i":70,"t":"Use telnet or another networking tool to verify if the WebSocket port is open and accessible. For example, if the multiaddr is /dns4/nwakunode.com/tcp/1234/wss/p2p/16..., use the command: $ telnet nwakunode.com 1234 Trying 123.123.123.123... Connected to nwakunode.com. # ... If the connection succeeds, there might be an issue with nwaku. Consider seeking support on the Waku Discord or raise an issue. If the connection fails, ensure that the WebSocket port is open.","s":"Check WebSocket port accessibility","u":"/guides/js-waku/debug-waku-dapp","h":"#check-websocket-port-accessibility","p":55},{"i":72,"t":"This guide provides detailed steps to bootstrap your next @waku/sdk project from various example templates using the @waku/create-app package.","s":"Scaffold DApps Using @waku/create-app","u":"/guides/js-waku/use-waku-create-app","h":"","p":71},{"i":74,"t":"Initialise a new @waku/sdk template using any of the following methods: NPM Yarn npx @waku/create-app [PROJECT DIRECTORY] yarn create @waku/app [PROJECT DIRECTORY] Next, select a template to initialise your app from: tip If you have previously installed @waku/create-app globally, we recommend uninstalling the package to ensure that npx always uses the latest version.","s":"Usage","u":"/guides/js-waku/use-waku-create-app","h":"#usage","p":71},{"i":76,"t":"We welcome and appreciate the contributions of templates for the @waku/create-app package. To contribute a template, please follow these steps: Create the template, ensuring it is user-friendly and thoroughly tested. Place the template in the examples folder in the js-waku-examples repository's root. Commit your changes with a detailed message and push them to your forked repository. Finally, submit a pull request to the js-waku-examples repository. Our team will carefully review and merge your submission upon approval. Waku also provides bounties to encourage community members to contribute to the network and earn rewards. To participate in the bounty program, head to https://github.com/waku-org/bounties.","s":"Contributing new templates","u":"/guides/js-waku/use-waku-create-app","h":"#contributing-new-templates","p":71},{"i":78,"t":"caution Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future. The @waku/react package provides components and UI adapters to integrate @waku/sdk into React applications effortlessly. This guide provides detailed steps for using @waku/react in your project.","s":"Build React DApps Using @waku/react","u":"/guides/js-waku/use-waku-react","h":"","p":77},{"i":80,"t":"First, set up a project using any production-grade React framework or an existing React application. For this guide, we will create a boilerplate using ViteJS: NPM Yarn npm create vite@latest [PROJECT DIRECTORY] -- --template react yarn create vite [PROJECT DIRECTORY] --template react Next, install the required packages for integrating @waku/sdk using your preferred package manager: NPM Yarn npm install @waku/react @waku/sdk protobufjs yarn add @waku/react @waku/sdk protobufjs","s":"Install the dependencies","u":"/guides/js-waku/use-waku-react","h":"#install-the-dependencies","p":77},{"i":82,"t":"In the main.jsx file, which serves as the entry point for a React app, we will set up the LightNodeProvider context provider to wrap the entire application within the Waku provider. Import the following on top of your file: src/main.jsx import { LightNodeProvider } from \"@waku/react\"; // Set the Light Node options const NODE_OPTIONS = { defaultBootstrap: true }; ReactDOM.createRoot(document.getElementById('root')).render( // Use the Light Node context provider , ) Next, create and start a Light Node using the useWaku() function within the App.jsx file: src/App.jsx import { useWaku } from \"@waku/react\"; function App() { // Create and start a Light Node const { node, error, isLoading } = useWaku(); // \"node\" is the created Light Node // \"error\" captures any error that occurs during node creation // \"isLoading\" indicates whether the node is still being created }","s":"Initialise the Waku provider","u":"/guides/js-waku/use-waku-react","h":"#initialise-the-waku-provider","p":77},{"i":84,"t":"Let's build a user interface for sending messages and viewing past messages, modify the App.jsx file with the following code block: src/App.jsx import { useState, useEffect } from 'react'; import { useWaku } from \"@waku/react\"; import { createEncoder, createDecoder } from \"@waku/sdk\"; import protobuf from 'protobufjs'; import './App.css' function App() { const [inputMessage, setInputMessage] = useState(\"\"); const [messages, setMessages] = useState([]); // Update the inputMessage state as the user input changes const handleInputChange = (e) => { setInputMessage(e.target.value); }; // Create and start a Light Node const { node, error, isLoading } = useWaku(); // Create a message encoder and decoder const contentTopic = \"/waku-react-guide/1/chat/proto\"; const encoder = createEncoder({ contentTopic }); const decoder = createDecoder(contentTopic); // Create a message structure using Protobuf const DataPacket = new protobuf.Type(\"DataPacket\") .add(new protobuf.Field(\"timestamp\", 1, \"uint64\")) .add(new protobuf.Field(\"message\", 2, \"string\")); // Send the message using Light Push const sendMessage = async () => {} return ( <>

    Waku React Demo

    {messages.map((message, index) => (
    {new Date(message.timestamp).toUTCString()}
    {message.message}
    ))}
    ) } export default App info In the code above, we also created a message encoder and decoder using the createEncoder() and createDecoder() functions, along with the application message structure with Protobuf. Next, modify the App.css file with the following code block: src/App.css #root { margin: 0 auto; } .chat-interface { display: flex; flex-direction: column; height: 100vh; border: 1px solid #ccc; } .chat-body { flex-grow: 1; overflow-y: auto; padding: 10px; } .message-text { background-color: #f1f1f1; color: #000; padding: 10px; margin-bottom: 10px; } .chat-footer { display: flex; padding: 10px; background-color: #f1f1f1; align-items: center; } #message-input { flex-grow: 1; border-radius: 4px; padding: 10px; margin-right: 10px; } .send-button { background-color: #007bff; border-radius: 4px; }","s":"Build the application interface","u":"/guides/js-waku/use-waku-react","h":"#build-the-application-interface","p":77},{"i":86,"t":"To send messages in our application, we need to modify the sendMessage() function to serialize user input into our Protobuf structure and push it to the network using the useLightPush() function: src/App.jsx import { useLightPush } from \"@waku/react\"; function App() { // Bind push method to a node and encoder const { push } = useLightPush({ node, encoder }); // Send the message using Light Push const sendMessage = async () => { if (!push || inputMessage.length === 0) return; // Create a new message object const timestamp = Date.now(); const protoMessage = DataPacket.create({ timestamp: timestamp, message: inputMessage }); // Serialise the message and push to the network const payload = DataPacket.encode(protoMessage).finish(); const { recipients, errors } = await push({ payload, timestamp }); // Check for errors if (errors.length === 0) { setInputMessage(\"\"); console.log(\"MESSAGE PUSHED\"); } else { console.log(errors); } }; }","s":"Send messages using light push","u":"/guides/js-waku/use-waku-react","h":"#send-messages-using-light-push","p":77},{"i":88,"t":"To display messages in our application, we need to use the useFilterMessages() function to create a Filter subscription, receive incoming messages, and render them in our interface: src/App.jsx import { useFilterMessages } from \"@waku/react\"; function App() { // Receive messages from Filter subscription const { messages: filterMessages } = useFilterMessages({ node, decoder }); // Render the list of messages useEffect(() => { setMessages(filterMessages.map((wakuMessage) => { if (!wakuMessage.payload) return; return DataPacket.decode(wakuMessage.payload); })); }, [filterMessages]); }","s":"Receive messages using filter","u":"/guides/js-waku/use-waku-react","h":"#receive-messages-using-filter","p":77},{"i":90,"t":"To display messages from the past, we need to retrieve them from the Store protocol using the useStoreMessages() function when our application initialises and then render them alongside newly received messages: src/App.jsx import { useFilterMessages, useStoreMessages } from \"@waku/react\"; function App() { // Query Store peers for past messages const { messages: storeMessages } = useStoreMessages({ node, decoder }); // Receive messages from Filter subscription const { messages: filterMessages } = useFilterMessages({ node, decoder }); // Render both past and new messages useEffect(() => { const allMessages = storeMessages.concat(filterMessages); setMessages(allMessages.map((wakuMessage) => { if (!wakuMessage.payload) return; return DataPacket.decode(wakuMessage.payload); })); }, [filterMessages, storeMessages]); } You can also configure a specific Store peer when creating the node, which is useful when running your own Store node or using a specific node in the network: const node = await createLightNode({ defaultBootstrap: true, store: { peer: \"/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm...\" // multiaddr or PeerId of your Store node } }); If the specified Store peer is not available, the node will fall back to using random Store peers in the network. info To explore the available Store query options, have a look at the Retrieve Messages Using Store Protocol guide. tip You have successfully integrated @waku/sdk into a React application using the @waku/react package. Have a look at the web-chat example for a working demo and the Building a Tic-Tac-Toe Game with Waku tutorial to learn more.","s":"Retrieve messages using store","u":"/guides/js-waku/use-waku-react","h":"#retrieve-messages-using-store","p":77},{"i":92,"t":"While the @waku/sdk package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using @waku/sdk in NodeJS.","s":"Run @waku/sdk in a NodeJS Application","u":"/guides/js-waku/run-waku-nodejs","h":"","p":91},{"i":95,"t":"@waku/sdk prioritises browser compatibility, avoiding NodeJS APIs for simpler bundling. This design choice enhances browser API compatibility but sacrifices NodeJS optimisation. While many browser APIs work in NodeJS, they might need better optimisation.","s":"API compatibility","u":"/guides/js-waku/run-waku-nodejs","h":"#api-compatibility","p":91},{"i":97,"t":"@waku/sdk focuses on the client side of the Request/Response protocol. We'll have to replicate all the functionalities added to nwaku to implement extra features.","s":"Protocol implementation","u":"/guides/js-waku/run-waku-nodejs","h":"#protocol-implementation","p":91},{"i":99,"t":"@waku/sdk aims to provide optimal default for the browser, striking a balance between browser and NodeJS compatibility while ensuring simplicity will add complexity.","s":"Codebase complexity","u":"/guides/js-waku/run-waku-nodejs","h":"#codebase-complexity","p":91},{"i":101,"t":"Certain features in @waku/sdk are tailored for browsers and might not translate seamlessly to NodeJS. For example, only WebSocket is supported in the browser, whereas a NodeJS application can benefit from using transport methods like TCP. @waku/sdk default peer management caters to the browser's ephemeral nature, which is different for NodeJS. This is why DNS Discovery and Peer Exchange are the default discovery mechanisms for the browser but not for NodeJS and desktop applications.","s":"Browser-specific protocols","u":"/guides/js-waku/run-waku-nodejs","h":"#browser-specific-protocols","p":91},{"i":103,"t":"Before using @waku/sdk in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend running nwaku in a Docker container and consuming its REST API.","s":"Recommendations","u":"/guides/js-waku/run-waku-nodejs","h":"#recommendations","p":91},{"i":105,"t":"There are plans to release a NodeJS package based on nwaku to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: https://github.com/waku-org/nwaku/issues/1332.","s":"Future developments","u":"/guides/js-waku/run-waku-nodejs","h":"#future-developments","p":91},{"i":107,"t":"This guide provides detailed steps to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages using Waku message payload encryption methods. info Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to freely use custom protocols or Waku message payload encryption methods.","s":"Encrypt, Decrypt, and Sign Your Messages","u":"/guides/js-waku/message-encryption","h":"","p":106},{"i":109,"t":"Install the required packages for integrating @waku/message-encryption using your preferred package manager: NPM Yarn npm install @waku/message-encryption @waku/utils yarn add @waku/message-encryption @waku/utils","s":"Installation","u":"/guides/js-waku/message-encryption","h":"#installation","p":106},{"i":111,"t":"Symmetric encryption uses a single, shared key for message encryption and decryption. Use the generateSymmetricKey() function to generate a random symmetric key: import { generateSymmetricKey } from \"@waku/message-encryption\"; // Generate a random symmetric key const symmetricKey = generateSymmetricKey(); To send encrypted messages, create a Symmetric message encoder and send the message as usual: Sender client import { createEncoder } from \"@waku/message-encryption/symmetric\"; // Create a symmetric message encoder const encoder = createEncoder({ contentTopic: contentTopic, // message content topic symKey: symmetricKey, // symmetric key for encrypting messages }); // Send the message using Light Push await node.lightPush.send(encoder, { payload }); To decrypt the messages you receive, create a symmetric message decoder and process the messages as usual: Receiver client import { createDecoder } from \"@waku/message-encryption/symmetric\"; // Create a symmetric message decoder const decoder = createDecoder(contentTopic, symmetricKey); // Receive messages from a Filter subscription await subscription.subscribe([decoder], callback); // Retrieve messages from Store peers await node.store.queryWithOrderedCallback([decoder], callback); tip The symmetric key exchange between users can happen through an out-of-band method. For example, where the key is embedded within the URL shared by a user to access a specific resource.","s":"Symmetric encryption","u":"/guides/js-waku/message-encryption","h":"#symmetric-encryption","p":106},{"i":113,"t":"ECIES encryption uses a public key for encryption and a private key for decryption. Use the generatePrivateKey() function to generate a random ECDSA private key: import { generatePrivateKey, getPublicKey } from \"@waku/message-encryption\"; // Generate a random ECDSA private key, keep secure const privateKey = generatePrivateKey(); // Generate a public key from the private key, provide to the sender const publicKey = getPublicKey(privateKey); To send encrypted messages, create an ECIES message encoder with the public key and send the message as usual: Sender client import { createEncoder } from \"@waku/message-encryption/ecies\"; // Create an ECIES message encoder const encoder = createEncoder({ contentTopic: contentTopic, // message content topic publicKey: publicKey, // ECIES public key for encrypting messages }); // Send the message using Light Push await node.lightPush.send(encoder, { payload }); To decrypt the messages you receive, create an ECIES message decoder with the private key and process the messages as usual: Receiver client import { createDecoder } from \"@waku/message-encryption/ecies\"; // Create an ECIES message decoder const decoder = createDecoder(contentTopic, privateKey); // Receive messages from a Filter subscription await subscription.subscribe([decoder], callback); // Retrieve messages from Store peers await node.store.queryWithOrderedCallback([decoder], callback); tip Users can share their public key through broadcasting or out-of-band methods, such as embedding it in a URL or sending an unencrypted message on another content topic for others to retrieve.","s":"ECIES encryption","u":"/guides/js-waku/message-encryption","h":"#ecies-encryption","p":106},{"i":115,"t":"Message signing helps in proving the authenticity of received messages. By attaching a signature to a message, you can verify its origin and integrity with absolute certainty. info Signing messages is only possible when encrypted, but if your application does not require encryption, you can generate a symmetric key through hardcoded or deterministic methods using information available to all users. The sigPrivKey parameter allows the Symmetric and ECIES message encoders to sign the message before encryption using an ECDSA private key: Alice (sender) client import { generatePrivateKey, getPublicKey } from \"@waku/message-encryption\"; import { createEncoder as createSymmetricEncoder } from \"@waku/message-encryption/symmetric\"; import { createEncoder as createECIESEncoder } from \"@waku/message-encryption/ecies\"; // Generate a random ECDSA private key for signing messages // ECIES encryption and message signing both use ECDSA keys // For this example, we'll call the sender of the message Alice const alicePrivateKey = generatePrivateKey(); const alicePublicKey = getPublicKey(alicePrivateKey); // Create a symmetric encoder that signs messages const symmetricEncoder = createSymmetricEncoder({ contentTopic: contentTopic, // message content topic symKey: symmetricKey, // symmetric key for encrypting messages sigPrivKey: alicePrivateKey, // private key for signing messages before encryption }); // Create an ECIES encoder that signs messages const ECIESEncoder = createECIESEncoder({ contentTopic: contentTopic, // message content topic publicKey: publicKey, // ECIES public key for encrypting messages sigPrivKey: alicePrivateKey, // private key for signing messages before encryption }); // Send and receive your messages as usual with Light Push and Filter await subscription.subscribe([symmetricEncoder], callback); await node.lightPush.send(symmetricEncoder, { payload }); await subscription.subscribe([ECIESEncoder], callback); await node.lightPush.send(ECIESEncoder, { payload }); You can extract the signature and its public key (signaturePublicKey) from the DecodedMessage and compare it with the expected public key or use the verifySignature() function to verify the message origin: Bob (receiver) client import { generatePrivateKey } from \"@waku/message-encryption\"; import { createEncoder } from \"@waku/message-encryption/symmetric\"; // Generate a random private key for signing messages // For this example, we'll call the receiver of the message Bob const bobPrivateKey = generatePrivateKey(); // Create an encoder that signs messages const encoder = createEncoder({ contentTopic: contentTopic, symKey: symmetricKey, sigPrivKey: bobPrivateKey, }); // Modify the callback function to verify message signature const callback = (wakuMessage) => { // Extract the message signature and public key of the signature // You can compare the signaturePublicKey with Alice public key const signature = wakuMessage.signature; const signaturePublicKey = wakuMessage.signaturePublicKey; // Verify the message was actually signed and sent by Alice // Alice's public key can be gotten from broadcasting or out-of-band methods if (wakuMessage.verifySignature(alicePublicKey)) { console.log(\"This message was signed by Alice\"); } else { console.log(\"This message was NOT signed by Alice\"); } }; await subscription.subscribe([encoder], callback);","s":"Signing encrypted messages","u":"/guides/js-waku/message-encryption","h":"#signing-encrypted-messages","p":106},{"i":117,"t":"We used randomly generated keys for encryption and message signing in the provided examples, but real-world applications require consistent keys among client restarts. Have a look at the Key Pair Handling example, which demonstrates the secure storage and retrieval of key information from local storage using Subtle Crypto. If you need a simple way to store your keys in hexadecimal format across your application, you can use the @waku/utils package: import { bytesToHex, hexToBytes } from \"@waku/utils/bytes\"; // Generate random symmetric and private keys const symmetricKey = generateSymmetricKey(); const privateKey = generatePrivateKey(); // Store the keys in hexadecimal format const symmetricKeyHex = bytesToHex(symmetricKey); const privateKeyHex = bytesToHex(privateKey); // Restore the keys from hexadecimal format const restoredSymmetricKey = hexToBytes(symmetricKeyHex); const restoredPrivateKey = hexToBytes(privateKeyHex); Congratulations! You have successfully encrypted, decrypted, and signed your messages using Symmetric and ECIES encryption methods. Have a look at the eth-pm example for a working demo.","s":"Storing encryption keys","u":"/guides/js-waku/message-encryption","h":"#storing-encryption-keys","p":106},{"i":119,"t":"This guide provides detailed steps to build a nwaku node from the source code to access the latest development version or a specific commit or release of nwaku. For your convenience, you may want to download a pre-compiled binary instead. info A minimum of 2GB of RAM is required to build nwaku. Nwaku is available for Linux and macOS, with experimental Windows support.","s":"Build Nwaku from Source","u":"/guides/nwaku/build-source","h":"","p":118},{"i":121,"t":"To build nwaku, you need the standard developer tools, including a C compiler, GNU Make, Bash, Git, Rustup, and PostgreSQL client library. Debian and Ubuntu Fedora Arch Linux MacOS (Homebrew) sudo apt-get install build-essential git libpq5 jq curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source \"$HOME/.cargo/env\" sudo dnf install @development-tools git libpq-devel which curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Using your favoured AUR helper sudo [AUR HELPER] -S base-devel git postgresql-libs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh brew install cmake git postgresql@15 rustup-init # Create a symbolic link to libpq.5.dylib in /usr/local/lib/ sudo mkdir -p /usr/local/lib/ sudo ln -s /opt/homebrew/opt/postgresql@15/lib/libpq.5.dylib /usr/local/lib/libpq.dylib","s":"Prerequisites","u":"/guides/nwaku/build-source","h":"#prerequisites","p":118},{"i":123,"t":"Get the source code from the GitHub repository. The default branch is master, the release candidate for major updates. git clone https://github.com/waku-org/nwaku cd nwaku tip You can use git tag -l to check specific version tags.","s":"Clone the repository","u":"/guides/nwaku/build-source","h":"#clone-the-repository","p":118},{"i":125,"t":"Build the nwaku binary: make wakunode2 The first make invocation updates to all Git submodules. After each git pull, run make update to keep the submodules updated in the future. make update","s":"Build the binary","u":"/guides/nwaku/build-source","h":"#build-the-binary","p":118},{"i":127,"t":"Nwaku will create the wakunode2 binary in the ./build/ directory. # Run with default configuration ./build/wakunode2 # See available command line options ./build/wakunode2 --help To learn more about running nwaku, have a look at these guides: Run a Nwaku Node Run Nwaku in a Docker Container Run Nwaku with Docker Compose Node Configuration Methods","s":"Run the binary","u":"/guides/nwaku/build-source","h":"#run-the-binary","p":118},{"i":129,"t":"Run the tests for Waku: make test Congratulations! You have successfully built the nwaku binary from the source code. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Run test suite","u":"/guides/nwaku/build-source","h":"#run-test-suite","p":118},{"i":131,"t":"This guide provides detailed steps to manage Filter subscriptions and handle node disconnections in your application. Have a look at the Send and Receive Messages Using Light Push and Filter guide for using the Light Push and Filter protocols.","s":"Manage Your Filter Subscriptions","u":"/guides/js-waku/manage-filter","h":"","p":130},{"i":133,"t":"Occasionally, your Filter subscriptions might disconnect from the Waku Network, resulting in messages not being received by your application. To manage your subscriptions, periodically ping peers to check for an active connection. The error message \"peer has no subscriptions\" indicates a failed ping due to disconnection. You can stop the pings if the disconnection/unsubscription is deliberate.","s":"Overview","u":"/guides/js-waku/manage-filter","h":"#overview","p":130},{"i":135,"t":"The @waku/sdk package provides a Filter.ping() function to ping subscriptions and check for an active connection. To begin, create a Filter subscription: // Create a Filter subscription const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] }); if (error) { // handle errors if happens throw Error(error); } // Subscribe to content topics and process new messages await subscription.subscribe([decoder], callback); Next, create a function to ping and reinitiate the subscription: const pingAndReinitiateSubscription = async () => { try { // Ping the subscription await subscription.ping(); } catch (error) { if ( // Check if the error message includes \"peer has no subscriptions\" error instanceof Error && error.message.includes(\"peer has no subscriptions\") ) { // Reinitiate the subscription if the ping fails await subscription.subscribe([decoder], callback); } else { throw error; } } }; // Periodically ping the subscription await pingAndReinitiateSubscription(); info Pings will fail when there are temporary network degradations or reachability issues. This does not mean that the underlying connection has been closed. Congratulations! You have successfully managed your Filter subscriptions to handle node disconnections in your application.","s":"Pinging filter subscriptions","u":"/guides/js-waku/manage-filter","h":"#pinging-filter-subscriptions","p":130},{"i":137,"t":"This guide provides detailed steps to configure a nwaku node to discover and connect with peers in the Waku Network. info You can configure a nwaku node to use multiple peer discovery mechanisms simultaneously.","s":"Configure Peer Discovery","u":"/guides/nwaku/configure-discovery","h":"","p":136},{"i":139,"t":"You can provide static peers to a nwaku node during startup using the staticnode configuration option. To connect to multiple peers on startup, repeat the staticnode option: ./build/wakunode2 \\ --staticnode=[PEER MULTIADDR 1] \\ --staticnode=[PEER MULTIADDR 2] For example, consider a nwaku node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003: ./build/wakunode2 \\ --staticnode=/ip4/0.0.0.0/tcp/60002/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H \\ --staticnode=/ip4/0.0.0.0/tcp/60003/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ","s":"Configure static peers","u":"/guides/nwaku/configure-discovery","h":"#configure-static-peers","p":136},{"i":141,"t":"To enable DNS Discovery in a nwaku node, use the following configuration options: dns-discovery: Enables DNS Discovery on the node (disabled by default). dns-discovery-url: URL for DNS node list in the format enrtree://@ where is the fully qualified domain name and is the base32 encoding of the compressed 32-byte public key that signed the list at that location. dns-discovery-name-server (optional): DNS name server IPs to query. You can repeat this option to provide multiple DNS name servers. ./build/wakunode2 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://[PUBLIC KEY]@[DOMAIN NAME] \\ --dns-discovery-name-server=[DNS NAME SERVER IP] info If you omit the dns-discovery-name-server option, nwaku will attempt to use the CloudFlare servers 1.1.1.1 and 1.0.0.1. For example, consider a nwaku node that enables DNS Discovery, connects to a DNS node list, and queries the IPs 8.8.8.8 and 8.8.4.4: ./build/wakunode2 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \\ --dns-discovery-name-server=8.8.8.8 \\ --dns-discovery-name-server=8.8.4.4","s":"Configure DNS discovery","u":"/guides/nwaku/configure-discovery","h":"#configure-dns-discovery","p":136},{"i":143,"t":"To enable Discv5 in a nwaku node, use the following configuration options: discv5-discovery: Enables Discv5 on the node (disabled by default). discv5-bootstrap-node: ENR for Discv5 routing table bootstrap node. You can repeat this option to provide multiple bootstrap entries. ./build/wakunode2 \\ --discv5-discovery=true \\ --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 1] \\ --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 2] For example, consider a nwaku node that enables Discv5 and bootstraps its routing table using a static ENR: ./build/wakunode2 \\ --discv5-discovery=true \\ --discv5-bootstrap-node=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw info When Discv5 is enabled and used with DNS Discovery, the nwaku node will attempt to bootstrap the Discv5 routing table by extracting ENRs from peers discovered through DNS.","s":"Configure Discv5","u":"/guides/nwaku/configure-discovery","h":"#configure-discv5","p":136},{"i":145,"t":"To enable Peer Exchange in a nwaku node, use the following configuration options: peer-exchange: Enables Peer Exchange on the node as a responder (disabled by default). peer-exchange-node (optional): Multiaddr for bootstrap node with the peer exchange protocol enabled. ./build/wakunode2 \\ --peer-exchange=true \\ --peer-exchange-node=[PEER MULTIADDR WITH EXCHANGE ENABLED] For example, consider two nwaku nodes configured as a server (peer exchange responder node) and client (node using peer exchange) on the same local host (IP: 0.0.0.0): Server: Nwaku Node with Peer Exchange Enabled ./build/wakunode2 --peer-exchange=true Client: Nwaku Node Bootstrapping with Peer Exchange ./build/wakunode2 \\ --tcp-port=30305 \\ --ports-shift=1 \\ --peer-exchange-node=/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmLCe6zVqCS6KMqqRbbhyoJjfYZGr1Q3thTSbyKzibQkFR info nwaku provides a relay-peer-exchange option via libp2p for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.","s":"Configure peer exchange","u":"/guides/nwaku/configure-discovery","h":"#configure-peer-exchange","p":136},{"i":147,"t":"This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the Store protocol.","s":"Retrieve Messages Using Store Protocol","u":"/guides/js-waku/store-retrieve-messages","h":"","p":146},{"i":149,"t":"Use the createLightNode() function to create a Light Node and interact with the Waku Network: import { createLightNode } from \"@waku/sdk\"; // Create and start a Light Node const node = await createLightNode({ defaultBootstrap: true }); await node.start();","s":"Create a light node","u":"/guides/js-waku/store-retrieve-messages","h":"#create-a-light-node","p":146},{"i":151,"t":"Use the node.waitForPeers() method to wait for the node to connect with Store peers: import { Protocols } from \"@waku/sdk\"; // Wait for a successful peer connection await node.waitForPeers([Protocols.Store]); You can also specify a dedicated Store peer to use for queries when creating the node. This is particularly useful when running your own Store node or when you want to use a specific Store node in the network: const node = await createLightNode({ defaultBootstrap: true, store: { peer: \"/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm...\" // multiaddr or PeerId of your Store node } }); If the specified Store peer is not available, the node will fall back to using random Store peers in the network.","s":"Connect to store peers","u":"/guides/js-waku/store-retrieve-messages","h":"#connect-to-store-peers","p":146},{"i":153,"t":"Choose a content topic for filtering the messages to retrieve and create a message decoder: import { createDecoder } from \"@waku/sdk\"; // Choose a content topic const contentTopic = \"/store-guide/1/message/proto\"; // Create a message decoder const decoder = createDecoder(contentTopic);","s":"Choose a content topic","u":"/guides/js-waku/store-retrieve-messages","h":"#choose-a-content-topic","p":146},{"i":155,"t":"@waku/sdk provides the queryWithOrderedCallback() and queryGenerator() functions for querying Store nodes and retrieving historical or missed messages. The responses from Store nodes are paginated and require you to process each page sequentially.","s":"Retrieve messages","u":"/guides/js-waku/store-retrieve-messages","h":"#retrieve-messages","p":146},{"i":157,"t":"The store.queryWithOrderedCallback() function provides a straightforward method for querying Store nodes and processing messages in chronological order through a callback function. It accepts these parameters: decoders: List of decoders that specify the content topic to query for and their message decryption methods. callback: The callback function for processing the retrieved messages. options (optional): Query options to filter the retrieved messages. // Create the callback function const callback = (wakuMessage) => { // Render the message/payload in your application console.log(wakuMessage); }; // Query the Store peer await node.store.queryWithOrderedCallback([decoder], callback); info The queryWithOrderedCallback() function always returns the most recent messages in a page first.","s":"queryWithOrderedCallback","u":"/guides/js-waku/store-retrieve-messages","h":"#querywithorderedcallback","p":146},{"i":159,"t":"The store.queryGenerator() function provides more control and flexibility over processing messages retrieved from Store nodes through Async Generators. It accepts these parameters: decoders: List of decoders that specify the content topic to query for and their message decryption methods. options (optional): Query options to filter the retrieved messages. // Create the store query const storeQuery = node.store.queryGenerator([decoder]); // Process the messages for await (const messagesPromises of storeQuery) { // Fulfil the messages promises const messages = await Promise.all( messagesPromises.map(async (p) => { const msg = await p; // Render the message/payload in your application console.log(msg); }) ); } info The queryGenerator() function always returns the oldest messages in a page first.","s":"queryGenerator","u":"/guides/js-waku/store-retrieve-messages","h":"#querygenerator","p":146},{"i":162,"t":"The pageDirection option specifies the direction in which pages are retrieved: BACKWARD (default): Most recent page first. FORWARD: Oldest page first. import { PageDirection } from \"@waku/sdk\"; // Retrieve recent messages first const queryOptions = { pageDirection: PageDirection.BACKWARD, }; // Retrieve oldest messages first const queryOptions = { pageDirection: PageDirection.FORWARD, }; // Query the Store peer with options await node.store.queryWithOrderedCallback([decoder], callback, options); const storeQuery = node.store.queryGenerator([decoder, options]);","s":"pageDirection","u":"/guides/js-waku/store-retrieve-messages","h":"#pagedirection","p":146},{"i":164,"t":"The cursor option specifies the starting index for retrieving messages. For example, consider a query that retrieves the first page messages and then continues with the next page: import { waku } from \"@waku/sdk\"; // Create the callback function const messages = []; const callback = (wakuMessage) => { messages.push(wakuMessage); // Return \"true\" to stop retrieving pages // Here, it retrieves only the first page return true; }; // Retrieve the first page of messages // This retrieves all the messages if \"return true\" is not present await node.store.queryWithOrderedCallback([decoder], callback); // Create the cursor const lastMessage = messages[messages.length - 1]; const cursor = await waku.createCursor(lastMessage); // Retrieve the next page of messages // The message at the cursor index is excluded from the result await node.store.queryWithOrderedCallback([decoder], callback, { cursor: cursor, }); console.log(messages); info If you omit the cursor option, the query will start from the beginning or end of the history, depending on the page direction.","s":"cursor","u":"/guides/js-waku/store-retrieve-messages","h":"#cursor","p":146},{"i":166,"t":"The timeFilter option specifies a time frame to retrieve messages from. For example, consider a query that retrieves messages from the previous week: // Get the time frame const endTime = new Date(); const startTime = new Date(); startTime.setDate(endTime.getDate() - 7); // Retrieve a week of messages const queryOptions = { timeFilter: { startTime, endTime, }, }; // Query the Store peer with options await node.store.queryWithOrderedCallback([decoder], callback, options); const storeQuery = node.store.queryGenerator([decoder, options]); info The timeFilter option significantly reduces message retrieval performance. To optimise it, consider resuming message retrieval using a cursor that starts from the last seen message. Congratulations! You have successfully retrieved and filtered historical messages on a Light Node using the Store protocol. Have a look at the store-js and store-reactjs-chat examples for working demos.","s":"timeFilter","u":"/guides/js-waku/store-retrieve-messages","h":"#timefilter","p":146},{"i":168,"t":"Here are the available node configuration options, along with their default values and descriptions:","s":"Node Configuration Options","u":"/guides/nwaku/config-options","h":"","p":167},{"i":170,"t":"Name Default Value Description config-file Loads configuration from a TOML file (cmd-line parameters take precedence) protected-shard newSeq[ProtectedShard](0) Shards and its public keys to be used for message validation, shard:pubkey. Argument may be repeated","s":"Application-level config","u":"/guides/nwaku/config-options","h":"#application-level-config","p":167},{"i":172,"t":"Name Default Value Description log-level logging.LogLevel.INFO Sets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL log-format logging.LogFormat.TEXT Specifies what kind of logs should be written to stdout. Supported formats: TEXT, JSON","s":"Log config","u":"/guides/nwaku/config-options","h":"#log-config","p":167},{"i":174,"t":"Name Default Value Description cluster-id 0 Cluster id that the node is running in. Node in a different cluster id is disconnected agent-string nwaku Node agent string which is used as identifier in network nodekey P2P node private key as 64-char hex string listen-address defaultListenAddress() Listening address for LibP2P (and Discovery v5, if enabled) traffic tcp-port 60000 TCP listening port ports-shift 0 Add a shift to all port numbers nat any Specify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip: ext-multiaddr External multiaddresses to advertise to the network. Argument may be repeated ext-multiaddr-only false Only announce external multiaddresses max-connections 50 Maximum allowed number of libp2p connections relay-service-ratio \"60:40\" This percentage ratio represents the relay peers to service peers. For example, 60:40, tells that 60% of the max-connections will be used for relay protocol and the other 40% of max-connections will be reserved for other service protocols (e.g., filter, lightpush, store, metadata, etc.) peer-store-capacity Maximum stored peers in the peerstore peer-persistence false Enable peer persistence","s":"General node config","u":"/guides/nwaku/config-options","h":"#general-node-config","p":167},{"i":176,"t":"Name Default Value Description dns-addrs true Enable resolution of dnsaddr, dns4 or dns6 multiaddrs dns-addrs-name-server [\"1.1.1.1\", \"1.0.0.1\"] DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated dns4-domain-name The domain name resolving to the node's public IPv4 address","s":"DNS addrs config","u":"/guides/nwaku/config-options","h":"#dns-addrs-config","p":167},{"i":178,"t":"Name Default Value Description relay true Enable relay protocol: true|false relay-peer-exchange false Enable gossipsub peer exchange in relay protocol: true|false rln-relay false Enable spam protection through rln-relay: true|false rln-relay-cred-path The path for persisting rln-relay credential rln-relay-membership-index The index of the onchain commitment to use rln-relay-dynamic false Enable waku-rln-relay with on-chain dynamic group management: true|false rln-relay-id-key Rln relay identity secret key as a Hex string rln-relay-id-commitment-key Rln relay identity commitment key as a Hex string rln-relay-eth-client-address ws://localhost:8540/ WebSocket address of an Ethereum testnet client e.g., ws://localhost:8540/ rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet rln-relay-eth-private-key Private key for broadcasting transactions execute false Runs the registration function on-chain. By default, a dry-run will occur rln-relay-cred-password Password for encrypting RLN credentials rln-relay-tree-path Path to the RLN merkle tree sled db (https://github.com/spacejam/sled) rln-relay-bandwidth-threshold 0 # to maintain backwards compatibility Message rate in bytes/sec after which verification of proofs should happen staticnode Peer multiaddr to directly connect with. Argument may be repeated keep-alive false Enable keep-alive for idle connections: true|false pubsub-topic Default pubsub topic to subscribe to. Argument may be repeated. Deprecated! Please use shard and/or content-topic instead shard Shard to subscribe to. Argument may be repeated num-shards-in-network Number of shards in the network. Used to map content topics to shards when using autosharding content-topic Default content topic to subscribe to. Argument may be repeated reliability false Enable experimental reliability protocol true|false","s":"Relay config","u":"/guides/nwaku/config-options","h":"#relay-config","p":167},{"i":180,"t":"Name Default Value Description store false Enable/disable waku store protocol storenode Peer multiaddress to query for storage store-message-retention-policy time:172800 Message store retention policy. Time retention policy: time:. Capacity retention policy: capacity:. Size retention policy: size:. Set to none to disable store-message-db-url sqlite://store.sqlite3 The database connection URL for persistent storage store-message-db-vacuum false Enable database vacuuming at start. Only supported by SQLite database engine store-message-db-migration true Enable database migration at start","s":"Store and message store config","u":"/guides/nwaku/config-options","h":"#store-and-message-store-config","p":167},{"i":182,"t":"Name Default Value Description filter false Enable filter protocol: true|false filternode Peer multiaddr to request content filtering of messages filter-subscription-timeout 300 # 5 minutes Timeout for filter subscription without ping or refresh it, in seconds. Only for v2 filter protocol filter-max-peers-to-serve 1000 Maximum number of peers to serve at a time. Only for v2 filter protocol filter-max-criteria 1000 Maximum number of pubsub and content topic combinations per peer at a time. Only for v2 filter protocol","s":"Filter config","u":"/guides/nwaku/config-options","h":"#filter-config","p":167},{"i":184,"t":"Name Default Value Description lightpush false Enable lightpush protocol: true|false lightpushnode Peer multiaddr to request lightpush of published messages","s":"Light push config","u":"/guides/nwaku/config-options","h":"#light-push-config","p":167},{"i":186,"t":"Name Default Value Description rest false Enable Waku REST HTTP server: true|false rest-address 127.0.0.1 Listening address of the REST HTTP server rest-port 8645 Listening port of the REST HTTP server rest-relay-cache-capacity 30 Capacity of the Relay REST API message cache rest-admin false Enable access to REST HTTP Admin API: true|false rest-allow-origin Allow cross-origin requests from the specified origin. When using the REST API in a browser, specify the origin host to get a valid response from the node REST HTTP server. This option may be repeated and can contain wildcards (?,*) for defining URLs and ports such as localhost:*, 127.0.0.1:8080, or allow any website with *","s":"REST HTTP config","u":"/guides/nwaku/config-options","h":"#rest-http-config","p":167},{"i":188,"t":"Name Default Value Description metrics-server false Enable the metrics server: true|false metrics-server-address 127.0.0.1 Listening address of the metrics server metrics-server-port 8008 Listening HTTP port of the metrics server metrics-logging true Enable metrics logging: true|false","s":"Metrics config","u":"/guides/nwaku/config-options","h":"#metrics-config","p":167},{"i":190,"t":"Name Default Value Description dns-discovery false Enable discovering nodes via DNS dns-discovery-url URL for DNS node list in format 'enrtree://@' dns-discovery-name-server [\"1.1.1.1\", \"1.0.0.1\"] DNS name server IPs to query. Argument may be repeated rendezvous true Enable waku rendezvous discovery server","s":"DNS discovery config","u":"/guides/nwaku/config-options","h":"#dns-discovery-config","p":167},{"i":192,"t":"Name Default Value Description discv5-discovery false Enable discovering nodes via Node Discovery v5 discv5-udp-port 9000 Listening UDP port for Node Discovery v5 discv5-bootstrap-node Text-encoded ENR for bootstrap node. Used when connecting to the network. Argument may be repeated discv5-enr-auto-update false Discovery can automatically update its ENR with the IP address discv5-table-ip-limit 10 Maximum amount of nodes with the same IP in discv5 routing tables discv5-bucket-ip-limit 2 Maximum amount of nodes with the same IP in discv5 routing table buckets discv5-bits-per-hop 1 Kademlia's b variable, increase for less hops per lookup","s":"Discv5 config","u":"/guides/nwaku/config-options","h":"#discv5-config","p":167},{"i":194,"t":"Name Default Value Description peer-exchange false Enable waku peer exchange protocol (responder side): true|false peer-exchange-node Peer multiaddr to send peer exchange requests to. (enables peer exchange protocol requester side)","s":"Waku peer exchange config","u":"/guides/nwaku/config-options","h":"#waku-peer-exchange-config","p":167},{"i":196,"t":"Name Default Value Description websocket-support false Enable websocket: true|false websocket-port 8000 WebSocket listening port websocket-secure-support false Enable secure websocket: true|false websocket-secure-key-path Secure websocket key path: '/path/to/key.txt' websocket-secure-cert-path Secure websocket Certificate path: '/path/to/cert.txt'","s":"WebSocket config","u":"/guides/nwaku/config-options","h":"#websocket-config","p":167},{"i":198,"t":"Name Default Value Description rate-limit This is a repeatable option. Each can describe a specific rate limit configuration for a particular protocol. Formatted as::volume/period - if protocol is not given, settings will be taken as default for un-set protocols. Ex: 80/2s -Supported protocols are: lightpush|filter|px|store|storev2|storev3 -volume must be an integer value, representing number of requests over the period of time allowed. -period\\ must be an integer with defined unit as one of h|m|s|ms - storev2 and storev3 takes precedence over store which can easy set both store protocols at once. - In case of multiple set of the same protocol limit, last one will take place. - if config is not set, - which is the default - means unlimited requests are allowed. -filter has a bit different approach. It has a default setting applied if not overridden. Rate limit setting for filter will be applied per subscriber-peers, not globally - it must be considered when changing the setting. Examples: --rate-limit=\"100/1s\" - default for all protocols if not set otherwise. --rate-limit=\"lightpush:0/0s\" - lightpush protocol will not be rate-limited. --rate-limit=\"store:130/1500ms\" - both store-v3 and store-v2 will apply 130 request per each 1500ms separately. --rate-limit=\"px:10/1h\" PeerExchange will serve only 10 requests every hour. --rate-limit=\"filter:8/5m\" - will allow 8 subs/unsubs/ping requests for each subscriber within every 5 min. tip To configure your node using the provided configuration options, have a look at the Node Configuration Methods guide.","s":"Non-relay, request-response protocol DOS protection configuration","u":"/guides/nwaku/config-options","h":"#non-relay-request-response-protocol-dos-protection-configuration","p":167},{"i":200,"t":"info When starting the node, nwaku will display all the public listening and discovery addresses at the INFO log level. You can find the addresses of a running node through its logs or by calling the Get node info endpoint of the REST API.","s":"Find Your Node Address","u":"/guides/nwaku/find-node-address","h":"","p":199},{"i":202,"t":"Look for the log entry that begins with Listening on, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 Listening on topics=\"waku node\" tid=1623445 file=waku_node.nim:922 full=[/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn][/ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn] # Listening TCP transport address /ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn # Listening WebSocket address /ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn","s":"Listening addresses","u":"/guides/nwaku/find-node-address","h":"#listening-addresses","p":199},{"i":204,"t":"A nwaku node can encode its addressing information in an Ethereum Node Record (ENR).","s":"Discoverable ENR addresses","u":"/guides/nwaku/find-node-address","h":"#discoverable-enr-addresses","p":199},{"i":206,"t":"Look for the log entry that begins with DNS: discoverable ENR, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 DNS: discoverable ENR topics=\"waku node\" tid=1623445 file=waku_node.nim:923 enr=enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB # ENR the node addresses are encoded in enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB","s":"ENR for DNS discovery","u":"/guides/nwaku/find-node-address","h":"#enr-for-dns-discovery","p":199},{"i":208,"t":"Look for the log entry that begins with Discv5: discoverable ENR, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 Discv5: discoverable ENR topics=\"waku node\" tid=1623445 file=waku_node.nim:924 enr=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw # ENR the node addresses are encoded in enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw Congratulations! You have successfully found the listening and discoverable addresses for your nwaku node. Have a look at the Configure Peer Discovery guide to learn how to discover and connect with peers in the network.","s":"ENR for Discv5","u":"/guides/nwaku/find-node-address","h":"#enr-for-discv5","p":199},{"i":210,"t":"How can I run a Waku node? Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source. What are the system requirements for running a node? We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient. How can I interact with my running nwaku node? You can interact with a running nwaku node using the REST API interface or the JavaScript Waku SDK. How can I view the logs of a nwaku node running in Docker? To check your node logs in Docker, use the command: \"docker-compose logs -f nwaku\" What configuration methods are available for nwaku nodes? You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the Node Configuration Methods guide to understand their usage and priority. How can I configure my nwaku node before running? Check out the Node Configuration Options guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the Node Configuration Examples guide. What peer discovery mechanisms are available for nwaku nodes, and how can I configure them? You can configure peer discovery for nwaku nodes through options like Static Peers, DNS Discovery, DiscV5, and Peer Exchange. Check out the Configure Peer Discovery guide for setting up your node. How do I find my nwaku node's addresses for peer discovery? The node listening and ENR addresses can be found through the node's logs and REST API. Check out the Find the node addresses section to understand how to locate your node addresses.","s":"Nwaku FAQ","u":"/guides/nwaku/faq","h":"","p":209},{"i":212,"t":"nwaku-compose is a ready-to-use Docker Compose setup that configures the following automatically: nwaku node running Relay and Store protocols with RLN enabled. Simple frontend to interact with the node and Waku network to send and receive messages. Grafana metrics dashboard for advanced users and node operators to monitor the node.","s":"Run Nwaku with Docker Compose","u":"/guides/nwaku/run-docker-compose","h":"","p":211},{"i":214,"t":"tip Check out the Waku Node Operator Cheatsheet to learn how to easily run, monitor, and interact with a node.","s":"Video tutorial","u":"/guides/nwaku/run-docker-compose","h":"#video-tutorial","p":211},{"i":216,"t":"Git or GitHub Desktop Docker and Docker Compose Ethereum Sepolia HTTPS Endpoint Wallet with Sepolia Ethereum (~0.6 Sepolia ETH) A password to protect your RLN membership info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Prerequisites","u":"/guides/nwaku/run-docker-compose","h":"#prerequisites","p":211},{"i":218,"t":"git clone https://github.com/waku-org/nwaku-compose cd nwaku-compose","s":"Clone the repository","u":"/guides/nwaku/run-docker-compose","h":"#clone-the-repository","p":211},{"i":220,"t":"Docker Compose reads the .env file from the filesystem. You can use .env.example as a template to provide the configuration values. The recommended process for working with .env files is to duplicate .env.example, rename it as .env, and then make the necessary value edits. cp .env.example .env ${EDITOR} .env caution Ensure that you do NOT include any secrets in the .env.example file, as it could accidentally be shared in your Git repository.","s":"Configure the setup","u":"/guides/nwaku/run-docker-compose","h":"#configure-the-setup","p":211},{"i":222,"t":"The RLN membership is your access key to The Waku Network. Its registration is done on-chain, allowing your nwaku node to send messages decentralised and privately, respecting some rate limits. Other peers won't relay messages that exceed the rate limit. This command registers your membership and saves it in the keystore/keystore.json file. You should have Docker running at this step: ./register_rln.sh tip If you only want to relay traffic without sending messages to the network, you don't need to register for RLN membership.","s":"Register for RLN membership","u":"/guides/nwaku/run-docker-compose","h":"#register-for-rln-membership","p":211},{"i":224,"t":"Launch all the processes: nwaku node, database for storing messages, and Grafana for metrics with the following command. Your RLN membership is loaded into nwaku under the hood: docker-compose up -d View the logs of the node to confirm that it is running correctly: docker-compose logs -f nwaku","s":"Run the node","u":"/guides/nwaku/run-docker-compose","h":"#run-the-node","p":211},{"i":226,"t":"Visit http://localhost:3000/d/yns_4vFVk/nwaku-monitoring to view your node metrics in real time. tip To access Grafana from outside your machine, remove 127.0.0.1 and open the port. Consider setting up a password for Grafana to ensure security.","s":"Monitor the node","u":"/guides/nwaku/run-docker-compose","h":"#monitor-the-node","p":211},{"i":228,"t":"Your nwaku node provides a REST API on port 8645 for interacting with it: # Get nwaku version curl --location 'http://127.0.0.1:8645/debug/v1/version' # Get nwaku info curl --location 'http://127.0.0.1:8645/debug/v1/info' Send a message to a contentTopic, which all subscribers will receive. Please note that the payload is encoded in base64. curl --location 'http://127.0.0.1:8645/relay/v1/auto/messages' \\ --header 'Content-Type: application/json' \\ --data '{ \"payload\": \"'$(echo -n \"Hello Waku Network - from Anonymous User\" | base64)'\", \"contentTopic\": \"/my-app/2/chatroom-1/proto\" }' Retrieve messages sent to a contentTopic. Please note that this query can be made to any Store node within the network: curl --location 'http://127.0.0.1:8645/store/v1/messages?contentTopics=%2Fmy-app%2F2%2Fchatroom-1%2Fproto&pageSize=50&ascending=true' \\ --header 'Accept: application/json' tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully started a nwaku node with RLN enabled using Docker Compose. Have a look at the Node Configuration Examples and Advanced Configuration guides to learn how to configure nwaku for different use cases.","s":"Interact with the node","u":"/guides/nwaku/run-docker-compose","h":"#interact-with-the-node","p":211},{"i":230,"t":"Waku nodes can be configured using a combination of the following methods: Command line options and flags Environment variables TOML configuration files (currently the only supported format) Default values info Take note of the precedence order: Each configuration method overrides the one below it (e.g., command line options override environment variables and configuration files).","s":"Node Configuration Methods","u":"/guides/nwaku/config-methods","h":"","p":229},{"i":232,"t":"Node configuration is primarily done using command line options, which override other methods. Specify configuration options by providing them in this format after the binary name: ./build/wakunode2 --tcp-port=65000 When running your node with Docker, provide the command line options after the image name in this format: docker run wakuorg/nwaku --tcp-port=65000","s":"Command line options","u":"/guides/nwaku/config-methods","h":"#command-line-options","p":229},{"i":234,"t":"Nodes can be configured using environment variables by prefixing the variable name with WAKUNODE2_ and using the configuration option in SCREAMING_SNAKE_CASE format. To set the tcp-port configuration, the wakunode2 binary should be called in this format: WAKUNODE2_TCP_PORT=65000 ./build/wakunode2 When running your node with Docker, start the node using the -e command option: docker run -e \"WAKUNODE2_TCP_PORT=65000\" wakuorg/nwaku info This is the second configuration method in order of precedence. Command Line Options override environment variables.","s":"Environment variables","u":"/guides/nwaku/config-methods","h":"#environment-variables","p":229},{"i":236,"t":"Nodes can be configured using a configuration file following the TOML format: TOML Config File log-level = \"DEBUG\" tcp-port = 65000 topic = [\"/waku/2/default-waku/proto\"] metrics-logging = false The config-file configuration option lets you specify the configuration file path: ./build/wakunode2 --config-file=[TOML CONFIGURATION FILE] You can also specify the configuration file via environment variables: # Using environment variables WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE] ./build/wakunode2 # Using environment variables with Docker docker run -e \"WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE]\" wakuorg/nwaku info This is the third configuration method in order of precedence. Command Line Options and Environment Variables override configuration files.","s":"Configuration files","u":"/guides/nwaku/config-methods","h":"#configuration-files","p":229},{"i":238,"t":"The default configuration is used when no other options are specified. By default, a nwaku node does the following: Generate a new Node Key and PeerID. Listen for incoming libp2p connections on the default TCP port (60000). Subscribe to the default Pub/Sub topic (/waku/2/default-waku/proto). Enable the Relay protocol for relaying messages. Enable the Store protocol as a client, allowing it to query peers for historical messages but not store any message itself. To see the default values of all configuration options, run wakunode2 --help: ./build/wakunode2 --help tip To explore the available node configuration options, have a look at the Node Configuration Options guide.","s":"Default configuration values","u":"/guides/nwaku/config-methods","h":"#default-configuration-values","p":229},{"i":240,"t":"Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more. Pros​ Decentralised with random sampling from a global view. Continuously researched and improved. Cons​ Requires lots of connections and involves frequent churn. Relies on User Datagram Protocol (UDP), which is not supported in web browsers.","s":"Discv5","u":"/learn/concepts/discv5","h":"","p":239},{"i":242,"t":"DNS Discovery protocol is executed. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR. Bob returns Carol's, David's and Erin's ENRs to Alice. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR. Carol returns Frank's, Gwen's and Harry's ENRs to Alice. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details. Alice selects to dial David, Frank and Gwen. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.","s":"Overview","u":"/learn/concepts/discv5","h":"#overview","p":239},{"i":244,"t":"Content Topics are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages (Relay or Filter) and retrieving historical messages (Store) that meet specific filtering criteria. Have a look at the WAKU2-TOPICS specification to learn more.","s":"Content Topics","u":"/learn/concepts/content-topics","h":"","p":243},{"i":246,"t":"Here is the recommended format for content topics: /{application-name}/{version}/{content-topic-name}/{encoding} application-name: This is the unique name of your decentralised application (DApp) to prevent conflicts with other DApps. version: Typically starting at 1, this field helps track breaking changes in your messages. content-topic-name: The specific name of the content topic used for filtering. encoding: The message encoding or serialisation format, with Protocol Buffers (proto) being the recommended choice. For example, if your DApp is called SuperCrypto and it allows users to receive notifications and send private messages, you can consider using the following content topics: /supercrypto/1/notification/proto /supercrypto/1/private-message/proto tip While you can choose any encoding format for your Content Topic, we highly recommend using Protocol Buffers (proto) because of its efficiency. Choosing a lightweight format ensures optimal performance of your DApp.","s":"Naming format","u":"/learn/concepts/content-topics","h":"#naming-format","p":243},{"i":248,"t":"When choosing a content topic, it is essential to consider the privacy implications. Here are several factors to keep in mind:","s":"Naming considerations","u":"/learn/concepts/content-topics","h":"#naming-considerations","p":243},{"i":250,"t":"The Filter, Store, and Light Push protocols share content topics with peers, allowing them to link IP and content topic interests. The Relay protocol, using GossipSub, provides recipient anonymity, which can be compromised if the content topic exposes user information. For example, instead of using Personally Identifiable Information (PII) in the content topic (e.g., a public key), you can create buckets (e.g., based on the first 4 bytes of the public key hash). info Waku is developing privacy-preserving features like Anonymous Filter Subscription for the Filter protocol and Anonymous Query for the Store protocol to hide content topics from potential adversaries.","s":"Protocols disclose content topics to peers","u":"/learn/concepts/content-topics","h":"#protocols-disclose-content-topics-to-peers","p":243},{"i":252,"t":"You can increase k-anonymity within the network by using a unified content topic across the entire application or targeting specific features like notifications or private messages, allowing multiple users to share it. We recommend switching functionality using the Protocol Buffer (proto) message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy. For example: message NotificationPayload { ... } message FeatureAbcPayload { ... } // By default, all fields in protobuf are optional so only field may be encoded at a time message Payload { NotificationPayload notification = 1; FeatureAbcPayload feature_abc = 2; }","s":"Increasing k-anonymity preserves user anonymity","u":"/learn/concepts/content-topics","h":"#increasing-k-anonymity-preserves-user-anonymity","p":243},{"i":254,"t":"When an application uses a single content topic, all users using request/response protocols (Filter, Store) receive all its messages. For heavy traffic, developers can create buckets by hashing a unique identifier (e.g., recipient's ID, public key, or app domain topic) and adding its first byte to the content topic, like /my-app/0/a/proto. This approach divides traffic into multiple topics, reducing the messages users have to download. Developers can add more first bytes to the content topic over time to improve efficiency and privacy based on messages and user needs. info The k value of k-anonymity equals the number of IDs for which the first character of the hash is \"a\". For example, using a single content topic in an application with 10,000 users results in k = 10,000. However, using the hash ID's first character, k reduces to 10,000 / 16 = 625.","s":"Creating buckets help in distributing traffic","u":"/learn/concepts/content-topics","h":"#creating-buckets-help-in-distributing-traffic","p":243},{"i":256,"t":"This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.","s":"Run Nwaku in a Docker Container","u":"/guides/nwaku/run-docker","h":"","p":255},{"i":258,"t":"Ensure Docker is installed on your system using the appropriate instructions provided in the Docker documentation. info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Prerequisites","u":"/guides/nwaku/run-docker","h":"#prerequisites","p":255},{"i":260,"t":"The Nwaku Docker images are available on the Docker Hub public registry under the wakuorg/nwaku repository. Please visit wakuorg/nwaku/tags for images of specific releases.","s":"Get Docker image","u":"/guides/nwaku/run-docker","h":"#get-docker-image","p":255},{"i":262,"t":"You can also build the Docker image locally: # Clone the repository git clone --recurse-submodules https://github.com/waku-org/nwaku cd nwaku # Build docker image make docker-image","s":"Build Docker image","u":"/guides/nwaku/run-docker","h":"#build-docker-image","p":255},{"i":264,"t":"Run nwaku in a new Docker container: docker run [OPTIONS] [IMAGE] [ARG...] OPTIONS are your selected Docker options IMAGE is the image and tag you pulled from the registry or built locally ARG... is the list of arguments for your node configuration options Run nwaku using the most typical configuration: docker run -i -t -p 60000:60000 -p 9000:9000/udp wakuorg/nwaku:v0.32.0 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \\ --discv5-discovery=true \\ --nat=extip:[YOUR PUBLIC IP] # or, if you are behind a nat: --nat=any To find your public IP, use: dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'\"' '{ print $2}' For more detailed information about all possible configurations, please run docker run -t wakuorg/nwaku:v0.32.0 --help info Note that running a node in The Waku Network (--cluster-id=1) requires a special set of configurations and therefore, it is recommended to run in this case with docker compose info We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers). tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully built and started a nwaku node in a Docker container. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Run Docker container","u":"/guides/nwaku/run-docker","h":"#run-docker-container","p":255},{"i":266,"t":"Nwaku is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the protocols they want to support based on their needs, motivations, and available resources. This guide provides detailed steps to download, build, configure, and connect a nwaku node to the Waku Network. It also includes interacting with the node and finding its addresses. info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Run a Nwaku Node","u":"/guides/nwaku/run-node","h":"","p":265},{"i":268,"t":"To run a node, you must have the nwaku binary. Nwaku provides multiple options for running a node: Run nwaku in Docker (recommended)​ We recommend using Docker Compose to run a node because it's the simplest and fastest way to configure and run one: Description Documentation Docker Compose Run a nwaku node with Docker Compose Run Nwaku with Docker Compose Docker Container Run a nwaku node in a Docker Container Run Nwaku in a Docker Container Download the binary​ Description Documentation Precompiled Binary Download a precompiled binary of the nwaku node Download Nwaku Binary Nightly Release Try the latest nwaku updates without compiling the binaries Download Nightly Release Build the binary​ Description Documentation Build from Source Build the node from the nwaku source code Build Nwaku from Source tip You can run the nwaku binaries and Docker images on cloud service providers like Google Cloud, Microsoft Azure, Amazon Web Services, and DigitalOcean.","s":"Get the node binary","u":"/guides/nwaku/run-node","h":"#get-the-node-binary","p":265},{"i":270,"t":"Once you have gotten the nwaku binary, run it using the default configuration: # Run the Docker Compose docker-compose up -d # Run the standalone binary ./build/wakunode2 tip To learn how to customise the configuration of a nwaku node, have a look at the Node Configuration Methods and Node Configuration Examples guides.","s":"Run the node","u":"/guides/nwaku/run-node","h":"#run-the-node","p":265},{"i":272,"t":"To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms: Description Documentation Static Peers Configure the bootstrap nodes that nwaku should establish connections upon startup Configure Static Peers DNS Discovery Enable nwaku to bootstrap nodes using the DNS Discovery mechanism Configure DNS Discovery Discv5 Enable nwaku to discover peers using the Discv5 mechanism Configure Discv5 Peer Exchange Enable Peer Exchange protocol for light nodes to request peers from your nwaku node Configure Peer Exchange tip We suggest configuring WebSocket transport for your node to enable support and serving of browser peers using @waku/sdk.","s":"Bootstrap the node","u":"/guides/nwaku/run-node","h":"#bootstrap-the-node","p":265},{"i":274,"t":"You can interact with a running nwaku node through the REST API, such as querying the node information using the Get node info endpoint: Request Response curl --location 'http://127.0.0.1:8645/debug/v1/info' \\ --header 'Accept: application/json' { \"listenAddresses\": [ \"/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmUbPquFQqje3jiqoB5YoiUbBya59NB4qqEzeiTNGHeA6w\" ], \"enrUri\": \"enr:-Iu4QCQZXZDb_JsYmLoYor0F5E_95HbIywgO_wgx2rIdDbmCJZkTzmlCr0wmMzV47lgik_tVwww5mIng90Ris83TisMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQPszztG-Ev52ZB7tk0jF8s6Md4KvyY_rhzNZokaaB_ABIN0Y3CC6mCFd2FrdTIB\" } info The listenAddresses field stores the node's listening addresses, while the enrUri field stores the discoverable ENR URI for peer discovery.","s":"Interact with the node","u":"/guides/nwaku/run-node","h":"#interact-with-the-node","p":265},{"i":276,"t":"You can check the health status of the node by calling the Get node health status endpoint of the REST API: Request Response curl --location 'http://127.0.0.1:8645/health' \\ --header 'Accept: text/plain' Node is healthy tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully started, configured, and connected a nwaku node to the Waku Network. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Check the node health status","u":"/guides/nwaku/run-node","h":"#check-the-node-health-status","p":265},{"i":278,"t":"This guide provides detailed steps to configure a nwaku node for different use cases.","s":"Node Configuration Examples","u":"/guides/nwaku/configure-nwaku","h":"","p":277},{"i":280,"t":"To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms: Configure Static Peers Configure DNS Discovery Configure Discv5 Configure Peer Exchange","s":"Connect to other peers","u":"/guides/nwaku/configure-nwaku","h":"#connect-to-other-peers","p":277},{"i":282,"t":"You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node using the dns4-domain-name option. This allows the node's publicly announced multiaddrs to use the /dns4 scheme. ./build/wakunode2 --dns4-domain-name=[DOMAIN NAME] For example, consider the domain name nwakunode.com, which resolves to a nwaku node: ./build/wakunode2 --dns4-domain-name=nwakunode.com Browser nodes can only connect to nodes with a domain name and secure WebSocket (wss) configured. These nodes will generate a discoverable ENR with /wss as the multiaddr and /dns4 as the domain name. This configuration is essential for verifying domain certificates when establishing a secure connection. info This example describes configuring a domain name that resolves to your node's IP address and is unrelated to DNS Discovery. tip You can use the domain name provided by your cloud provider to configure the domain name for your node.","s":"Configure a domain name","u":"/guides/nwaku/configure-nwaku","h":"#configure-a-domain-name","p":277},{"i":284,"t":"To enable message caching and serve them to network peers, enable the Store protocol using the following configuration options: store: Enables storing messages to serve them to peers (disabled by default). store-message-retention-policy: Retention policy of the store node (how long messages will be stored). Three different retention policies are supported: Time retention policy: time: (e.g., time:14400) Capacity retention policy: capacity: (e.g, capacity:25000) Size retention policy: size: (e.g, size:512MB or size:10GB) Set this option to none to disable the retention policy. If you omit this option, it will default to time:172800 (48 hours). store-message-db-url: Database connection URL for storing messages in the SQLAlchemy database URL format. Setting this option to an empty string will instruct the node to use the fallback in-memory message store. If you omit this option, it will default to sqlite://store.sqlite3. ./build/wakunode2 \\ --store=true \\ --store-message-retention-policy=[MESSAGE RETENTION POLICY] \\ --store-message-db-url=[DATABASE CONNECTION URL] For example, consider a nwaku node that is configured to be a Store protocol and retain messages received in the last 21600 seconds (6 hours): ./build/wakunode2 \\ --store=true \\ --store-message-retention-policy=time:21600 \\ --store-message-db-url=sqlite://store.sqlite3 You can configure nwaku as a Store client using the storenode option. This allows the node to query peers for historical messages but not store any message itself. ./build/wakunode2 --storenode=[STORE PEER MULTIADDR] For example, consider a nwaku node that does not store messages but can query peers for historical messages: ./build/wakunode2 --storenode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV","s":"Configure store protocol and message store","u":"/guides/nwaku/configure-nwaku","h":"#configure-store-protocol-and-message-store","p":277},{"i":286,"t":"Nodes generate new random key pairs at each boot, leading to different multiaddrs. To maintain consistency, you can use a pre-generated private key with the nodekey option: ./build/wakunode2 --nodekey=[NODE PRIVATE KEY] This option takes a Secp256k1 private key (64-char hex string). On Linux, you can use the OpenSSL rand command for a pseudo-random 32-byte hex string: openssl rand -hex 32 # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 On Linux, you can create a reusable key file using OpenSSL. To get the 32-byte private key in hex format, use the ecparam command and some standard utilities: # Generate key file openssl ecparam -genkey -name secp256k1 -out my_private_key.pem # Extract 32-byte private key openssl ec -in my_private_key.pem -outform DER | tail -c +8 | head -c 32| xxd -p -c 32 # read EC key # writing EC key # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 You can use the output 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 as a Node Key for nwaku: ./build/wakunode2 --nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8","s":"Generate and configure a node key","u":"/guides/nwaku/configure-nwaku","h":"#generate-and-configure-a-node-key","p":277},{"i":288,"t":"WebSocket is the only transport method browser nodes support using @waku/sdk. To enable WebSocket in nwaku to serve browser peers, use the following configuration options: websocket-support: Enables WebSocket (ws) on the node (disabled by default). websocket-port (optional): WebSocket listening port. If you omit this option, it will default to 8000. websocket-secure-support: Enables Secure WebSocket (wss) on the node (disabled by default). websocket-secure-key-path: Secure WebSocket key path. websocket-secure-cert-path: Secure WebSocket Certificate path. ./build/wakunode2 \\ --websocket-support=true \\ --websocket-port=[WEBSOCKET LISTENING PORT] \\ --websocket-secure-support=true \\ --websocket-secure-key-path=[SECURE WEBSOCKET KEY PATH] \\ --websocket-secure-cert-path=[SECURE WEBSOCKET CERTIFICATE PATH] For example, consider a nwaku node that enabled WebSocket (unencrypted) for local testing on port 8001: ./build/wakunode2 \\ --websocket-support=true \\ --websocket-port=8001 Consider a nwaku node that enabled Secure WebSocket (encrypted) using its key and certificate (privkey.pem and fullchain.pem) on port 8002: ./build/wakunode2 \\ --websocket-secure-support=true \\ --websocket-secure-key-path=privkey.pem \\ --websocket-secure-cert-path=fullchain.pem \\ --websocket-port=8002 tip You can use Let's Encrypt or Certbot to generate a valid certificate for your nwaku node: sudo certbot certonly -d ","s":"Configure WebSocket transport","u":"/guides/nwaku/configure-nwaku","h":"#configure-websocket-transport","p":277},{"i":290,"t":"Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options: rest: Enables the REST API server on the node (disabled by default). rest-address (optional): Listening address of the REST API server. If you omit this option, it will default to 127.0.0.1. rest-port (optional): Listening port of the REST API server. If you omit this option, it will default to 8645. rest-relay-cache-capacity (optional): Capacity of the Relay REST API message cache. If you omit this option, it will default to 30. rest-admin (optional): Enables access to REST admin API (disabled by default). rest-private (optional): Enables access to REST private API (disabled by default). ./build/wakunode2 \\ --rest=true \\ --rest-address=[REST SERVER LISTENING ADDRESS] \\ --rest-port=[REST SERVER LISTENING PORT] \\ --rest-relay-cache-capacity=[MESSAGE CACHE CAPACITY] \\ --rest-admin=[true|false] \\ --rest-private=[true|false] For example, consider a nwaku node that enabled the REST API server on port 9000: ./build/wakunode2 \\ --rest=true \\ --rest-port=9000 \\ --rest-address=127.0.0.1 Consider a nwaku node that enabled the REST admin and private API with a message cache capacity of 100: ./build/wakunode2 \\ --rest=true \\ --rest-admin=true \\ --rest-private=true \\ --rest-relay-cache-capacity=100","s":"Configure REST API server","u":"/guides/nwaku/configure-nwaku","h":"#configure-rest-api-server","p":277},{"i":292,"t":"To enable nwaku to serve light clients, enable the Filter protocol using filter option: ./build/wakunode2 --filter=true You can configure nwaku as a Filter client using the filternode and filter-timeout options. This allows the node to request content filtering of messages from peers. ./build/wakunode2 \\ --filternode=[FILTER PEER MULTIADDR] \\ --filter-timeout=[FILTER PEER TIMEOUT] For example, consider a nwaku node that requests content filtering of messages from peers with a timeout of 21600 seconds (6 hours): ./build/wakunode2 \\ --filternode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV \\ --filter-timeout=21600 info If you omit the filter-timeout option, it will default to 14400 seconds (4 hours).","s":"Configure filter protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-filter-protocol","p":277},{"i":294,"t":"To enable nwaku to serve light clients, enable the Light Push protocol using the lightpush option: ./build/wakunode2 --lightpush=true You can configure nwaku as a Light Push client using the lightpushnode option. This allows the node to request lightpush of published messages from peers. ./build/wakunode2 --lightpushnode=[LIGHT PUSH PEER MULTIADDR] For example, consider a nwaku node that requests lightpush of published messages from peers: ./build/wakunode2 --lightpushnode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV","s":"Configure light push protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-light-push-protocol","p":277},{"i":296,"t":"When using a reverse proxy server for SSL/TLS encryption, you only want to announce the proxy server's IP or domain. Nwaku provides the ext-multiaddr-only and ext-multiaddr options for specifying published multiaddr: ./build/wakunode2 \\ --ext-multiaddr-only=true \\ --ext-multiaddr=[MULTIADDR TO PUBLISH] info The ext-multiaddr-only option takes precedence over the nat and dns4-domain-name options, using the values provided by the ext-multiaddr option instead.","s":"Run nwaku behind a reverse proxy","u":"/guides/nwaku/configure-nwaku","h":"#run-nwaku-behind-a-reverse-proxy","p":277},{"i":298,"t":"Built upon the foundation of EIP-1459: Node Discovery via DNS, DNS Discovery allows the retrieval of an ENR tree from the TXT field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr. This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralisation. Pros​ Low latency, low resource requirements. Easy bootstrap list updates by modifying the domain name, eliminating the need for code changes. Ability to reference a larger list of nodes by including other domain names in the code or ENR tree. Cons​ Vulnerable to censorship: Domain names can be blocked or restricted. Limited scalability: The listed nodes are at risk of being overwhelmed by receiving all queries. Also, operators must provide their ENR to the domain owner for listing.","s":"DNS Discovery","u":"/learn/concepts/dns-discovery","h":"","p":297},{"i":300,"t":"DNS lookup query to retrieve TXT data stored on example.com domain. enrtree-root is returned, and the value of e is the enr-root, the root hash of the node subtree. DNS lookup query to retrieve TXT data stored on .example.com domain. enrtree-branch is returned; this tree contains hashes of node subtrees. DNS lookup query to retrieve TXT data stored on DU...VQ.example.com domain, the first leaf of enrtree-branch. enr record is returned. Returned value is decoded, and peer connection details such as IP address and port are learned.","s":"Overview","u":"/learn/concepts/dns-discovery","h":"#overview","p":297},{"i":302,"t":"If you are currently using Nwaku, running an old version and want to upgrade your node, please follow the below migration instructions for each target release newer than your current running version in ascending order. For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0","s":"Upgrade Instructions","u":"/guides/nwaku/upgrade-instructions","h":"","p":301},{"i":304,"t":"v0.32.0 The --protected-topic CLI config was deprecated and is replaced by the new --protected-shard configuration. Instead of configuring topic:public_key you will now need to configure shard:public_key For example, if you used to run your node with --protected-topic=\"waku/2/rs/3/4:your_public_key\" you will need to replace this configuration for --protected-shard=\"4:your_public_key\" v0.31.0 Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: /waku/2/rs// In order to migrate your existing application, you need to: Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using js-waku, the configured pubsub topics follow the static sharding format defined above. When running a node with the --pubsub-topic CLI flag, the values provided should comply with the static sharding format. If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period.","s":"Target Releases","u":"/guides/nwaku/upgrade-instructions","h":"#target-releases","p":301},{"i":306,"t":"Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or run a node. Pros​ Low latency. Low resource requirements. Cons​ Vulnerable to censorship: Node IPs can be blocked or restricted. Limited scalability: The number of nodes is fixed and cannot easily be expanded. Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.","s":"Static Peers","u":"/learn/concepts/static-peers","h":"","p":305},{"i":308,"t":"Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node.","s":"Overview","u":"/learn/concepts/static-peers","h":"#overview","p":305},{"i":310,"t":"The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on Discv5. The peer exchange protocol enables light nodes to request peers from other nodes within the network. info Peer Exchange enables requesting random peers from other network nodes without revealing information about their connectivity or neighbourhood. Pros​ Low resource requirements. Decentralised with random sampling of nodes from a global view using Discv5. Cons​ Decreased anonymity. Imposes additional load on responder nodes.","s":"Peer Exchange","u":"/learn/concepts/peer-exchange","h":"","p":309},{"i":312,"t":"DNS Discovery protocol is executed. Alice retrieves Bob's websocket multiaddr from DNS Server. Alice dials Bob using libp2p protocols. Alice executes a Peer Exchange query to Bob. Bob returns Carol's and David's ENR to Alice. Alice decodes ENRs and extracts Carol's and David's websocket multiaddrs. Alice dials Carol and David. Alice can now drop the connection with Bob (bootstrap node); Alice has 2 connections to the Waku Network.","s":"Overview","u":"/learn/concepts/peer-exchange","h":"#overview","p":309},{"i":314,"t":"Transports help move data packets across a network by establishing connections between peers. They define the rules and protocols to ensure efficient network transmission, routing, and data delivery. Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended: TCP: By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes. Secure WebSocket: In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely. Other protocols like WebRTC, WebTransport, and QUIC have been researched and studied for potential integration. info Waku ensures compatibility and improved communication capabilities by following these recommended transports.","s":"Transports","u":"/learn/concepts/transports","h":"","p":313},{"i":316,"t":"Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.","s":"Network Domains","u":"/learn/concepts/network-domains","h":"","p":315},{"i":318,"t":"Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as Discv5 and Peer Exchange. These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.","s":"Discovery domain","u":"/learn/concepts/network-domains","h":"#discovery-domain","p":315},{"i":320,"t":"GossipSub derives its name from the practice within Pub/Sub networks where peers gossip about the messages they have encountered, thus establishing a message delivery network. Waku employs gossiping through Relay to distribute messages across the network. Additionally, Waku introduces RLN Relay, an experimental mechanism that combines privacy preservation and economic spam protection.","s":"Gossip domain","u":"/learn/concepts/network-domains","h":"#gossip-domain","p":315},{"i":322,"t":"Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes. Store enables the retrieval of historical messages. Filter efficiently retrieves a subset of messages to conserve bandwidth. Light Push facilitates message publication for nodes with limited bandwidth and short connection windows.","s":"Request/response domain","u":"/learn/concepts/network-domains","h":"#requestresponse-domain","p":315},{"i":324,"t":"Here is a diagram illustrating the interaction between different protocols within the Waku Network. The Pub/Sub topic pubtopic1 serves as a means of routing messages (the network employs a default Pub/Sub topic) and indicates that it is subscribed to messages on that topic for a relay. Node D serves as a Store and is responsible for storing messages. Node A creates a WakuMessage msg1 with Content Topic contentTopic1. Node F requests to get messages filtered by Pub/Sub topic pubtopic1 and Content Topic contentTopic1. Node D subscribes F to this filter and will forward messages that match that filter in the future. Node A publishes msg1 on pubtopic1. The message is sent from Node A to Node B and then forwarded to Node D. Node D, upon receiving msg1, stores the message for future retrieval by other nodes and forwards it to Node C. Node D also pushes msg1 to Node F, informing it about the arrival of a new message. At a later time, Node E comes online and requests messages matching pubtopic1 and contentTopic1 from Node D. Node D responds with msg1 and potentially other messages that match the query.","s":"Overview of protocol interaction","u":"/learn/concepts/network-domains","h":"#overview-of-protocol-interaction","p":315},{"i":326,"t":"When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping. Once a connection is established, the node must actively seek out additional peers to have: Sufficient peers in the Relay mesh: The goal is to have at least 6 peers in the mesh. This ensures a robust network where messages can be efficiently relayed. Reserve peers for backup: It is essential to have a surplus of peers available as reserves. These reserves are backups when the current peers become overloaded or experience unexpected disconnections. Peers with specific capabilities: The node seeks out peers with specific capabilities, such as Store, Light Push, or Filter. This allows for targeted interactions and enhanced functionality based on the desired capabilities. Waku supports multiple peer discovery mechanisms, such as: Configuring Static Peers Peer Discovery via DNS Discv5 Ambient Peer Discovery Peer Exchange","s":"Peer Discovery","u":"/learn/concepts/peer-discovery","h":"","p":325},{"i":328,"t":"Waku's protocol layers offer different services and security considerations, shaping the overall security of Waku. We document the security models in the RFCs of the protocols, aiming to provide transparent and open-source references. This empowers Waku users to understand each protocol's security guarantees and limitations. Some of Waku's security features include the following:","s":"Security Features","u":"/learn/security-features","h":"","p":327},{"i":330,"t":"Waku ensures pseudonymity across its protocol layers, using libp2p PeerID as identifiers instead of disclosing true identities. However, it is important to note that pseudonymity does not provide complete anonymity. Actions performed under the same pseudonym (PeerID) can be linked, leading to the potential re-identification of the actual actor.","s":"Pseudonymity","u":"/learn/security-features","h":"#pseudonymity","p":327},{"i":332,"t":"Anonymity means an adversary cannot connect an actor to their actions or data. To achieve anonymity, avoiding linking activities with actors or their Personally Identifiable Information (PII) is crucial. In Waku, the following anonymity features are provided: Publisher-message unlinkability: Ensures that the publisher of messages in the Relay protocol cannot be linked to their published messages. Subscriber-topic unlinkability: Ensures that the subscriber of topics in the Relay protocol cannot be linked to the topics they have subscribed to.","s":"Anonymity/unlinkability","u":"/learn/security-features","h":"#anonymityunlinkability","p":327},{"i":334,"t":"The spam protection feature in Relay ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the scoring mechanism of GossipSub v1.1. Peers assign scores to their connections based on their behaviour and remove peers with low scores. Ongoing research is being conducted, including developing Rate Limit Nullifiers (RLN), which can be explored further at: https://github.com/vacp2p/research/issues/148.","s":"Spam protection","u":"/learn/security-features","h":"#spam-protection","p":327},{"i":336,"t":"Confidentiality in Waku is ensured through data encryption, while integrity and authenticity are achieved through digital signatures. These security measures are available in Waku Message (version 1) and Noise protocols, which offer payload encryption and encrypted signatures. Noise protocols also facilitate secure channel negotiation within the Waku Network.","s":"Data confidentiality, integrity, and authenticity","u":"/learn/security-features","h":"#data-confidentiality-integrity-and-authenticity","p":327},{"i":338,"t":"In protocols like Store and Filter, where direct connections are required for the designated service, anonymity or unlinkability is not guaranteed. This is because nodes use their PeerID to identify each other during direct connections, making the service obtained in these protocols linkable to the beneficiary's PeerID, considered Personally Identifiable Information (PII). In Store, the queried node can link the querying node's PeerID to the topics being queried. Similarly, in Filter, a node can link the PeerID of a light node to its content filter.","s":"Security considerations","u":"/learn/security-features","h":"#security-considerations","p":327},{"i":340,"t":"The Waku Network is a shared p2p messaging network that is open-access, useful for generalized messaging, privacy-preserving, scalable and accessible even to resource-restricted devices. Some of the most prominent features include: DoS/spam protection with privacy-preserving Rate-Limiting Nullifiers. Scalability by sharding traffic into 8 pubsub topics. Automatic shard selection based on content topic. Services for resource-restricted nodes, including historical message storage and retrieval, filtering, etc. tip If you want to learn more about the Waku Network, The Waku Network: Technical Overview article provides an in-depth look under the hood.","s":"The Waku Network","u":"/learn/waku-network","h":"","p":339},{"i":342,"t":"Applications or projects can build decentralized communication components on this network, gaining from the fault-tolerance of shared infrastructure, the out-of-the-box censorship resistance of a p2p network and the privacy-preservation of Waku protocols. Supporters of public goods and decentralized infrastructure can run their nodes to support the network. We are also working on incentivisation vectors to encourage more node operators to provide services to the network.","s":"Why join the Waku network?","u":"/learn/waku-network","h":"#why-join-the-waku-network","p":339},{"i":344,"t":"Ethereum Sepolia HTTPS endpoint, which can be yours or from a third party. Have a look at the Access a Sepolia Node Using Infura guide for a free Infura option. This node is used to interact with the on-chain RLN membership contract. Wallet with Sepolia Ethereum (less than 0.1 Sepolia ETH). Have a look at the Create a Sepolia Ethereum Wallet and Obtain Sepolia Ethereum from Faucet guides to get a Sepolia wallet and fund it with some Sepolia Ethereum. This wallet is required to register RLN membership, which is essential for publishing on the network.","s":"Prerequisites","u":"/learn/waku-network","h":"#prerequisites","p":339},{"i":346,"t":"Have a look at the Run Nwaku with Docker Compose guide for instructions on running a nwaku node in the Waku Network. Use the Sepolia node and wallet you obtained above. info The public Waku Network replaces the previous experimental shared routing layer based on a default pubsub topic (/waku/2/default-waku/proto). If your project currently uses this or any other shared pubsub topics, we encourage you to migrate to the public Waku Network with built-in DoS protection, scalability, and reasonable bandwidth usage.","s":"Running a Waku network node","u":"/learn/waku-network","h":"#running-a-waku-network-node","p":339},{"i":348,"t":"How can I start building my application using Waku? Check out the Getting Started guide to explore our numerous SDKs and learn how to run a Waku node. Does messaging on Waku require a gas fee? No, sending and receiving messages on Waku involves no gas fee. What encryption does Waku use? Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely. Where does Waku store the messages? Waku's Store protocol is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using Codex for long-term storage. Can Waku only be used for wallet-to-wallet messaging? No, Waku is flexible and imposes no specific rules on identifiers. How does Waku differ from IPFS? Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons. What are Rate Limiting Nullifiers (RLN)? Rate Limiting Nullifier is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which Relay nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame. How to start a Waku node? Follow the README instructions at nwaku-compose.","s":"Waku FAQ","u":"/learn/faq","h":"","p":347},{"i":350,"t":"On this page A migration guide for refactoring your application code from Waku v0.026 to v0.027.","s":"Migrating to Waku v0.027","u":"/migrations/js-waku/migration_v0.026_0.027","h":"","p":349},{"i":352,"t":"Migrating to Waku v0.027 Table of Contents Network Configuration Default Network Configuration Static Sharding Auto Sharding Pubsub Topic Configuration Removed APIs Type Changes Internal/Private Utility Function Changes","s":"Table of Contents","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#table-of-contents","p":349},{"i":354,"t":"The way to configure network settings for a Waku node has been simplified. The new NetworkConfig type only allows for Static Sharding or Auto Sharding.","s":"Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#network-configuration","p":349},{"i":356,"t":"If no network configuration is provided when creating a Light Node, The Waku Network configuration will be used by default. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode(); // This would use the default pubsub topic, that was, `/waku/2/default-waku/proto` After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode(); // This will now use The Waku Network configuration by default: // { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }","s":"Default Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#default-network-configuration","p":349},{"i":358,"t":"Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, shards: [0, 1, 2, 3] } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, shards: [0, 1, 2, 3] } });","s":"Static Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#static-sharding","p":349},{"i":360,"t":"Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"] } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"] } });","s":"Auto Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#auto-sharding","p":349},{"i":362,"t":"Named pubsub topics are no longer supported. You must use either Static Sharding or Auto Sharding to configure pubsub topics. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ pubsubTopics: [\"/waku/2/default-waku/proto\"] }); After Use Static Sharding: import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, shards: [0, 1, 2, 3, 4, 5, 6, 7] } }); Or use Auto Sharding: import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/your-app/1/default/proto\"] } });","s":"Pubsub Topic Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#pubsub-topic-configuration","p":349},{"i":364,"t":"The following APIs have been removed: ApplicationInfo type: Use string for application and version in NetworkConfig instead. shardInfo option in createLightNode: Use networkConfig instead. pubsubTopics option in createLightNode: Use networkConfig with Static Sharding or Auto Sharding instead. If you were using ApplicationInfo before, you should now use ContentTopicInfo (Auto Sharding) and specify your application and version in the content topic string. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, application: \"my-app\", version: \"1\" } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/default/proto\"] } });","s":"Removed APIs","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#removed-apis","p":349},{"i":366,"t":"ShardingParams has been removed. Use NetworkConfig instead. NetworkConfig is now defined as StaticSharding | AutoSharding. StaticSharding is equivalent to the previous ShardInfo. AutoSharding is equivalent to the previous ContentTopicInfo.","s":"Type Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#type-changes","p":349},{"i":368,"t":"Several utility functions have been updated or added: ensureShardingConfigured has been removed. Use derivePubsubTopicsFromNetworkConfig instead. New function derivePubsubTopicsFromNetworkConfig has been added to derive pubsub topics from the network configuration. shardInfoToPubsubTopics now accepts Partial instead of Partial. New function pubsubTopicsToShardInfo has been added to convert pubsub topics to a ShardInfo object. If you were using any of these utility functions directly, you'll need to update your code accordingly. Before import { ensureShardingConfigured } from \"@waku/utils\"; const result = ensureShardingConfigured(shardInfo); After import { derivePubsubTopicsFromNetworkConfig } from \"@waku/utils\"; const pubsubTopics = derivePubsubTopicsFromNetworkConfig(networkConfig); Note: The default NetworkConfig for The Waku Network is now { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }.","s":"Internal/Private Utility Function Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#internalprivate-utility-function-changes","p":349},{"i":370,"t":"Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:","s":"Protocols","u":"/learn/concepts/protocols","h":"","p":369},{"i":372,"t":"Relay protocol employs a Pub/Sub architecture to facilitate the sending and receiving of messages among peers. It extends the libp2p GossipSub protocol to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship. It also scales the Waku Network to accommodate many nodes efficiently.","s":"Relay","u":"/learn/concepts/protocols","h":"#relay","p":369},{"i":374,"t":"RLN Relay protocol extends the Relay protocol by using Rate Limit Nullifiers (RLN) to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the RLN Relay blog post.","s":"RLN relay","u":"/learn/concepts/protocols","h":"#rln-relay","p":369},{"i":376,"t":"Filter protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network, particularly tailored for devices with limited bandwidth. info Filter protocol helps optimise bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.","s":"Filter","u":"/learn/concepts/protocols","h":"#filter","p":369},{"i":378,"t":"Store protocol is responsible for storing messages relayed in the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection. info Using Relay and Filter protocols is recommended when a node is online, as Store does not guarantee data availability. The Store protocol is suitable for retrieving messages when connecting to the network, like when a DApp starts.","s":"Store","u":"/learn/concepts/protocols","h":"#store","p":369},{"i":380,"t":"Light Push is a Request/Response protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgement when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the Relay network. info While the Light Push protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.","s":"Light push","u":"/learn/concepts/protocols","h":"#light-push","p":369},{"i":382,"t":"Waku Message specifies the structure and format of messages in the Waku Network. It includes the following attributes: content_topic attribute for content-based filtering. payload attribute containing the message data payload to be sent. meta attribute for conveying additional details to various protocols for application-specific processing. timestamp attribute signifying the time at which the message was generated by its sender. ephemeral attribute specifying whether the network should not store the message.","s":"Waku message","u":"/learn/concepts/protocols","h":"#waku-message","p":369},{"i":384,"t":"The following features are currently experimental and under research and initial implementation:","s":"Research","u":"/learn/research","h":"","p":383},{"i":386,"t":"We aim to enable an incentivised spam protection technique to enhance Relay by using Rate Limit Nullifiers (RLN). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the RLN Relay blog post. We have prepared a PoC implementation of this method in JS: https://examples.waku.org/rln-js/","s":"Economic spam resistance","u":"/learn/research","h":"#economic-spam-resistance","p":383},{"i":388,"t":"Denial of service signifies the case where an adversarial peer exhausts another node's service capacity (e.g., by making a large number of requests) and makes it unavailable to the rest of the system. RnD on DoS attack mitigation can be tracked from here: https://github.com/vacp2p/research/issues/148. In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivising the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in Store and Filter to protect against DoS attacks. Additionally, along with RLN, this gives node operators who provide a useful service to the network an incentive to perform that service. Read more here: https://vac.dev/building-privacy-protecting-infrastructure You can also read more about the ongoing challenges the Waku team is working on here: https://github.com/waku-org/research","s":"Prevention of denial of service (DoS) and node incentivisation","u":"/learn/research","h":"#prevention-of-denial-of-service-dos-and-node-incentivisation","p":383},{"i":390,"t":"Since Waku is built on top of libp2p, they share a lot of concepts and terminologies between them. However, there are key differences between them that are worth noting.","s":"Comparing Waku and libp2p","u":"/learn/waku-vs-libp2p","h":"","p":389},{"i":392,"t":"Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to run a node to support and decentralise the network.","s":"Waku as a service network","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-service-network","p":389},{"i":394,"t":"Waku includes various protocols covering the following domains: privacy preservation, censorship resistance, and platform agnosticism, allowing it to run on any platform or environment. Waku provides out-of-the-box protocols to enable mostly offline/resource-limited devices, Store/Light Push/Filter caters to those use cases.","s":"Waku as a turnkey solution","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-turnkey-solution","p":389},{"i":396,"t":"libp2p does not have strong spam protection guarantees, RLN Relay is a protocol being developed by the Waku team towards this goal.","s":"Economic spam protection","u":"/learn/waku-vs-libp2p","h":"#economic-spam-protection","p":389},{"i":399,"t":"The Nim Waku Node, nwaku, has the capability of archiving messages until a certain limit (e.g. 30 days) so that other nodes can synchronize their message history throughout the Store protocol. The nwaku originally used SQLite to archive messages but this has an impact on the node. Nwaku is single-threaded and therefore, any SQLite operation impacts the performance of other protocols, like Relay. Therefore, the Postgres adoption is needed to enhance that. https://github.com/waku-org/nwaku/issues/1888","s":"Introduction","u":"/research/benchmarks/postgres-adoption","h":"#introduction","p":397},{"i":401,"t":"Simply pass the next parameter to nwaku --store-message-db-url=\"postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/postgres Notice that this only makes sense if the nwaku has the Store protocol mounted --store=true (start the nwaku node with --help parameter for more Store options)","s":"How to connect the nwaku to Postgres","u":"/research/benchmarks/postgres-adoption","h":"#how-to-connect-the-nwaku-to-postgres","p":397},{"i":403,"t":"https://github.com/waku-org/nwaku-compose https://github.com/waku-org/test-waku-query","s":"Examples of nwaku using Postgres","u":"/research/benchmarks/postgres-adoption","h":"#examples-of-nwaku-using-postgres","p":397},{"i":405,"t":"The following repository was created as a tool to stress and compare performance between nwaku+Postgres and nwaku+SQLite: https://github.com/waku-org/test-waku-query","s":"Stress tests","u":"/research/benchmarks/postgres-adoption","h":"#stress-tests","p":397},{"i":407,"t":"Maximum insert throughput​ Scenario 1 node subscribed to pubsubtopic ‘x’ and the Store protocol mounted. ‘n’ nodes connected to the “store” node, and publishing messages simultaneously to pubsubtopic ‘x’. All nodes running locally in a Dell Latitude 7640. Each published message is fixed, 1.4 KB: publish_one_client.sh The next script is used to simulate multiple nodes publishing messages: publish_multiple_clients.sh Sought goal Find out the maximum number of concurrent inserts that both SQLite and Postgres could support, and check whether Postgres behaves better than SQLite or not. Conclusion Messages are lost after a certain threshold, and this message loss is due to limitations in the Relay protocol (GossipSub - libp2p.) For example, if we set 30 nodes publishing 300 messages simultaneously, then 8997 rows were stored and not the expected 9000, in both SQLite and Postgres databases. The reason why few messages were lost is because the message rate was higher than the relay protocol can support, and therefore a few messages were not stored. In this example, the test took 38.8’’, and therefore, the node was receiving 232 msgs/sec, which is much more than the normal rate a node will work with, which is ~10 msgs/sec (rate extracted from Grafana’s stats for the status.prod fleet.) As a conclusion, the bottleneck is within the Relay protocol itself and not the underlying databases. Or, in other words, both SQLite and Postgres can support the maximum insert rate a Waku node will operate within normal conditions.","s":"Insert test results","u":"/research/benchmarks/postgres-adoption","h":"#insert-test-results","p":397},{"i":409,"t":"In this case, we are comparing Store performance by means of Rest service. Scenario nodea: one _nwaku node with Store and connected to Postgres. nodeb: one _nwaku node with Store and using SQLite. Both Postgres and SQLite contain +1 million rows. nodec: one _nwaku node with REST enabled and acting as a Store client for node_a. noded: one _nwaku node with REST enabled and acting as a Store client for node_b. With jmeter, 10 users make REST Store requests concurrently to each of the “rest” nodes (node_c and node_d.) All nwaku nodes running statusteam/nim-waku:v0.19.0 This is the jmeter project used. Results With this, the node_b brings a higher throughput than the node_a and that indicates that the node that uses SQLite performs better. The following shows the measures taken by jmeter with regard to the REST requests.","s":"Query test results (jmeter)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-jmeter","p":397},{"i":411,"t":"In this test suite, only the Store protocol is being analyzed, i.e. without REST. For that, a go-waku node is used, which acts as Store client. On the other hand, we have another go-waku app that publishes random Relay messages periodically. Therefore, this can be considered a more realistic approach. The following diagram shows the topology used: For that, the next apps were used: Waku-publisher. This app can publish Relay messages with different numbers of clients Waku-store-query-generator. This app is based on the Waku-publisher but in this case, it can spawn concurrent go-waku Store clients. That topology is defined in this docker-compose file. Notice that the two nwaku nodes run the very same version, which is compiled locally. Comparing archive SQLite & Postgres performance in nwaku-b6dd6899​ The next results were obtained by running the docker-compose-manual-binaries.yml from test-waku-query-c078075 in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.) Scenario 1 Store rate: 1 user generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, we can see that the SQLite performance is better regarding the store requests. The following graph shows how the SQLite node has blocking periods whereas the Postgres always gives a steady rate. Scenario 2 Store rate: 10 users generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, is more evident that the SQLite performs better. Scenario 3 Store rate: 25 users generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, the performance is similar regarding the timings. The store rate is bigger in SQLite and Postgres keeps the same level as in scenario 2. Comparing archive SQLite & Postgres performance in nwaku-b452ed8​ This nwaku commit is after a few Postgres optimizations were applied. The next results were obtained by running the docker-compose-manual-binaries.yml from test-waku-query-c078075 in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.) Scenario 1 Store rate 1 user generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 1 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. It cannot be appreciated but the average *Store* time was 11ms. Scenario 2 Store rate: 10 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 10 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. Scenario 3 Store rate: 25 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 25 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. Conclusions​ After comparing both systems, SQLite performs much better than Postgres However, a benefit of using Postgres is that it performs asynchronous operations, and therefore doesn’t consume CPU time that would be better invested in Relay for example. Remember that nwaku is single-threaded and chronos performs orchestration among a bunch of async tasks, and therefore it is not a good practice to block the whole nwaku process in a query, as happens with SQLite After applying a few Postgres enhancements, it can be noticed that the use of concurrent Store queries doesn’t go below the 250ms barrier. The reason for that is that most of the time is being consumed in this point. The libpqisBusy() function indicates that the connection is still busy even the queries finished. Notice that we usually have a rate below 1100 req/minute in status.prod fleet (checked November 7, 2023.)","s":"Query test results (only Store protocol)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-only-store-protocol","p":397},{"i":413,"t":"This study aims to look for possible issues when having only one single database while several Waku nodes insert or retrieve data from it. The following diagram shows the scenery used for such analysis. There are three nim-waku nodes that are connected to the same database and all of them are trying to write messages to the same PostgreSQL instance. With that, it is very common to see errors like: ERR 2023-11-27 13:18:07.575+00:00 failed to insert message topics=\"waku archive\" tid=2921 file=archive.nim:111 err=\"error in runStmt: error in dbConnQueryPrepared calling waitQueryToFinish: error in query: ERROR: duplicate key value violates unique constraint \\\"messageindex\\\"\\nDETAIL: Key (storedat, id, pubsubtopic)=(1701091087417938405, 479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd, /waku/2/default-waku/proto) already exists.\\n The db-postgres-hammer is aimed to stress the database from the select point of view. It performs N concurrent select queries with a certain rate. Results​ The following results were obtained by using the sandbox machine (metal-01.he-eu-hel1.misc.wakudev) and running nim-waku nodes from https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e and using the test-waku-query project from https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356 The following shows the results Two nwaku-postgres-additional inserting messages plus 50 db-postgres-hammer making 10 selects per second. Five nwaku-postgres-additional inserting messages plus 50 db-postgres-hammer making 10 selects per second. In this case, the insert time gets more spread because the insert operations are shared amongst five more nodes. The Store query time remains the same on average. Five nwaku-postgres-additional inserting messages plus 100 db-postgres-hammer making 10 selects per second. This case is similar to 2. but stressing more the database.","s":"Multiple nodes & one single database","u":"/research/benchmarks/postgres-adoption","h":"#multiple-nodes--one-single-database","p":397},{"i":415,"t":"This post explains i) why The Waku Network requires a capped bandwidth per shard and ii) how to achieve it by rate limiting with RLN v2.","s":"Capped Bandwidth in Waku","u":"/research/research-and-studies/capped-bandwidth","h":"","p":414},{"i":417,"t":"First of all, let's begin with the terminology. We have talked in the past about \"predictable\" bandwidth, but a better name would be \"capped\" bandwidth. This is because it is totally fine that the waku traffic is not predictable, as long as it is capped. And it has to be capped because otherwise, no one will be able to run a node. Since we aim that everyone can run a full waku node (at least subscribed to a single shard) it is of paramount importance that the bandwidth requirements (up/down) are i) reasonable to run with a residential internet connection in every country and ii) limited to an upper value, aka capped. If the required bandwidth to stay up to date with a topic is higher than what the node has available, then it will start losing messages and won't be able to stay up to date with the topic messages. And not to mention the problems this will cause to other services and applications being used by the user. The main problem is that one can't just choose the bandwidth it allocates to relay. One could set the maximum bandwidth willing to allocate to store but this is not how relay works. The required bandwidth is not set by the node, but by the network. If a pubsub topic a has a traffic of 50 Mbps (which is the sum of all messages being sent multiplied by its size, times the D_out degree), then if a node wants to stay up to date in that topic, and relay traffic in it, then it will require 50 Mbps. There is no thing such as \"partially contributing\" to the topic (with eg 25Mbps) because then you will be losing messages, becoming an unreliable peer and potentially be disconnected. The network sets the pace. So waku needs an upper boundary on the in/out bandwidth (mbps) it consumes. Just like apps have requirements on cpu and memory, we should set a requirement on bandwidth, and then guarantee that if you have that bandwidth, you will be able to run a node without any problem. And this is the tricky part. This metric is Waku's constraint, similar to the gas-per-block limit in blockchains.","s":"Problem","u":"/research/research-and-studies/capped-bandwidth","h":"#problem","p":414},{"i":419,"t":"Quick summary of the evolution to solve this problem: Waku started with no rate-limiting mechanism. The network was subject to DoS attacks. RLN v1 was introduced, which allowed to rate-limit in a privacy-preserving and anonymous way. The rate limit can be configured to 1 message every y seconds. However, this didn't offer much granularity. A low y would allow too many messages and a high y would make the protocol unusable (impossible to send two messages in a row). RLN v2 was introduced, which allows to rate-limit each user to x messages every y seconds. This offers the granularity we need. It is the current solution deployed in The Waku Network.","s":"Previous Work","u":"/research/research-and-studies/capped-bandwidth","h":"#previous-work","p":414},{"i":421,"t":"The current solution to this problem is the usage of RLN v2, which allows to rate-limit x messages every y seconds. On top of this, the introduction of WAKU2-RLN-CONTRACT enforces a maximum amount of messages that can be sent to the network per epoch. This is achieved by limiting the amount of memberships that can be registered. The current values are: R_{max}: 160000 mgs/epoch r_{max}: 600 msgs/epoch r_{min}: 20 msgs/epoch In other words, the contract limits the amount of memberships that can be registered from 266 to 8000 depending on which rate limit users choose. On the other hand 64/WAKU2-NETWORK states that: rlnEpochSizeSec: 600. Meaning the epoch size is 600 seconds. maxMessageSize: 150KB. Meaning the maximum message size that is allowed. Note: recommended average of 4KB. Putting this all together and assuming: Messages are sent uniformly distributed. All users totally consumes its rate-limit. We can expect the following message rate and bandwidth for the whole network: A traffic of 266 msg/second on average (160000/600) A traffic of 6 MBps on average (266 4KB 6), where 4KB is the average message size and 6 is the average gossipsub D-out degree. And assuming a uniform distribution of traffic among 8 shards: 33 msg/second per shard. 0.75 MBps per shard.","s":"Current Solution (RLN v2)","u":"/research/research-and-studies/capped-bandwidth","h":"#current-solution-rln-v2","p":414},{"i":423,"t":"On this page Last updated: 9 February 2024 This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (\"Website\"). In this regard, if you are visiting our Website, this Privacy Policy applies to you.","s":"Privacy Policy","u":"/privacy-policy","h":"","p":422},{"i":425,"t":"For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at Logos Collective Association c/o PST Consulting GmbH Baarerstrasse 10 6300 Zug Switzerland Whenever we refer to “Logos”, “we” or other similar references, we are referring to the Logos Collective Association.","s":"1) Who we are","u":"/privacy-policy","h":"#1-who-we-are","p":422},{"i":427,"t":"We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable privacy legislation. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose. In this regard, we collect and process the following personal data from your use of the Website: IP address: As part of such use of the Website we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.","s":"2) We limit the collection and processing of personal data from your use of the Website","u":"/privacy-policy","h":"#2-we-limit-the-collection-and-processing-of-personal-data-from-your-use-of-the-website","p":422},{"i":429,"t":"In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.","s":"3) Third party processing of personal data","u":"/privacy-policy","h":"#3-third-party-processing-of-personal-data","p":422},{"i":431,"t":"As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.","s":"4) Security measures we take in respect of the Website","u":"/privacy-policy","h":"#4-security-measures-we-take-in-respect-of-the-website","p":422},{"i":433,"t":"We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable privacy legislation.","s":"5) Exporting data outside the European Union and Switzerland","u":"/privacy-policy","h":"#5-exporting-data-outside-the-european-union-and-switzerland","p":422},{"i":435,"t":"As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant privacy legislation, you have the right to: Ask us to correct or update your personal data (where reasonably possible); Ask us to remove your personal data from our systems; Ask us for a copy of your personal data, which may also be transferred to another data controller at your request; Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent; Object to the processing of your personal data; and File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.","s":"6) Your choices and rights","u":"/privacy-policy","h":"#6-your-choices-and-rights","p":422},{"i":437,"t":"On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.","s":"7) Third party links","u":"/privacy-policy","h":"#7-third-party-links","p":422},{"i":439,"t":"We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.","s":"8) This Privacy Policy might change","u":"/privacy-policy","h":"#8-this-privacy-policy-might-change","p":422},{"i":441,"t":"To the extent that you have any questions about the Privacy Policy, please contact us at legal@free.technology. This document is licensed under CC-BY-SA.","s":"9) Contact information","u":"/privacy-policy","h":"#9-contact-information","p":422},{"i":443,"t":"TLDR: This issue aims to set the maximum bandwidth in x Mbps that each waku shard should consume so that the maximum amount of people can run a full waku node. It is up to https://github.com/waku-org/research/issues/22 to specify how this maximum will be enforced. Conclusion: Limit to 10 Mbps each waku shard.","s":"Maximum Bandwidth for Global Adoption","u":"/research/research-and-studies/maximum-bandwidth","h":"","p":442},{"i":445,"t":"Waku is designed in a way that everyone should be able to run a full node on an average laptop with a residential Internet connection, at least in one shard. This will enable true decentralization and give power to the users, since they won't need to rely on third parties to send/receive messages. Professional node operators running in data centers, can of course contribute to multiple shards, but we should keep the bandwidth/hardware requirements of single shard rather low. This vision opposes the federated approach, where a few nodes requiring vast amounts of resources (cpu, memory, bandwidth) run in data centres, taking the power from the user. While federated approaches are an improvement from traditional client-server architectures, waku envisions a fully peer-to-peer architecture where anyone should be able to run a node. In order to ensure that anyone can run a node in desktop, there are two main limiting factors: Bandwidth consumption in Mbps CPU/memory resources (mainly limited by RLN proof verification) This issue focuses on i) bandwidth consumption and https://github.com/waku-org/research/issues/30 on ii) CPU/memory resources. Note that on https://github.com/waku-org/research/issues/23 an analysis on the impact on RLN was already made, but wasn't focused on scalability. Said issues do. In https://github.com/waku-org/research/issues/22 we discussed why and how to limit the maximum bandwidth per shard, but we haven't come up with a specific number in Mbps. This issue i) presents data from the available bandwidth at different locations and ii) suggests a maximum bandwidth in Mbps that waku should enforce.","s":"Introduction","u":"/research/research-and-studies/maximum-bandwidth","h":"#introduction","p":442},{"i":447,"t":"The following tables show: Table [1] The Q25, Q75 and average bandwidth (upload/download) in Mbps available on different continents. Raw data is available here and credits to @leobago for the summarized version. Note: The below numbers were rounded to the nearest integer. Table [2] The median global bandwidth (upload/download) in Mbps, taken from speedtest (accessed 12 Oct 2023). Table [3] Download bandwidth requirements in Mbps for Netflix video streaming, source. Table [1] Download (Mbps) Upload (Mbps) Q25 Average Q75 Q25 Average Q75 North-America 58 107 137 38 68 85 South-America 21 54 72 13 33 44 Europe 49 93 119 30 56 72 Asia 23 53 71 15 37 50 Oceania 44 84 108 27 50 63 Africa 12 26 33 7 17 22 Table [2] Median Download (Mbps) Median Upload (Mbps) Global 83 38 Table [3] Video resolution Recommended Bandwidth HD 3 Mbps Full HD 5 Mbps 4K/UHD 15 Mbps","s":"Bandwidth availability and usage","u":"/research/research-and-studies/maximum-bandwidth","h":"#bandwidth-availability-and-usage","p":442},{"i":449,"t":"With the above data, we should be informed to take a decision on the maximum bandwidth that we should enforce per shard. With this number, we will apply the techniques explained in https://github.com/waku-org/research/issues/22 to ensure (with some statistical confidence) that the bandwidth won't exceed that number. The trade-off is clear: We enforce a low bandwidth: more people can run full waku nodes, overall network throughput is less, network decentralization is easier, gives power to the user as its fully sovereign. We don't enforce a low bandwidth: not possible to run full waku nodes in laptops acting as a centralization force, nodes are run by few professional operators in data centers, waku users just use light clients, network throughput can scale way easier, federated approach. So it's about where to draw this line. Points to take into account: Relay contributes to bandwidth the most: Relay is the protocol that mostly contributes to bandwidth usage, and it can't choose to allocate fewer bandwidth resources like other protocols (eg store can choose to provide less resources and it will work). In other words, the network sets the relay bandwidth requirements, and if the node can't meet them, it just wont work. Upload and download bandwidth are the same: Due to how gossipsub works, and hence relay, the bandwidth consumption is symmetric, meaning that upload and download bandwidth is the same. This is because of D and the reciprocity of the connections, meaning that one node upload is another download. Nodes not meeting requirements can use light clients. Note that nodes not meeting the bandwidth requirements can still use waku, but they will have to use light protocols, which are a great alternative, especially on mobile, but with some drawbacks (trust assumptions, less reliability, etc) Waku can't take all the bandwidth: Waku is meant to be used in conjunction with other services, so it shouldn't consume all the existing bandwidth. If Waku consumes x Mbps and someone bandwidth is x Mpbs, the UX won't be good. Compare with existing well-known services: As shown in Table [3], Netflix 4K video streaming takes 15Mbps, so that is an order of magnitude to take into account. Coming up with a number: Lowest average download speed across continents is Africa (26 Mbps) Lowest average upload speed across continents is Africa (17 Mbps) Since in waku the bandwidth consumption is symmetric, we are limited by the lowest (17 Mpbs) However waku should not consume all bandwidth, leaving some room for other applications. We could set 10 Mbps, which is between Full HD video and 4K. With 10Mbps the % of average bandwidth waku will consume is: North-America 9 % South-America 18 % Europe 11 % Asia 18 % Oceania 12 % Africa 38 % Conclusion: Limit to 10 Mbps each waku shard. How? Not trivial, see https://github.com/waku-org/research/issues/22#issuecomment-1727795042 Note: This number is not set in stone and is subject to modifications, but it will most likely stay in the same order of magnitude if changed.","s":"Selecting a maximum bandwidth","u":"/research/research-and-studies/maximum-bandwidth","h":"#selecting-a-maximum-bandwidth","p":442},{"i":451,"t":"Definitions and usage of the terminology used in the Waku ecosystem.","s":"Waku Docs Glossary","u":"/learn/glossary","h":"","p":450},{"i":453,"t":"Bootstrapping is the initial entry point of a node to the Waku Network. Once connected, other peer discovery methods can be employed to locate other peers in the network.","s":"Bootstrapping","u":"/learn/glossary","h":"#bootstrapping","p":450},{"i":455,"t":"A content topic is a string attached to messages to enable protocol-level features like selective message processing and retrieval based on specific criteria.","s":"Content topic","u":"/learn/glossary","h":"#content-topic","p":450},{"i":457,"t":"Dappnode is an open-source platform that simplifies the hosting and management of decentralised applications and blockchain nodes, including Waku.","s":"Dappnode","u":"/learn/glossary","h":"#dappnode","p":450},{"i":459,"t":"Discv5 is a peer discovery mechanism using a Distributed Hash Table (DHT) to store ENR records, providing censorship resistance, load distribution, and enhanced network resilience.","s":"Discv5","u":"/learn/glossary","h":"#discv5","p":450},{"i":461,"t":"DNS discovery is a peer discovery mechanism that allows the retrieval of an ENR tree from the TXT field of a domain name, enabling the storage of node connection details and promoting decentralisation.","s":"DNS discovery","u":"/learn/glossary","h":"#dns-discovery","p":450},{"i":463,"t":"Ethereum Node Record (ENR) is a specification used to represent and identify nodes, facilitating discovery and communication within the network. Besides connection details, ENR also includes node configuration information like enabled protocol and shards.","s":"ENR","u":"/learn/glossary","h":"#enr","p":450},{"i":465,"t":"Filter is a protocol that enables light nodes to selectively subscribe to specific messages transmitted by peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network.","s":"Filter","u":"/learn/glossary","h":"#filter","p":450},{"i":467,"t":"GossipSub is a protocol for efficient and scalable information dissemination in decentralised networks commonly used in blockchain systems.","s":"GossipSub","u":"/learn/glossary","h":"#gossipsub","p":450},{"i":469,"t":"Libp2p is a modular network stack and protocol suite that allows developers to build decentralised, peer-to-peer applications across various network protocols.","s":"Libp2p","u":"/learn/glossary","h":"#libp2p","p":450},{"i":471,"t":"A light node is a resource-limited device or client that leverages service nodes to access the Relay network.","s":"Light node","u":"/learn/glossary","h":"#light-node","p":450},{"i":473,"t":"Light push is a protocol enabling light nodes to send messages to the Relay network and receive acknowledgements confirming that a peer has received them.","s":"Light push","u":"/learn/glossary","h":"#light-push","p":450},{"i":475,"t":"Mostly offline devices are clients who spend most of their time offline or disconnected from the internet and only occasionally to the internet and Waku Network. Examples include browsers and mobile phones.","s":"Mostly offline","u":"/learn/glossary","h":"#mostly-offline","p":450},{"i":477,"t":"A node is a device or client that implements Waku protocols and leverages the Waku Network to enable secure and private peer-to-peer web3 communication.","s":"Node","u":"/learn/glossary","h":"#node","p":450},{"i":479,"t":"A node key is a Secp256k1 (64-char hex string) private key for generating the PeerID, listening addresses, and discovery addresses of a Waku node.","s":"Node key","u":"/learn/glossary","h":"#node-key","p":450},{"i":481,"t":"Out-of-band refers to exchanging information through a separate, secure channel distinct from the main communication method to enhance security.","s":"Out-of-band","u":"/learn/glossary","h":"#out-of-band","p":450},{"i":483,"t":"The payload field in a Waku Message contains the application data, serving as the business logic message transmitted between clients over Waku. Applications can encrypt the payload or employ encryption methods specified in Waku Message Payload Encryption.","s":"Payload","u":"/learn/glossary","h":"#payload","p":450},{"i":485,"t":"A peer refers to other nodes and participants of the Waku Network with whom communication and interaction are possible.","s":"Peer","u":"/learn/glossary","h":"#peer","p":450},{"i":487,"t":"Peer discovery is when a node locates and gets information about other peers in the Waku Network.","s":"Peer discovery","u":"/learn/glossary","h":"#peer-discovery","p":450},{"i":489,"t":"Peer exchange is a peer discovery mechanism that enables light nodes to request and receive peers from other nodes in the network, allowing them to bootstrap and expand their connections without depending on Discv5.","s":"Peer exchange","u":"/learn/glossary","h":"#peer-exchange","p":450},{"i":491,"t":"PeerID is the unique identifier of a node in the Waku Network generated from the cryptographic hash of the node's public key.","s":"Peer ID","u":"/learn/glossary","h":"#peer-id","p":450},{"i":493,"t":"A protocol is a set of rules that enables nodes within the Waku Network to perform various functionalities such as message sending, relaying, filtering, storing, retrieving, and more.","s":"Protocol","u":"/learn/glossary","h":"#protocol","p":450},{"i":495,"t":"Publish/Subscribe (Pub/Sub) is an asynchronous messaging pattern where publishers send messages to topics, and subscribers receive messages from topics of interest, allowing efficient one-to-many communication.","s":"Pub/Sub","u":"/learn/glossary","h":"#pubsub","p":450},{"i":497,"t":"A Pub/Sub topic is a string that serves as an identifier for the topic of interest among GossipSub peers. Peers interested in the same topic are likely to maintain a connection and forward messages received on that topic.","s":"Pub/Sub topic","u":"/learn/glossary","h":"#pubsub-topic","p":450},{"i":499,"t":"Rate Limit Nullifiers (RLN) are a construct based on zero-knowledge proofs that enables rate limiting functionality while preserving the users's anonymity.","s":"Rate limit nullifiers","u":"/learn/glossary","h":"#rate-limit-nullifiers","p":450},{"i":501,"t":"Relay is a protocol that extends the GossipSub protocol to enable secure and censorship resistant message sending and receiving among peers while preserving privacy. It also scales the Waku Network to accommodate many nodes efficiently.","s":"Relay","u":"/learn/glossary","h":"#relay","p":450},{"i":503,"t":"Resource-limited refers to environments or devices restricting available resources, including bandwidth, CPU, memory, disk, and battery power.","s":"Resource-limited","u":"/learn/glossary","h":"#resource-limited","p":450},{"i":505,"t":"RLN Relay is an extension of the Relay protocol that uses Rate Limit Nullifiers (RLN) to prevent spam economically by enforcing a rate limit on messages over time, imposing penalties, and facilitating network removal for spammers.","s":"RLN relay","u":"/learn/glossary","h":"#rln-relay","p":450},{"i":507,"t":"SDKs are tools, libraries, and resources to integrate Waku's private, secure, and censorship-free communication features into various applications.","s":"SDK","u":"/learn/glossary","h":"#sdk","p":450},{"i":509,"t":"Store is a protocol that enables the storage of relayed messages in the network, allowing offline peers to retrieve missed messages upon reconnecting to the network.","s":"Store","u":"/learn/glossary","h":"#store","p":450},{"i":511,"t":"A transport is a network mechanism that establishes connections between peers and enables efficient transmission, routing, and delivery of data packets.","s":"Transport","u":"/learn/glossary","h":"#transport","p":450},{"i":513,"t":"Waku is a family of private, secure, decentralised, and peer-to-peer web3 communication protocols designed to operate in resource-limited environments and suitable for node or desktop application use. Additionally, these protocols collectively form the Waku Network.","s":"Waku","u":"/learn/glossary","h":"#waku","p":450},{"i":515,"t":"Waku Message defines the structure of messages in the Waku Network, including the content topic, payload, and metadata for application-specific processing.","s":"Waku message","u":"/learn/glossary","h":"#waku-message","p":450},{"i":517,"t":"Waku Message Payload Encryption provides guidelines for implementing secure and private communication in the Waku Network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.","s":"Waku message payload encryption","u":"/learn/glossary","h":"#waku-message-payload-encryption","p":450},{"i":519,"t":"The Waku Network is an open-access, scalable peer-to-peer messaging network emphasizing privacy protection and accessibility to resource limited devices.","s":"Waku network","u":"/learn/glossary","h":"#waku-network","p":450},{"i":521,"t":"Waku Noise is a specified way to use the Noise Protocol Framework to build protocols that enable secure key-exchange mechanisms for encrypted communication with confidentiality, authenticity, integrity, strong forward secrecy, and identity-hiding properties.","s":"Waku noise","u":"/learn/glossary","h":"#waku-noise","p":450},{"i":523,"t":"Research and Studies: Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the Waku RFCs website. Benchmarks: Results of implementations and engineering-related benchmarks for Waku clients. Waku also has the following published research papers: WAKU-RLN-RELAY: Privacy-Preserving Peer-to-Peer Economic Spam Protection Message Latency in Waku Relay with Rate Limiting Nullifiers Waku: A Family of Modular P2P Protocols For Secure & Censorship-Resistant Communication The Waku Network as Infrastructure for dApps","s":"Research","u":"/research/","h":"","p":522},{"i":526,"t":"This page summarises key performance metrics for nwaku and provides links to detailed test reports. TL;DR​ Average Waku bandwidth usage: ~10 KB/s (minus discv5 Discovery) for 1KB message size and message injection rate of 1msg/s. Confirmed for topologies of up to 2000 Relay nodes. Average time for a message to propagate to 100% of nodes: 0.4s for topologies of up to 2000 Relay nodes. Average per-node bandwidth usage of the discv5 protocol: 8 KB/s for incoming traffic and 7.4 KB/s for outgoing traffic, in a network with 100 continuously online nodes. Future improvements: A messaging API is currently in development to streamline interactions with the Waku protocol suite. Once completed, it will enable benchmarking at the messaging API level, allowing applications to more easily compare their own performance results.","s":"Introduction","u":"/research/benchmarks/test-results-summary","h":"#introduction","p":524},{"i":528,"t":"Average Waku bandwidth usage: ~10 KB/s (minus discv5 Discovery) for 1KB message size and message injection rate of 1msg/s. Confirmed for topologies of up to 2000 Relay nodes. Average time for a message to propagate to 100% of nodes: 0.4s for topologies of up to 2000 Relay nodes. Average per-node bandwidth usage of the discv5 protocol: 8 KB/s for incoming traffic and 7.4 KB/s for outgoing traffic, in a network with 100 continuously online nodes. Future improvements: A messaging API is currently in development to streamline interactions with the Waku protocol suite. Once completed, it will enable benchmarking at the messaging API level, allowing applications to more easily compare their own performance results.","s":"TL;DR","u":"/research/benchmarks/test-results-summary","h":"#tldr","p":524},{"i":531,"t":"The average per-node libp2p bandwidth usage in a 1000-node Relay network with 1KB messages at varying injection rates. Message Injection Rate Average libp2p incoming bandwidth (KB/s) Average libp2p outgoing bandwidth (KB/s) 1 msg/s ~10.1 ~10.3 1 msg/10s ~1.8 ~1.9","s":"Relay Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#relay-bandwidth-usage-nwaku-v0340","p":524},{"i":533,"t":"The message propagation latency is measured as the total time for a message to reach all nodes. We compare the latency in different network configurations for the following simulation parameters: Total messages published: 600 Message size: 1KB Message injection rate: 1msg/s The different network configurations tested are: Relay Config: 1000 nodes with relay enabled Mixed Config: 210 nodes, consisting of bootstrap nodes, filter clients and servers, lightpush clients and servers, store nodes Non-persistent Relay Config: 500 persistent relay nodes, 10 store nodes and 100 non-persistent relay nodes Click on a specific config to see the detailed test report. Config Average Message Propagation Latency (s) Max Message Propagation Latency (s) Relay (1000 nodes) 0.05 1.6 Mixed (210 nodes) 0.0125 0.007 Non-persistent Relay (510 nodes) 0.0125 0.25","s":"Message Propagation Latency: nwaku v0.34.0-rc1","u":"/research/benchmarks/test-results-summary","h":"#message-propagation-latency-nwaku-v0340-rc1","p":524},{"i":535,"t":"The average bandwidth usage of discv5 for a network of 100 nodes and message injection rate of 0 or 1msg/s. The measurements are based on a stable network where all nodes have already connected to peers to form a healthy mesh. Message size Average discv5 incoming bandwidth (KB/s) Average discv5 outgoing bandwidth (KB/s) no message injection 7.88 6.70 1KB 8.04 7.40 10KB 8.03 7.45","s":"Discv5 Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#discv5-bandwidth-usage-nwaku-v0340","p":524},{"i":538,"t":"The VAC DST team performs regression testing on all new nwaku releases, comparing performance with previous versions. They simulate large Waku networks with a variety of network and protocol configurations that are representative of real-world usage. Test Reports: DST Reports","s":"DST","u":"/research/benchmarks/test-results-summary","h":"#dst","p":524},{"i":540,"t":"The VAC QA team performs interoperability tests for nwaku and go-waku using the latest main branch builds. These tests run daily and verify protocol functionality by targeting specific features of each protocol. Test Reports: QA Reports","s":"QA","u":"/research/benchmarks/test-results-summary","h":"#qa","p":524},{"i":542,"t":"The nwaku team follows a structured release procedure for all release candidates. This involves deploying RCs to status.staging fleet for validation and performing sanity checks. Release Process: nwaku Release Procedure","s":"nwaku","u":"/research/benchmarks/test-results-summary","h":"#nwaku","p":524},{"i":544,"t":"The Waku Research team conducts a variety of benchmarking, performance testing, proof-of-concept validations and debugging efforts. They also maintain a Waku simulator designed for small-scale, single-purpose, on-demand testing. Test Reports: Waku Research Reports Waku Simulator: Waku Simulator Book","s":"Research","u":"/research/benchmarks/test-results-summary","h":"#research","p":524},{"i":547,"t":"Since RLN has been chosen as the spamming protection mechanism for waku, we must understand the practical implications of using it. This issue explains the main differences between relay and rln-relay and gives some benchmarks after running simulations using waku-simulator, in a network with the following characteristics: 100 nwaku nodes, each one with a valid rln membership and publishing a message every 10 seconds to a common topic. rln contract deployed in Ethereum Sepolia 10.000 memberships registered in the contract pure relay (store and light protocols disabled) The main deltas rln vs rln-relay are: New proof field in WakuMessage containing 384 extra bytes. This field must be generated and attached to each message. New validator, that uses proof to Accept or Reject the message. The proof has to be verified. New dependency on a blockchain, Ethereum, or any EVM chain, to keep track of the members allowed to publish. But what are the practical implications of these?","s":"Introduction","u":"/research/research-and-studies/rln-key-benchmarks","h":"#introduction","p":545},{"i":549,"t":"Proof generation is constant-ish. 0.15 second for each proof Proof verification is constant-ish, 0.012 seconds. In a network with 10k nodes and D=6 this would add an overhead delay of 0.06 seconds. Gossipsub scoring drops connections from spammer peers, which acts as the punishment (instead of slashing). Validated in the simulation. Rln doesn't have any impact on memory consumption.","s":"TLDR:","u":"/research/research-and-studies/rln-key-benchmarks","h":"#tldr","p":545},{"i":551,"t":"Seems that proof generation times stay constant no matter the size of the message. In the following simulation it was increased from: 1kB, 10kB, 50kB, 150kB. On average it takes 0.15 seconds to calculate the message proof. This means that when a node wants to send a message, it will need to spend this time generating the proof. It seems very reasonable and it actually acts as a mini proof of work, where a consumer computer won't be able to publish a really high number of messages per second.","s":"Proof generation times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-generation-times","p":545},{"i":553,"t":"On the other hand, rln also adds an overhead in the gossipsub validation process. On average it takes 0.012 seconds to verify the proof. It seems that when we increase the message size, validation time seems to increase a bit, which can be for any other reason besides rln itself (eg deserializing the message might take longer). This number seems reasonable and shouldn't affect that much the average delay of a message. Assuming a d-regular graph, with 10k nodes and D=6, we can have up to log(total_nodes)/log(D)=5 hops. So in the worst case, rln will add a network latency of 0.012*5 = 0.06 seconds","s":"Proof verification times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-verification-times","p":545},{"i":555,"t":"For the initial release of RLN, slashing won't be implemented and it still remains unclear if it will be implemented in the future. Luckily, even if slashing is not implemented rln can be used to detect spam and punish the sender off-chain (instead of slashing an onchain collateral). This is done with gossipsub scoring. In the following simulation, we can see 100 nwaku interconnected nodes, where one of them suddenly starts spamming the network with multiple valid rln messages 3000 messages/minute. Since its rate limited to 1msg/10 seconds, we can see that in almost no time, every node in the network disconnects from the spammer peer (see red node), leaving it with 0 peers, which disincentivise such attacks and without requiring a financial slashing.","s":"Spam protection","u":"/research/research-and-studies/rln-key-benchmarks","h":"#spam-protection","p":545},{"i":557,"t":"Using RLN implies that waku should now piggyback on a blockchain (the case study uses Ethereum Sepolia) and has to stay up to date with the latest events emitted by the rln smart contract. These events are used to locally construct a tree that contains all members allowed to create valid proofs to send messages. Some numbers: A tree with 10k members takes 2Mbytes of space. Negligible. A tree with 10k members takes `<4 minutes to synchronize. Assumable since it's done just once. With a block range of 5000 blocks for each request, we would need 520 requests to synchronize 1 year of historical data from the tree. Assumable since most of the free endpoints out there allow 100k/day.","s":"RLN tree sync","u":"/research/research-and-studies/rln-key-benchmarks","h":"#rln-tree-sync","p":545},{"i":559,"t":"Same simulation with 100 nodes was executed with rln and without rln: Memory consumption is almost identical with rln without rln Couldn't capture cpu metrics Minor differences in messages per seconds is due to injection technique, nothing related to rln itself.","s":"Performance relay vs. rln-relay","u":"/research/research-and-studies/rln-key-benchmarks","h":"#performance-relay-vs-rln-relay","p":545},{"i":561,"t":"TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it's affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters.","s":"Message Propagation Times With Waku-RLN","u":"/research/research-and-studies/message-propagation","h":"","p":560},{"i":563,"t":"Waku uses relay as a routing protocol, which is an adaptation of gossipsub. It routes messages following a publisher/subscriber architecture, where nodes can publish messages or subscribe to topics. If message m is published to topic t, all i nodes n_1...n_i subscribed to t will get m. The relay protocol ensures that every node gets the messages of the topics it is subscribed to. However, since relay works in a decentralized manner, all nodes contribute to the gossiping of a message, until it has successfully reached all the interested nodes (subscribed to it). This means that a message can travel multiple hops until it reaches all nodes. The amount of hops determines the message propagation time, which is measured as the time difference of when the node published the message and when another node received. This issue aims to go from theory to practice, by i) understanding message propagation times in theory and ii) presenting nwaku simulation results in an end-to-end setup with rln, with real message propagation times.","s":"Introduction","u":"/research/research-and-studies/message-propagation","h":"#introduction","p":560},{"i":565,"t":"Let's start with message propagation times in theory. On a high level, it depends on: The gossipsub configuration, being D one of the most important parameters. This sets the hops that a message will travel to reach all nodes. Higher D, less hops, less delay. Note that a higher D implies more bandwidth consumption. The node. Different nodes will see different propagation times, because a message can travel different paths. A node connected directly to the publisher (1 hop) will see lower propagation times than other nodes further away. Individual propagation times. Since a message can travel multiple hops to reach its destination, each hop adds a contribution to the overall message propagation time. This individual propagation time depends on the characteristics on the nodes involved in the connections. In a D-regular graph, like the one formed by waku nodes around a topic, the maximum amount of hops that a message can travel to reach all nodes can be calculated as ceil(log(total_nodes)/log(D)). For example, with log(1000)/log(6) = 3.85 = 4. So in a network with 1000 nodes and D=6, no matter which node publishes the message, in 4 hops it will reach all the nodes. Notice the \"worst case\" since some nodes might be directly connected to the publisher, so they will get the message in just 1 hop. But how long does it take to jump each hop? It depends on: The latency between nodes. Can be measured as the time to respond to a ping. The size of the messages. The bigger the message, the more time it takes to transmit. Nodes bandwidth. Sender upload bandwidth and receiver download bandwidth. More important when using big message sizes. Message validation time. When each node receives a message, it applies some validation to decide if the message is further gossiped or not. In the case of waku, this is RLN (paper, rfc) Assuming a message m that travels 4 hops from node n1 (publisher) to n5 (subscriber) we can calculate the message propagation time mpt=ipt_1+ipt_2+ipt_3+ipt_4 where ipt is the individual propagation time between each node in the chain. However, specific message propagation times are useless, we need average times under specific conditions. And for this, we need simulations.","s":"Theory","u":"/research/research-and-studies/message-propagation","h":"#theory","p":560},{"i":567,"t":"Using shadow simulator, we have developed a tool that allows to simulate message propagation delays of nwaku (using a slightly modified branch, mainly to instrument it with tools to measure the times + starting from an already connected mesh. Thanks @Menduist for the help. Note that running this simulation requires a significant amount of resources, done with 256 GB of RAM. The configuration of the simulation is (see config): latency=100ms. Average latency in our current waku network. Thanks @vpavlin for the measurements. See this for live data. down_bandwidth=83Mbps, up_bandwidth=38Mbps. As shown in Table 2 that's the worldwide median speed. D=6, which is the current nwaku configuration. nodes=1000. Amount of nodes used in the simulation nwaku was used with a minor modification A total of 10 messages were published, that led to 9990 received messages. Since shadow doesn't take into account CPU times (by now), we simulate it with sleepAsync as per https://github.com/waku-org/research/issues/23 findings. 0.012 seconds for proof verification and 0.15 seconds for proof generation.","s":"Simulations","u":"/research/research-and-studies/message-propagation","h":"#simulations","p":560},{"i":569,"t":"The following figure shows the message propagation time with real simulations, showing the distribution in a network with the above configuration with three different message sizes: 10kB, 100kB, 500kB. Note that the whiskers indicate the best/worst values and the box contains P25 to P75 values. Average mu and P95 are also shown. Raw data here. Important note. The first messages sent in the simulations are omitted, since they show an abnormal propagation delay that doesn't reflect reality. This is due to how flow control works in TCP, where right after connection, the sender node has no idea of the \"bandwidth\" of the receiver node, so it will start sending packages at a lower rate. This translates into high transmission times, and it's more pronounced when dealing with big message sizes. In other words, in a 100Mpbs link, 100Mbits won't be sent in 1 second, or at least not a the beginning, when the node is slowly increasing the rate until based on ACK/NACK ratio. For more information about this, this is explained in here. Conclusions: Using small messages 10kB the average propagation delay is 508 ms, quite reasonable for applications using waku. The variance is acceptable, with 95% of the messages arriving in <627 ms. When using a size of 10kB we can see that the best case propagation delay is 263 ms. This corresponds to the nodes that are just 1 hop from the publisher. The proof generation time 0.15 seconds affects the most, where the rest is the inter-node latency and the transmission of the message itself. We can see that the message propagation delay increases with big messages, 100kB and 500kB. So its probably not a good idea to use waku for such big messages. Note that these simulations had 1000 nodes, so if we scale it to 10000 or beyond, propagation times would be worse. Best case propagation time (lower part of the whisker) is quite similar in all cases. This is because it corresponds to the node that is just 1 hop away from the publisher. Future work: Current waku D values (average of 6 ranging from 4 to 12) have a huge impact on the bandwidth that a node consumes. Are we willing to lower D in order to reduce bandwidth but increase message propagation times? Since shadow doesn't take CPU time into account, it's currently simulated for rln, which should be the biggest bottleneck. Once shadow has this feature times would be more accurate.","s":"Results","u":"/research/research-and-studies/message-propagation","h":"#results","p":560},{"i":571,"t":"Waku is a family of decentralised communication protocols. The Waku Network (TWN) consists of independent nodes running Waku protocols. TWN needs incentivisation (shortened to i13n) to ensure proper node behaviour. The goal of this document is to outline and contextualize our approach to TWN i13n. After providing an overview of Waku and relevant prior work, we focus on Waku Store - a client-server protocol for querying historical messages. We introduce a minimal viable addition to Store to enable i13n, and list research directions for future work.","s":"Incentivisation","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":573,"t":"On this page","s":"Incentivisation in decentralised networks","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":575,"t":"We can think of incentivisation tools as a two-by-two matrix: rewards vs punishment; monetary vs reputation. In other words, there are four quadrants: monetary reward: the node gets rewarded; monetary punishment: the nodes deposits funds that are taken away (slashed) if it misbehaves; reputation reward: the node's reputation increases if it behaves well; reputation punishment: the node's reputation decreases if it behaves badly. Reputation only works if high reputation brings tangible benefits. For example, if nodes chose neighbors based on reputation, low-reputation nodes miss out on potential revenue. Reputation scores may be local (a node assigns scores to its neighbors) or global (each node gets a uniform score). Global reputation in its simplest form involves a trusted third party, although decentralised approaches are also possible.","s":"Incentivisation tools","u":"/research/research-and-studies/incentivisation","h":"#incentivisation-tools","p":570},{"i":577,"t":"We may split incentivized decentralised networks into early file-sharing, blockchains, and decentralised storage.","s":"Prior work","u":"/research/research-and-studies/incentivisation","h":"#prior-work","p":570},{"i":579,"t":"Early P2P file-sharing networks employ reputation-based approaches and sticky defaults. For instance, the BitTorrent protocol rewards uploading peers with faster downloads. The download bandwidth available to a peer depends on how much it has uploaded. Moreover, peers share pieces of a file before having received it in whole. This non-monetary i13n policy has been proved to work in practice.","s":"Early P2P file-sharing","u":"/research/research-and-studies/incentivisation","h":"#early-p2p-file-sharing","p":570},{"i":581,"t":"Bitcoin has introduced proof-of-work (PoW) for native monetary rewards in a P2P network. PoW miners are automatically assigned newly mined coins for generating blocks. Miners must expend physical resources to generate a block. If the block is invalid, these expenses are not compensated (implicit monetary punishment). Proof-of-stake (PoS), used in Ethereum and many other cryptocurrencies, introduces explicit monetary punishments. PoS validators lock up (stake) native tokens and get rewarded for validating blocks or slashed for misbehaviour.","s":"Blockchains","u":"/research/research-and-studies/incentivisation","h":"#blockchains","p":570},{"i":583,"t":"Post-Bitcoin decentralised storage networks include Codex, Storj, Sia, Filecoin, IPFS. Their i13n methods combine techniques from early P2P file-sharing with blockchain-inspired reward mechanisms.","s":"Decentralised storage","u":"/research/research-and-studies/incentivisation","h":"#decentralised-storage","p":570},{"i":585,"t":"On this page Waku is a family of protocols for a modular privacy-preserving censorship-resistant decentralised communication network. The backbone of Waku is the Relay protocol (and its spam-protected version RLN-Relay). Additionally, there are light protocols: Store, Filter, and Lightpush. Light protocols are also referred to as client-server protocols and request-response protocols. A server is a node running Relay and a server-side of at least one light protocol. A client is a node running a client-side of any of the light protocols. A server may sometimes be referred to as a full node, and a client as a light node. There is no strict definition of a full node vs a light node in Waku (see discussion). In light protocols, a client sends a request to a server, and a server performs some actions and returns a response: Store: the server responds with messages relayed that match a set of criteria; Filter: the server will relay (only) messages that pass a filter to the client; Lightpush: the server publishes the client's message to the Relay network.","s":"Waku background","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":587,"t":"Waku has no consensus and no native token, which brings it closer to reputation-incentivised file-sharing networks. As of late 2023, Waku only operates under reputation-based rewards and punishments. While RLN-Relay adds monetary punishments for spammers, slashing is yet to be activated. Monetary rewards and punishments should ideally be atomically linked with the node's behaviour. A benefit of blockchains in this respect is that the desired behaviour of miners or validators can be verified automatically. Enforcing atomicity in a communication network is more challenging: it is non-trivial to prove that a given piece of data has been relayed. Our goal is to combine monetary and reputation-based incentives for Waku. Monetary incentives have demonstrated their robustness in blockchains. We think they are necessary to scale the network beyond the initial phase when it's maintained altruistically.","s":"Waku i13n challenges","u":"/research/research-and-studies/incentivisation","h":"#waku-i13n-challenges","p":570},{"i":589,"t":"Waku Store is a light protocol for querying historic messages that works as follows: the client sends a HistoryQuery to the server; the server sends a HistoryResponse to the client. The response may be split into multiple parts, as specified by pagination parameters in PagingInfo. We define a relevant message as a message that matches client-defined criteria (e.g., relayed within a given time frame). Upon receiving a request, a server should quickly send back a response containing all and only relevant messages.","s":"Waku Store","u":"/research/research-and-studies/incentivisation","h":"#waku-store","p":570},{"i":591,"t":"On this page An incentivised Store protocol has the following extra steps: pricing: cost calculation price advertisement price negotiation payment: payment itself proof of payment reputation results cross-checking In this document, we focus on the simplest proof-of-concept (PoC) i13n for Store. Compared to the fully-fledged protocol, the PoC version is simplified in the following ways: cost calculation is based on a common-knowledge price; there is no price advertisement and no price negotiation; each query is paid for in a separate transaction, txid acts a proof of payment; the reputation system is simplified (see below); the results are not cross-checked. In the PoC protocol: the client calculates the price based on the known rate per hour of history; the client pays the appropriate amount to the server's address; the client sends a HistoryQuery to the server alongside the proof of payment (txid); the server checks that the txid corresponds to a confirmed transaction with at least the required amount; the server sends a HistoryResponse to the client. In further subsections, we list the potential direction for future work towards a fully-fledged i13n mechanism.","s":"Waku Store incentivisation","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":593,"t":"For PoC, we assume a constant price per hour of history. This price and the blockchain address of the server are assumed to be common knowledge. This simplifies the client-server interaction, avoiding the price negotiation step. In the future versions of the protocol, the price will be negotiated and will depend on multiple parameters, such as the total size of the relevant messages in the response.","s":"Pricing","u":"/research/research-and-studies/incentivisation","h":"#pricing","p":570},{"i":595,"t":"DoS protection - see https://github.com/waku-org/research/issues/66 Cost calculation - see https://github.com/waku-org/research/issues/35 Price advertisement - see https://github.com/waku-org/research/issues/51 Price negotiation - see https://github.com/waku-org/research/issues/52","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work","p":570},{"i":597,"t":"For the PoC, each request is paid for with a separate transaction. The transaction hash (txid) acts as a proof of payment. The server verifies the payment by ensuring that: the transaction has been confirmed; the transaction is paying the proper amount to the server's account; the txid does not correspond to any prior response. The client gives proof of payment before it receives the response. Other options could be: the client pays after the fact; the client pays partly upfront and partly after the fact; a centralised third party (either trusted or semi-trusted, like a smart contract) ensures atomicity; cryptographically ensured atomicity (similar to atomic swaps, Lightning, or Hopr). Our design considerations are: the PoC protocol should be simple; servers are more \"permanent\" entities and are more likely to have long-lived identities; it is more important to protect the clients's privacy than the server's privacy. In light of these criteria, we suggest that the client pays first. This is simpler than splitting the payment, or involving an extra atomicity-enforcing mechanism. Moreover, pre-payment is arguably more privacy-preserving than post-payment, which encourages servers to deanonymise clients to prevent fraud.","s":"Payment","u":"/research/research-and-studies/incentivisation","h":"#payment","p":570},{"i":599,"t":"Add more payment methods - see https://github.com/waku-org/research/issues/58 Design a subscription model with service credentials - see https://github.com/waku-org/research/issues/59 Add privacy to service credentials - see https://github.com/waku-org/research/issues/60 Consider the impact of network disruptions - see https://github.com/waku-org/research/issues/65","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-1","p":570},{"i":601,"t":"We use reputation to discourage the server from taking the payment and not responding. The client keeps track of the server's reputation: all servers start with zero reputation points; if the server honours the request, it gets +n points; if the server does not respond before a timeout, it gets -m points. if the server's reputation drops below k points, the client will never query it again. n, m, and k are subject to configuration. Optionally, a client may treat a given server as trusted, assigning it a constant positive reputation. Potential issues: An attacker can establish new server identities and continue running away with clients' money. Countermeasures: a client only queries trusted servers (which however leads to centralisation); when querying a new server, a client first sends a small (i.e. cheap) request as a test; more generally, the client selects a server on a case-by-case basis, weighing the payment amount against the server's reputation. The ban mechanism can theoretically be abused. For instance, a competitor may attack the victim server and cause the clients who were awaiting the response to ban that server. Countermeasure: prevent DoS-attacks.","s":"Reputation","u":"/research/research-and-studies/incentivisation","h":"#reputation","p":570},{"i":603,"t":"Design a more comprehensive reputation system: local reputation - see https://github.com/waku-org/research/issues/48 global reputation - see https://github.com/waku-org/research/issues/49","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-2","p":570},{"i":605,"t":"As there is no consensus over past messages, a client may want to query multiple servers and merge their responses. Cross-checking helps ensure that servers are a) not censoring real messages; b) not injecting fake messages into history. Cross-checking is absent in PoC but may be considered later.","s":"Results cross-checking","u":"/research/research-and-studies/incentivisation","h":"#results-cross-checking","p":570},{"i":607,"t":"Cross-checking the results against censorship - see https://github.com/waku-org/research/issues/57 Use RLN to limit fake message insertion - see https://github.com/waku-org/research/issues/38","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-3","p":570},{"i":609,"t":"On this page We should think about what the success metrics for an incentivised protocol are, and how to measure them both in simulated settings, as well as in a live network.","s":"Evaluation","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":611,"t":"On this page Analyze privacy issues - see https://github.com/waku-org/research/issues/61 Analyze decentralised storage protocols and their relevance e.g. as back-end storage for Store servers - see https://github.com/waku-org/research/issues/34 Analyze the role of message senders, in particular, whether they should pay for sending non-ephemeral messages - see https://github.com/waku-org/research/issues/32 Generalise incentivisation protocol to other Waku light protocols (Lightpush and Filter) - see https://github.com/waku-org/research/issues/67.","s":"Longer-term future work","u":"/research/research-and-studies/incentivisation","h":"","p":570},{"i":613,"t":"On this page Last updated: 14 February 2024 These website terms of use ('Website Terms of Use') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website. It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use. If you do not agree with these Website Terms of Use, you must not access or use the Website.","s":"Terms of Use","u":"/terms","h":"","p":612},{"i":615,"t":"For the purposes of these Website Terms of Use, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at: Logos Collective Association c/o PST Consulting GmbH Baarerstrasse 10 6300 Zug Switzerland Whenever we refer to “Logos”, “we”, “us” or any other similar references, we are referring to the Logos Collective Association.","s":"1) Who we are","u":"/terms","h":"#1-who-we-are","p":612},{"i":617,"t":"The Website is provided by us on an ‘as is’ basis and you use the Website at your own sole discretion and risk. We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site.These disclaimers will apply to the maximum extent permitted by applicable law. We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws. The content herein or as accessible through this website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein. The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such. Nothing in this Website should be construed by you as an offer to buy or sell, or soliciting any offer to buy or sell any tokens or any security.","s":"2) Disclaimers","u":"/terms","h":"#2-disclaimers","p":612},{"i":619,"t":"The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general. The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what’s presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website. While we aim to update our website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.","s":"3) Forward looking statements","u":"/terms","h":"#3-forward-looking-statements","p":612},{"i":621,"t":"The Website and its contents are made available under Creative Commons Attribution 4.0 International license (CC-BY 4.0). In essence this licence allows users to copy, modify and distribute the content in any format for any purpose, including commercial use, subject to certain requirements such as attributing us. For the full terms of this licence, please refer to the following website: https://creativecommons.org/licenses/by/4.0/.","s":"4) Intellectual property rights","u":"/terms","h":"#4-intellectual-property-rights","p":612},{"i":623,"t":"To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, Status does not represent or imply that it endorses or supports such third party websites or content therein, or that it believes such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.","s":"5) Third-party website links","u":"/terms","h":"#5-third-party-website-links","p":612},{"i":625,"t":"We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.","s":"6) Limitation of liability","u":"/terms","h":"#6-limitation-of-liability","p":612},{"i":627,"t":"You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys’ fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.","s":"7) Indemnity","u":"/terms","h":"#7-indemnity","p":612},{"i":629,"t":"We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.","s":"8) Modifications","u":"/terms","h":"#8-modifications","p":612},{"i":631,"t":"Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.","s":"9) Governing law","u":"/terms","h":"#9-governing-law","p":612},{"i":633,"t":"In these terms, “dispute” has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website. We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions. If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking. If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers’ Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration. Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.","s":"10) Disputes","u":"/terms","h":"#10-disputes","p":612},{"i":635,"t":"These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website. The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use. If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them. If you have any specific questions about these Website Terms of Use, please contact us at legal@free.technology. This document is licensed under CC-BY-SA.","s":"11) About these Website Terms of Use","u":"/terms","h":"#11-about-these-website-terms-of-use","p":612},{"i":637,"t":"On this page Waku is a nascent technology and the Waku community is still growing. Hence, the Waku team is keen to work closely with projects to help leverage Waku technology to drive the success of their own applications. We describe below the expected flow for working with Waku and some rules of engagement to set expectations for project teams interacting with the Waku team.","s":"Rules of Engagement","u":"/rules-of-engagement","h":"","p":636},{"i":639,"t":"We encourage the initial discussion to happen over a video call. However, in-person event or online discussions are also an option. During this initial interaction, the project team should present their product and the needs they have in relation to peer-to-peer communication and real time interaction. The Waku team will provide an overview of Waku and point to specific protocol and software that should help fulfil such needs. Benefits and caveats are highlighted and further documentation and examples will be provided.","s":"1. Initial discussion","u":"/rules-of-engagement","h":"#1-initial-discussion","p":636},{"i":641,"t":"Projects should review Waku documentations and libraries in their own time; start building a PoC using Waku. Projects should start designing over Waku and come up with skeleton design or user flows about specific friction points or complex area (e.g. user experience, scaling). Project should appoint one or two Waku SME (Subject Matter Expert) to drive most discussions with Waku team to start acquire expertise on Waku behaviour. Project's Waku SMEs should present unresolved design issues to Waku team. The Waku team will then review and provide skeleton design solutions on how to overcome said unresolved or complex issues.","s":"2. Solution design","u":"/rules-of-engagement","h":"#2-solution-design","p":636},{"i":643,"t":"The project should finalise a design, solution or protocol they will build using Waku. If they wish to, they can present this solution to the Waku team to get feedback and identify technical gaps. The Waku team can provide feedback, highlight potential caveats, and communicate on delivery timeline for gaps, if any. note While the Waku team can provide feedback or even design potential solution on how Waku could be integrated in an application. It is the responsibility of the project team to understand the potential caveats and limitations that may incur with such a design. The Waku team can provide options, but it is up to the project team to decide on the final solution.","s":"3. Commitment","u":"/rules-of-engagement","h":"#3-commitment","p":636},{"i":645,"t":"The project then start building their MVP using Waku. The Waku team can provide support regarding API usage, bugs encountered, documentation gaps. Waku team will use feedback raised by project to improve APIs, fix bugs and enhance documentation. Waku team continues R&D to deliver any committed technical gaps. Project delivers their MVP. note The Waku team is keen to help any usage of Waku library. Please note that code snippets are necessary for preliminary investigations of issues. Sometimes, a code snippet is not enough; in this case, a minimal reproduction repo is necessary to allow us to do further investigation. If the project is open-source, then the Waku team might try to further investigate using it, as long as the reproduction steps are easy. If no code is provided to help with the investigation, then there is nothing the Waku team can do. For any unresolved issue, the project must open an issue on the related GitHub repository under the waku-org organisation.","s":"4. Building","u":"/rules-of-engagement","h":"#4-building","p":636},{"i":647,"t":"Once the project application is live, the Waku team is keen to maintain regular contact. This can include discussion around performance, bugs found by users, etc. The Waku team is keen to regularly present new and upcoming development to project team, highlight items that are particularly relevant. If a project wishes to take onboard any new Waku protocol, or decide to extend their product with a new functionality using Waku, the circle can resume from step 1.","s":"5. Ongoing relation","u":"/rules-of-engagement","h":"#5-ongoing-relation","p":636},{"i":649,"t":"We take security seriously at Waku and across the Institute of Free Technology and its affiliates. Please report any security incidents via security@free.technology. Please report any discovered vulnerabilities in our bounty programme at HackenProof to help ensure our protocols and software remain secure.","s":"Security","u":"/security","h":"","p":648}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,5.118,1,3.295,2,5.832,3,1.421,4,5.618,5,3.271,6,3.987,7,5.264,8,6.081,9,5.118,10,3.295,11,2.629,12,3.676,13,1.685,14,6.078,15,3.771,16,1.293,17,3.116,18,5.832,19,3.232,20,3.173,21,3.011,22,5.118,23,3.295,24,2.402,25,1.968,26,1.783,27,3.508,28,2.825,29,6.078,30,2.594,31,0.717,32,2.869]],["t/4",[3,1.031,5,3.655,10,3.758,31,1.03,32,4.514,33,5.933,34,5.037,35,4.192,36,6.114,37,6.114,38,4.093,39,5.836,40,3.553,41,4.093,42,2.773,43,1.869,44,6.931]],["t/6",[6,3.031,10,3.601,16,0.983,25,2.15,28,3.087,31,0.917,32,3.67,33,4.824,34,3.358,35,2.795,36,4.65,37,4.65,38,2.729,39,5.593,40,2.369,41,2.729,42,2.658,43,2.097,45,2.251,46,1.804,47,1.265,48,3.127,49,3.675,50,1.627,51,2.867,52,3.127,53,2.148,54,3.891,55,2.412,56,3.675,57,4.621,58,2.181,59,3.891,60,2.945,61,3.358,62,3.601,63,2.085,64,3.031,65,1.682,66,4.621,67,4.181,68,4.181,69,2.556,70,2.556,71,3.601,72,2.556,73,3.891,74,5.593,75,3.358,76,3.235,77,4.181,78,4.181,79,3.891,80,4.181,81,2.056,82,7.161,83,4.621,84,2.148,85,6.01,86,4.621]],["t/8",[3,1.025,5,2.736,7,3.191,13,0.849,16,1.287,22,2.579,23,1.661,25,2.433,31,1.169,32,3.252,35,2.942,45,1.492,47,1.524,69,2.69,81,1.363,87,1.382,88,2.771,89,1.971,90,2.436,91,2.771,92,4.794,93,2.37,94,1.469,95,1.996,96,1.971,97,2.757,98,2.587,99,2.865,100,1.2,101,2.076,102,1.543,103,1.809,104,3.28,105,3.191,106,3.405,107,2.226,108,4.391,109,3.1,110,2.771,111,3.686,112,2.947,113,1.853,114,1.517,115,1.9,116,1.056,117,2.144,118,2.807,119,1.684,120,2.587,121,2.37,122,1.971,123,1.559,124,3.1,125,2.321,126,1.809,127,1.629,128,3.191,129,2.637,130,2.579,131,1.694,132,1.424,133,1.469,134,0.826,135,2.872,136,2.073,137,1.952,138,1.403,139,2.321,140,1.853,141,2.226,142,1.599,143,2.226,144,2.436,145,1.543,146,0.881,147,0.962,148,1.853]],["t/10",[3,1.367,5,2.32,11,2.757,32,3.008,118,3.678,125,4.829,149,5.765,150,3.055,151,4.631,152,5.067,153,4.829,154,4.829,155,3.525,156,4.631,157,3.968,158,4.18,159,6.015,160,5.43,161,4.061,162,4.631,163,5.366,164,4.18,165,3.267,166,6.372,167,4.18,168,3.326,169,4.312,170,5.067,171,5.366,172,2.795,173,3.326,174,4.312]],["t/12",[5,3.128,13,1.872,16,1.828,31,1.114,32,3.187,33,4.19,47,1.637,81,3.004,87,3.048,89,3.481,95,2.771,96,2.736,97,3.438,98,3.591,99,2.575,100,0.904,114,3.345,175,3.004,176,4.328,177,2.844,178,3.345,179,5.118]],["t/14",[3,0.915,5,1.514,24,2.431,25,1.346,31,1.018,42,1.664,43,2.814,45,2.997,46,2.858,47,0.792,81,1.85,87,1.877,89,1.685,92,2.171,97,2.461,100,1.335,112,3.941,118,2.401,119,1.016,123,1.333,146,1.114,147,1.306,177,1.752,180,4.568,181,1.994,182,2.524,183,3.598,184,4.953,185,3.968,186,3.763,187,4.892,188,4.159,189,1.586,190,2.349,191,2.215,192,2.557,193,1.729,194,1.933,195,4.159,196,2.815,197,3.92,198,2.736,199,3.047,200,3.502,201,2.728,202,3.502,203,2.912,204,2.58,205,2.456,206,3.763]],["t/16",[31,0.79,43,2.762,46,2.614,100,1.144,114,3.317,120,4.544,146,1.212,147,2.103,180,3.782,182,2.748,183,2.979,184,4.531,185,3.63,197,4.268,198,3.801,199,4.662,204,4.154,207,2.748,208,2.858,209,4.393,210,3.561,211,4.154]],["t/18",[3,0.94,5,2.301,16,2.064,24,2.498,26,1.854,31,0.745,42,2.529,43,2.617,65,2.301,100,0.846,119,2.371,133,2.765,146,1.144,183,3.663,190,3.57,208,2.698,212,6.933,213,8.285,214,5.027,215,3.131,216,5.027,217,6.321,218,6.321]],["t/20",[3,0.539,5,1.32,11,1.568,25,1.796,30,2.367,31,0.427,42,1.45,43,2.861,46,2.947,47,1.701,63,1.636,65,2.453,95,1.487,96,1.469,97,1.45,102,2.137,116,1.249,119,0.886,146,1.366,147,1.742,182,3.663,185,1.965,189,1.382,190,3.133,197,2.31,198,1.613,199,1.795,204,4.18,205,5.066,210,1.928,211,2.249,215,1.795,219,3.639,220,2.983,221,2.912,222,5.042,223,5.189,224,5.72,225,2.747,226,3.28,227,4.204,228,3.883,229,2.453,230,5.019,231,3.754,232,2.883,233,1.965,234,2.249,235,2.747,236,3.28,237,1.965,238,3.625,239,1.965,240,1.738]],["t/22",[31,0.941,32,2.847,33,3.742,42,2.413,43,2.153,46,3.117,47,1.705,48,5.403,82,6.349,87,2.722,89,2.444,114,2.988,157,2.892,179,4.571,182,2.475,189,2.3,198,2.683,210,3.208,211,3.742,241,5.457,242,6.032,243,3.148,244,4.082,245,6.504,246,5.457,247,5.457,248,8.098,249,5.457,250,5.457,251,6.032,252,4.953,253,5.457]],["t/24",[3,0.834,16,1.192,24,2.215,31,1.09,43,2.797,46,2.967,47,1.899,71,3.038,95,3.119,97,3.041,98,4.042,146,1.015,157,3.644,182,3.119,183,2.493,245,4.073,254,2.98,255,5.76,256,5.604,257,5.07,258,5.07,259,4.719,260,5.07,261,3.676,262,4.247,263,5.07,264,4.719,265,4.719,266,7.6,267,5.07,268,4.719]],["t/26",[3,0.511,16,1.132,24,2.9,25,1.112,31,0.865,43,2.879,46,3.099,47,1.599,58,2.512,63,1.55,65,1.251,71,1.863,87,1.55,96,2.64,97,2.607,98,1.827,99,3.026,116,1.184,132,1.597,135,4.688,136,2.325,146,1.328,147,1.672,157,1.647,159,2.497,182,3.257,183,3.264,187,2.732,190,1.94,197,2.19,198,1.528,199,1.702,204,2.132,205,3.143,210,1.827,211,2.132,220,2.575,221,2.513,230,3.109,231,3.602,232,2.732,254,1.827,269,4.813,270,3.436,271,2.944,272,2.497,273,2.893,274,2.078,275,2.604,276,5.322,277,2.732,278,2.893,279,3.436,280,4.152,281,3.109,282,2.497,283,3.109,284,3.109,285,2.732,286,3.436,287,3.436,288,3.436,289,2.254,290,2.132,291,2.19,292,2.604,293,1.647,294,2.732]],["t/28",[3,1.225,16,1.345,23,3.427,25,2.046,26,1.854,28,3.827,40,3.241,47,1.204,65,2.301,92,3.3,108,4.029,119,2.012,132,2.938,138,2.895,161,4.029,165,3.241,293,3.031,295,4.79,296,4.594,297,3.649,298,4.147,299,3.514,300,4.425,301,5.027,302,3.241,303,5.323,304,2.895,305,3.3,306,5.323,307,6.321,308,5.323,309,6.321,310,5.719,311,6.321]],["t/30",[3,1.367,11,2.757,16,1.356,17,3.267,21,3.156,25,2.679,28,2.962,40,3.267,47,1.577,142,3.326,146,1.498,194,2.962,207,2.615,228,4.461,234,3.953,300,4.461,301,5.067,304,2.918,312,3.953,313,3.389,314,5.067,315,4.829,316,5.366,317,3.389,318,3.847,319,4.829,320,4.461,321,3.854,322,3.854,323,4.829,324,2.582]],["t/32",[3,1.414,15,2.141,23,1.871,28,3.037,31,0.867,38,3.154,40,1.769,47,0.657,60,2.199,65,1.256,69,1.909,87,1.557,93,2.602,118,1.992,119,1.305,136,2.335,138,1.58,146,0.625,155,1.909,157,1.654,161,3.404,167,2.264,181,2.561,210,2.84,233,1.871,235,2.615,239,3.987,240,1.654,292,4.951,297,3.083,298,3.503,299,1.473,302,3.349,304,1.58,312,3.313,314,4.247,315,2.615,317,2.84,325,5.34,326,5.34,327,5.34,328,3.739,329,4.832,330,2.744,331,4.832,332,1.835,333,5.34,334,3.451,335,3.451,336,2.416,337,6.533,338,3.451,339,3.451,340,4.497,341,2.264,342,2.264,343,3.122,344,6.193,345,4.832,346,4.047,347,3.122,348,1.769,349,4.832,350,1.654,351,5.195,352,2.744,353,2.906,354,2.615,355,3.451,356,3.122,357,2.038,358,1.709,359,3.451,360,2.744,361,2.087,362,2.264,363,2.744,364,2.508,365,4.832,366,4.497,367,2.906,368,3.451,369,3.451,370,2.416,371,2.906,372,2.906,373,3.122,374,3.451,375,3.451,376,3.122]],["t/36",[3,1.218,11,2.713,31,0.739,41,3.703,45,3.055,50,2.209,89,2.541,100,1.343,123,3.099,134,1.691,138,2.872,142,3.273,146,1.135,153,4.752,158,4.114,160,4.114,161,3.997,162,4.557,168,3.273,173,3.273,207,2.573,302,3.215,313,3.335,377,6.271,378,5.281,379,3.055,380,5.674,381,4.752,382,4.39,383,4.987,384,3.542]],["t/38",[2,4.594,3,1.225,4,6.41,5,2.998,7,5.401,15,3.922,17,4.221,19,3.362,20,3.3,23,4.464,27,3.649,31,0.971,63,2.853,65,2.301,93,3.08,94,3.031,108,4.029,109,5.248,115,3.922,240,3.031,343,5.719,385,3.131,386,5.719,387,2.938,388,3.649,389,6.321,390,5.027,391,5.719,392,5.323]],["t/40",[3,1.448,5,2.085,13,1.588,31,0.909,69,4.823,94,2.745,100,0.767,108,3.649,110,5.181,111,5.844,112,2.79,113,3.463,114,3.82,115,3.552,116,2.658,117,4.008,134,1.544,138,2.622,146,1.037,181,2.745,376,5.181,388,3.305,393,4.924,394,4.637,395,4.553,396,4.553,397,3.463,398,5.726,399,5.726,400,4.161,401,4.008,402,5.726,403,3.756,404,3.305,405,5.726,406,4.339,407,5.726]],["t/42",[2,3.496,3,1.36,4,3.953,5,0.801,6,1.444,7,3.155,10,1.193,16,1.201,17,1.129,19,1.171,23,2.012,25,2.041,31,0.937,32,1.039,33,3.503,35,2.244,36,1.541,37,1.541,38,1.3,39,3.125,41,1.3,45,2.344,46,0.859,47,1.61,48,1.49,49,2.951,52,1.49,53,1.023,55,1.149,59,1.854,71,1.193,72,1.218,76,1.541,79,1.854,81,2.14,89,3.095,92,1.937,93,1.808,95,0.903,99,1.834,100,0.844,101,2.053,102,2,103,2.191,104,3.061,105,3.155,106,2.598,108,3.599,109,1.403,112,2.344,114,1.838,118,2.776,119,1.867,120,1.973,121,1.073,122,1.503,123,0.705,124,3.066,128,3.155,129,2.608,130,1.854,131,1.218,132,3.821,133,1.705,134,1.001,135,2.84,137,2.365,146,0.871,147,1.511,168,1.149,175,0.979,176,2.423,177,1.563,178,1.09,191,0.793,192,1.542,193,0.915,201,1.444,222,1.243,228,1.541,233,1.193,241,3.357,245,1.6,305,3.988,365,3.357,379,1.073,388,1.271,393,1.243,394,1.171,408,1.751,409,2.201,410,2.697,411,0.849,412,1.366,413,1.668,414,1.751,415,1.668,416,1.854,417,2.697,418,1.271,419,2.201,420,2.201,421,1.6,422,2.201,423,1.6,424,1.3,425,0.775,426,1.171,427,1.444,428,1.668,429,1.992,430,1.854,431,1.668,432,1.444,433,1.992,434,2.201,435,2.697,436,1.668,437,1.366,438,1.751,439,1.023,440,1.668,441,1.193,442,1.854,443,1.751,444,1.444,445,1.992,446,1.331]],["t/44",[3,1.283,13,2.107,31,1.017,45,2.73,89,2.271,100,1.365,112,3.703,118,3.235,119,2.26,120,4.042,121,3.703,122,3.494,123,1.796,133,2.295,138,2.566,139,4.247,140,3.39,141,4.073,142,2.925,143,4.073,144,4.457,145,2.823,146,1.561,147,1.76,148,3.39,175,2.493,176,2.823,177,2.36,178,2.776,189,2.136,216,4.457,350,2.687]],["t/46",[3,0.963,5,3.045,13,1.796,31,0.986,32,3.057,42,2.591,43,2.734,100,1.12,112,4.514,119,1.583,121,3.155,122,2.624,180,4.724,182,2.658,183,2.881,184,4.383,185,3.511,191,2.332,192,3.477,401,4.534,447,4.018,448,5.86,449,3.444,450,4.534]],["t/48",[5,1.165,16,0.681,18,2.325,21,1.585,24,1.99,26,0.939,31,0.961,42,1.28,43,2.896,100,1.309,112,3.74,116,1.103,119,2.273,120,4.335,123,1.613,129,1.735,132,1.487,133,0.966,134,0.863,138,1.465,147,1.005,177,1.347,180,4.603,182,3.499,183,3.415,190,1.807,194,1.487,240,1.534,345,2.895,387,3.281,404,3.593,451,2.536,452,2.544,453,5.632,454,1.51,455,2.039,456,1.935,457,3.986,458,2.325,459,2.843,460,2.694,461,1.889,462,1.612,463,2.895,464,2.895,465,3.045,466,4.555,467,4.555,468,2.544,469,2.694,470,2.544,471,4.004,472,2.165,473,1.64,474,3.199,475,1.889,476,2.694,477,3.199,478,3.199,479,3.199,480,1.935,481,2.165,482,2.895,483,2.544,484,1.534,485,2.099]],["t/50",[3,0.831,5,1.332,10,1.983,13,1.014,24,1.446,31,0.963,32,1.727,33,3.465,36,2.561,37,2.561,42,2.711,43,2.95,55,1.91,99,1.395,100,1.267,102,1.161,112,3.301,116,1.261,121,4.195,122,3.834,180,3.827,182,3.112,183,2.485,207,1.501,211,4.204,404,3.911,444,2.4,448,3.31,449,1.946,450,2.561,454,1.727,465,3.379,473,2.864,486,2.066,487,7.39,488,6.861,489,3.081,490,5.706,491,3.658,492,3.31,493,1.605,494,6.131,495,2.4,496,5.054,497,3.658,498,3.31,499,3.658]],["t/52",[5,1.733,31,0.8,42,3.163,43,2.983,99,1.815,100,1.154,102,1.51,112,4.198,119,2.226,120,4.204,121,3.306,122,3.203,180,3.832,182,3.244,183,2.118,207,1.953,211,4.904,404,2.748,453,4.307,465,4.104,466,4.307,467,4.307,473,2.44,487,4.307,488,6.139,490,4.008,494,6.139,495,3.123,496,4.307,498,4.307,500,4.008,501,4.76]],["t/54",[5,3.078,24,2.602,31,0.776,32,3.108,42,2.635,43,2.748,77,7.649,100,1.25,101,3.608,119,2.066,127,3.502,133,2.553,180,4.774,182,2.702,183,3.761,184,4.456,185,3.57,212,5.545,502,6.584,503,6.584]],["t/56",[3,1.109,13,2.067,19,3.964,20,3.891,26,2.187,31,0.879,89,3.02,108,4.751,124,4.751,128,4.89,129,4.041,130,6.277,131,4.123,132,3.465,133,2.251,134,2.01,175,3.316,176,3.755,229,5.044]],["t/58",[3,1.109,5,2.714,31,0.879,32,3.518,61,5.417,108,4.751,128,6.483,131,5.054,136,5.044,168,3.891,173,4.77,428,5.649,473,3.821,504,4.89,505,5.417]],["t/60",[5,3.454,20,3.555,26,2.927,124,4.341,128,6.901,131,5.518,148,4.12,177,2.869,390,5.417,473,3.492,506,4.95,507,7.989,508,6.811,509,6.811]],["t/62",[2,4.486,3,0.918,5,2.952,10,3.347,19,3.283,26,2.656,43,1.665,89,2.501,94,2.96,115,3.83,128,6.951,131,5.317,172,2.708,322,3.734,403,4.049,457,3.486,473,3.165,510,5.198,511,5.585,512,3.83,513,4.016,514,3.83,515,6.173,516,5.585,517,6.173,518,6.173,519,6.173]],["t/64",[3,0.619,8,3.152,11,2.661,13,1.153,16,0.885,18,3.022,19,3.893,30,3.124,31,0.49,38,2.456,42,1.664,50,1.465,52,2.815,65,1.514,100,0.557,129,4.385,132,1.933,133,2.729,134,1.122,146,0.753,168,3.211,170,3.307,175,1.85,176,2.095,194,1.933,201,2.728,207,1.707,216,3.307,243,3.211,280,4.665,304,3.352,382,4.306,418,2.401,421,3.022,424,2.456,425,1.465,457,2.349,471,4.892,481,5.473,493,1.824,510,3.502,511,3.763,520,2.912,521,2.255,522,3.152,523,5.565,524,3.763,525,6.151,526,4.159,527,4.47,528,6.151,529,3.502,530,3.152,531,2.58,532,2.401,533,3.763,534,3.152,535,5.662,536,3.022,537,4.159,538,4.159,539,4.159,540,4.159,541,3.307,542,2.58,543,2.912,544,3.152,545,2.651,546,2.815,547,4.159,548,3.763,549,4.159]],["t/66",[31,0.937,43,2.405,100,0.801,116,2.063,129,4.307,131,3.311,132,2.782,133,2.868,134,1.615,181,2.87,189,3.029,243,3.125,293,2.87,451,3.016,454,2.825,462,4.002,471,6.317,504,3.927,535,4.191,550,5.041,551,8.067,552,3.535,553,3.714,554,7.188,555,5.986,556,5.986,557,5.416,558,5.416,559,7.944,560,3.815,561,5.986]],["t/68",[129,3.791,132,3.25,136,4.732,243,3.65,280,4.456,293,3.352,452,5.561,462,3.523,524,6.326,535,4.895,551,7.946,554,6.326,558,6.326,562,4.456,563,8.782,564,6.984,565,5.561,566,7.396,567,5.561,568,6.326,569,5.888,570,3.585]],["t/70",[3,0.911,11,2.65,31,0.951,43,2.432,53,2.847,116,2.111,129,4.373,133,2.723,134,1.652,146,1.109,152,4.871,162,4.451,167,5.291,168,4.21,451,3.086,454,2.891,462,4.063,504,4.018,553,3.8,557,5.542,562,3.904,570,3.14,571,8.065,572,4.288,573,7.298,574,6.125,575,4.642,576,6.125,577,6.125,578,5.542,579,4.642]],["t/72",[5,2.82,13,2.148,31,0.913,32,3.656,69,4.284,89,3.138,111,5.87,112,3.774,113,4.685,114,3.837,115,4.806,116,2.67,117,5.423,175,3.446,176,3.902]],["t/74",[5,2.283,31,0.966,32,2.96,33,3.89,36,4.39,37,5.734,45,3.055,46,2.448,50,2.209,53,2.915,69,5.045,70,3.469,111,6.208,113,3.793,114,4.057,117,5.734,138,2.872,156,4.557,157,3.007,192,2.607,580,6.897,581,8.191,582,6.897,583,6.271,584,3.89,585,6.271,586,4.39,587,6.271,588,4.752]],["t/76",[3,1.229,13,1.432,28,2.401,30,2.204,32,2.438,46,2.016,47,0.984,50,1.819,53,2.401,69,2.857,98,2.747,111,3.914,116,2.848,117,6.254,141,3.753,146,0.935,159,5.222,160,5.421,169,4.863,175,2.297,176,2.602,330,4.107,384,2.917,552,3.05,589,5.164,590,4.673,591,5.164,592,5.164,593,5.164,594,5.164,595,4.349,596,3.753,597,3.292,598,5.164,599,4.349,600,4.349,601,2.516,602,3.05,603,4.673,604,4.349,605,4.673,606,5.164,607,3.292,608,5.164,609,6.501,610,3.388,611,4.107,612,5.164,613,3.753,614,4.107,615,5.164,616,4.349,617,2.696,618,5.164]],["t/78",[0,5.545,1,3.57,2,4.785,3,0.979,4,4.609,5,3.078,6,4.319,7,6.125,8,6.407,9,5.545,10,3.57,11,2.849,12,3.983,13,2.344,23,3.57,25,2.132,31,0.776,32,3.108,89,2.668,109,5.388,114,3.261,175,2.929,176,3.317,390,5.236,391,5.958,392,5.545,619,6.584]],["t/80",[5,3.129,7,6.048,10,3.017,23,3.017,25,1.801,31,1.013,32,3.57,33,4.693,34,4.044,35,3.366,36,6.455,37,6.455,46,3.355,82,6.015,89,2.255,109,4.821,113,3.366,114,4.256,117,5.295,177,2.343,178,2.756,207,2.283,486,3.143,582,6.369,620,4.686,621,5.564,622,4.686,623,4.686,624,5.564,625,5.564,626,5.564,627,5.564]],["t/82",[3,0.597,7,2.631,13,1.987,24,2.367,25,1.299,31,0.706,42,2.867,43,2.902,46,3.102,50,1.413,69,3.963,81,2.664,97,3.402,100,1.3,109,3.816,113,2.426,127,3.184,177,2.522,178,1.987,182,2.457,184,2.715,185,2.175,229,2.715,280,4.566,411,1.547,441,3.884,446,2.426,523,5.418,532,2.315,560,2.557,628,4.011,629,7.945,630,4.011,631,3.378,632,3.378,633,4.011,634,4.011,635,4.011,636,5.988,637,4.011,638,6.483,639,3.629,640,3.04,641,5.418,642,3.629,643,3.378,644,3.19,645,4.011,646,2.631,647,2.915,648,2.489]],["t/84",[3,0.309,5,0.755,7,3.021,24,1.395,25,0.672,30,1.506,31,0.543,42,2.437,43,2.925,46,2.121,47,1.617,48,2.388,50,1.243,69,1.952,81,0.923,82,1.65,93,1.011,95,1.889,97,1.412,98,1.103,100,0.472,109,1.322,113,1.255,155,1.147,157,0.994,182,3.184,189,0.791,191,0.747,198,2.048,203,2.47,205,2.084,209,1.361,210,1.103,222,2.601,223,2.785,224,3.49,225,2.674,227,1.572,245,3.346,246,1.877,247,1.877,248,3.193,249,1.877,250,1.877,252,1.287,253,1.877,274,1.255,280,1.322,292,3.49,340,1.747,395,3.662,403,1.361,441,1.913,507,1.747,512,2.189,544,2.674,595,1.747,597,1.322,638,3.193,639,1.877,640,1.572,641,1.877,649,1.65,650,1.572,651,2.857,652,2.47,653,4.605,654,1.747,655,3.528,656,3.193,657,1.877,658,2.074,659,4.916,660,2.074,661,1.572,662,2.074,663,2.074,664,1.877,665,1.572,666,7.76,667,5.433,668,2.074,669,2.074,670,3.528,671,2.074,672,1.747,673,2.074,674,2.074,675,2.074,676,2.074,677,2.074,678,3.528,679,2.074,680,2.074,681,2.074,682,2.074,683,2.074,684,4.605,685,2.074,686,2.074,687,1.507,688,1.747,689,2.074,690,4.605,691,6.09,692,1.507,693,2.074,694,2.074,695,2.074,696,4.605,697,2.074,698,2.074,699,2.074,700,3.193,701,2.074,702,1.747,703,5.433,704,6.625,705,1.747,706,4.605,707,5.433,708,3.528,709,2.074,710,2.074,711,2.074,712,1.877,713,1.747,714,3.528,715,3.528,716,1.507,717,2.074]],["t/86",[24,2.798,25,1.273,30,1.678,31,0.695,42,1.573,43,3.002,46,1.535,47,1.606,48,2.661,69,2.175,71,3.198,95,2.42,97,1.573,98,5.021,100,0.79,109,2.506,132,1.827,146,1.068,157,1.885,182,3.632,183,1.749,192,1.634,194,1.827,209,3.869,222,3.331,245,2.857,255,2.979,257,3.557,258,3.557,259,6.624,260,3.557,265,3.311,267,3.557,274,2.378,280,3.759,512,2.439,640,2.979,656,3.557,657,3.557,659,3.557,664,5.337,665,2.979,718,3.931,719,7.079,720,3.557,721,3.931,722,3.557,723,3.931,724,3.931,725,3.931]],["t/88",[24,2.961,25,1.776,31,0.647,42,2.196,43,2.97,46,2.142,47,1.828,69,3.035,96,3.036,99,2.856,100,0.735,109,3.497,135,4.424,182,2.252,194,2.551,223,3.319,273,4.621,274,4.532,275,5.678,278,4.621,395,4.364,404,3.167,544,4.159,640,4.159,654,4.621,726,7.719,727,3.713,728,6.779,729,5.487]],["t/90",[3,0.468,5,1.146,7,2.065,16,1.058,18,2.288,23,1.707,24,1.965,25,1.609,31,0.955,32,1.486,42,1.26,43,2.89,46,1.229,47,1.674,69,1.741,87,2.243,89,1.276,91,2.849,92,1.643,93,1.534,96,2.014,99,1.2,100,1.176,101,2.122,102,2.938,109,3.168,116,1.085,119,1.861,123,1.009,135,1.859,138,1.442,144,2.504,146,0.9,147,0.989,148,1.904,157,1.509,180,1.778,182,2.871,183,1.401,184,2.131,185,1.707,189,1.2,193,1.309,194,1.463,208,2.122,215,1.559,223,3.007,273,2.651,274,3.007,275,3.767,278,2.651,290,1.953,292,2.386,293,1.509,294,2.504,349,2.849,400,2.288,411,1.215,451,1.586,544,2.386,580,2.651,640,2.386,650,4.668,654,2.651,726,4.498,728,4.498,730,6.16,731,2.849,732,2.122,733,4.971,734,3.148,735,3.148,736,3.148,737,2.849,738,2.204,739,2.504,740,2.849,741,2.504,742,2.007,743,3.148,744,3.148,745,3.148]],["t/92",[5,3.289,13,2.028,17,3.751,19,3.891,20,3.819,25,2.368,31,1.065,32,3.453,89,2.964,90,5.818,124,5.758,412,4.539,424,4.32,425,2.577,746,6.619,747,6.161,748,6.619,749,5.818]],["t/95",[5,2.546,6,5.761,17,3.585,19,5.106,124,6.12,194,3.25,293,3.352,352,5.561,361,4.229,394,5.106,750,6.992,751,6.326,752,6.992,753,5.081,754,6.992,755,6.656,756,4.895,757,5.299]],["t/97",[5,2.848,15,4.853,16,1.664,24,3.092,134,2.11,143,5.685,165,4.01,179,5.928,300,5.476,758,3.294,759,6.587,760,6.587,761,7.078,762,7.823]],["t/99",[5,2.793,6,5.032,10,4.159,13,2.127,19,4.945,53,3.566,62,4.159,124,4.889,191,2.762,316,6.459,763,5.032,764,6.459,765,7.671,766,6.94,767,7.671]],["t/101",[5,2.952,11,2.671,19,4.814,22,5.198,25,2.625,31,0.728,35,3.734,63,2.786,116,2.128,119,1.981,121,3.008,122,3.285,124,6.127,129,3.347,165,3.165,191,2.919,192,2.566,228,4.321,239,3.347,350,2.96,424,3.645,461,3.645,510,5.198,520,4.321,768,5.585,769,5.585,770,5.585,771,4.486,772,5.585,773,5.585,774,4.678]],["t/103",[5,2.714,20,3.891,31,0.879,45,3.632,123,2.389,124,4.751,134,2.01,193,3.098,379,3.632,393,4.21,394,3.964,425,2.625,426,3.964,427,4.89,755,5.649,775,4.123,776,3.891,777,5.417,778,5.649]],["t/105",[3,1.098,9,6.218,25,2.391,31,0.871,32,3.485,58,3.485,124,5.791,134,1.992,146,1.337,155,4.084,165,3.786,514,4.581,617,3.854,779,4.706,780,3.72,781,6.218,782,5.596,783,7.384,784,7.384]],["t/107",[3,1.292,13,1.576,16,1.209,17,2.914,21,2.816,31,1.097,32,2.683,47,1.655,71,4.16,89,2.303,100,1.027,104,5.547,105,3.729,106,3.98,107,4.131,133,1.717,146,1.029,175,2.529,176,2.864,189,2.167,191,2.047,192,3.611,232,4.521,254,3.023,291,3.623,318,2.642,361,3.438,415,4.308,473,2.914,531,3.527,610,3.729,753,4.131,785,4.308,786,4.308,787,5.143]],["t/109",[10,3.93,23,3.93,31,0.855,32,4.24,33,5.573,34,5.268,35,4.384,36,6.288,37,6.288,104,5.292,107,7.093,207,2.974,788,7.564]],["t/111",[24,1.329,30,2.234,31,0.758,42,2.572,43,2.829,46,2.832,47,1.907,58,1.587,62,1.823,71,1.823,95,2.637,96,2.604,97,1.346,98,1.788,99,1.282,101,1.435,102,1.067,104,4.261,105,3.434,107,4.671,116,1.159,119,0.822,127,1.788,135,1.986,138,1.54,150,2.51,182,2.637,183,2.859,192,1.398,205,3.091,208,1.435,220,1.329,221,1.297,222,3.63,223,3.887,224,3.967,225,2.548,227,2.548,233,2.838,239,1.823,261,2.206,268,2.832,269,3.434,282,2.444,285,2.674,305,1.755,348,1.724,413,6.995,444,2.206,513,4.122,570,1.724,742,3.336,758,2.204,789,2.206,790,5.815,791,5.412,792,4.163,793,4.736,794,3.043,795,2.444,796,2.674,797,3.043,798,1.86]],["t/113",[13,0.853,24,1.215,30,1.312,31,0.715,42,2.427,43,2.82,46,2.696,47,1.87,58,1.451,71,1.667,95,2.833,96,2.457,97,1.23,98,1.635,99,1.172,101,2.082,102,0.976,104,4.082,105,3.201,107,4.408,119,0.751,135,1.816,138,1.408,150,2.908,182,2.833,183,2.698,192,1.278,205,2.881,220,1.928,221,1.882,222,3.425,223,3.669,224,3.698,225,2.33,227,2.33,233,1.667,235,2.33,236,2.782,261,3.201,268,2.589,269,3.201,285,2.445,304,1.408,305,1.605,317,4.004,348,1.576,412,1.908,414,6.373,439,1.429,444,2.017,513,4.554,572,2.153,742,3.11,758,2.055,792,3.88,795,2.235,796,2.445,797,2.782,799,4.165,800,5.107,801,4.414,802,2.782,803,4.414,804,5.488,805,3.075,806,4.414,807,2.782]],["t/115",[23,1.032,24,1.296,25,0.616,30,0.813,31,0.605,42,2.316,43,2.9,46,1.686,47,1.886,65,0.693,71,1.778,95,0.781,96,2.08,97,0.762,98,1.013,99,0.726,104,4.211,106,6.026,107,4.206,116,1.13,148,1.152,150,2.071,173,0.994,182,3.07,183,2.574,189,0.726,190,1.075,192,1.363,205,3.735,207,0.781,220,1.296,221,1.265,222,3.269,224,3.89,235,1.443,261,2.151,262,4.793,269,3.796,272,1.384,291,1.214,305,0.994,317,3.078,344,5.326,348,0.976,413,3.89,414,4.082,437,1.181,512,1.181,513,4.264,562,3.272,739,0.959,742,2.09,758,1.381,761,2.967,775,2.389,791,2.762,792,1.514,793,2.967,794,2.967,796,1.514,799,3.498,800,4.323,801,3.908,802,1.723,804,2.967,806,1.723,808,1.514,809,1.514,810,1.604,811,2.762,812,1.904,813,1.904,814,1.904,815,1.904,816,0.928,817,5.133,818,3.28,819,3.28,820,2.296,821,4.319,822,1.904,823,1.904,824,1.904,825,1.904,826,1.904,827,1.904,828,1.904,829,1.904,830,2.383,831,4.319,832,1.904,833,2.09,834,1.333,835,1.904,836,2.608,837,3.28,838,1.904,839,1.904,840,1.514,841,1.723,842,1.723,843,1.904,844,3.28,845,1.904]],["t/117",[13,1.129,25,1.961,31,0.944,32,1.923,42,1.63,43,2.715,47,1.154,52,2.756,55,3.774,87,2.733,101,1.738,102,1.922,104,3.92,105,2.672,106,4.24,116,2.492,136,2.756,150,2.904,182,3.68,192,1.693,194,1.893,207,1.671,234,2.527,264,3.43,289,2.672,290,2.527,293,1.953,294,3.239,304,1.865,317,2.166,322,3.663,413,4.59,414,3.239,457,2.3,513,4.726,742,2.596,758,1.715,788,3.43,790,3.685,791,3.43,800,3.43,803,3.685,816,1.985,846,4.073,847,4.073,848,3.685,849,3.685,850,4.073,851,4.073,852,3.43,853,2.527,854,7.23,855,4.073,856,4.073,857,4.073,858,4.073,859,4.073,860,4.073,861,4.073,862,4.073,863,4.073,864,4.073,865,4.073,866,4.073,867,3.239,868,4.073]],["t/119",[11,2.735,13,1.753,21,3.131,70,3.496,89,2.561,93,4.012,100,0.846,134,2.617,156,4.594,164,4.147,175,2.812,176,3.185,189,2.41,207,2.594,208,2.698,480,3.823,570,3.241,596,4.594,651,3.922,739,3.185,779,4.029,869,4.029,870,6.321,871,4.147,872,5.027,873,5.027,874,4.147,875,6.321,876,4.79,877,4.594,878,5.323,879,5.719,880,4.79,881,5.323]],["t/121",[21,3.059,31,0.493,33,4.555,43,2.333,46,1.632,84,1.943,93,3.009,134,1.128,194,1.943,504,4.051,527,5.336,758,1.761,780,2.106,869,2.665,873,3.325,878,3.521,879,3.783,882,3.783,883,3.521,884,4.181,885,2.267,886,4.181,887,6.056,888,6.175,889,5.587,890,3.325,891,4.181,892,4.181,893,4.181,894,4.181,895,4.181,896,7.827,897,4.181,898,3.038,899,4.181,900,4.181,901,5.839,902,6.183,903,7.342,904,7.342,905,7.342,906,7.342,907,4.181,908,4.181,909,4.181,910,6.175,911,4.181,912,6.175,913,6.175,914,5.587,915,4.181,916,4.181,917,4.181,918,4.181,919,4.181,920,4.181,921,2.594,922,4.181,923,6.175,924,4.181,925,3.325,926,4.181,927,4.181,928,4.181]],["t/123",[31,0.824,70,3.868,132,3.25,134,1.886,138,3.202,155,3.868,169,4.732,191,2.517,208,2.984,617,3.65,651,4.338,779,4.456,869,4.456,887,6.148,929,5.888,930,5.561,931,6.992,932,6.326,933,6.992,934,5.888,935,5.561,936,5.888,937,7.946,938,6.992]],["t/125",[12,4.345,93,3.5,123,2.302,134,1.937,155,5.625,412,4.456,486,4.057,600,6.049,874,4.712,885,5.513,887,6.252,939,5.712,940,7.183,941,8.081,942,3.39]],["t/127",[43,2.209,46,2.448,87,2.83,89,2.541,92,3.273,93,3.055,100,1.097,123,3.216,134,2.706,147,2.573,173,3.273,191,2.258,192,2.607,193,2.607,313,3.335,379,3.991,411,2.419,426,3.335,553,3.89,582,5.281,739,3.159,874,4.114,939,4.987,943,4.356,944,3.273,945,4.244]],["t/129",[3,1.068,31,0.847,63,3.241,87,3.241,89,2.91,92,3.749,100,0.962,116,2.476,123,2.302,134,2.409,147,2.805,240,3.444,289,4.712,290,4.456,401,5.028,552,5.274,651,4.456,869,4.578,874,4.712,885,3.894]],["t/131",[13,1.956,16,1.501,25,2.284,31,1.041,35,4.267,47,1.344,87,3.184,89,3.578,95,2.895,96,2.858,97,3.534,98,4.697,99,3.676,100,0.944,135,4.166,136,4.774,137,4.496,175,3.138,176,3.554]],["t/133",[3,0.988,25,2.15,35,4.016,47,1.619,96,2.69,99,2.531,119,2.077,132,3.086,133,2.005,135,5.536,137,5.417,146,1.202,187,5.28,280,4.232,332,3.531,423,4.825,431,7.104,432,4.356,579,5.032,646,4.356,648,4.119,946,6.008,947,4.648,948,6.64,949,6.64]],["t/135",[5,1.326,13,1.01,24,2.2,25,1.179,32,1.719,35,2.203,43,2.956,46,2.638,47,1.06,58,1.719,84,1.693,99,2.576,100,0.488,113,2.203,119,0.89,132,2.587,133,1.681,135,5.791,136,3.767,137,2.321,146,0.659,157,1.746,168,1.901,182,2.284,183,3.626,189,1.388,205,3.287,220,1.439,221,1.405,269,3.651,271,2.014,280,5.877,281,3.295,282,2.646,283,5.036,284,3.295,285,4.427,289,2.389,290,2.259,431,6.513,432,2.389,433,5.036,575,2.76,579,4.218,665,2.76,947,2.549,950,3.642,951,2.549,952,5.566,953,3.642,954,3.642,955,3.642,956,3.642,957,3.642,958,3.642,959,3.642,960,2.102,961,3.295,962,3.295]],["t/137",[3,1.078,13,2.01,31,0.855,89,2.937,100,1.202,118,4.184,119,2.195,122,2.937,133,2.189,134,2.423,146,1.312,147,2.821,175,3.225,176,3.652,189,2.763,350,3.475,385,3.59,500,6.104]],["t/139",[13,1.599,31,0.914,43,2.524,100,1.037,116,1.988,119,2.139,120,4.121,133,2.34,134,2.09,147,1.812,198,2.566,210,3.067,385,2.857,411,2.99,451,3.904,454,2.722,455,3.676,456,3.489,457,3.257,458,4.191,459,3.257,460,4.857,461,3.406,462,2.906,463,5.218,464,5.218,644,4.587,943,4.121,963,7.011,964,7.011,965,3.578,966,7.749,967,5.767,968,5.767]],["t/141",[13,1.038,26,2.017,31,0.67,43,2.435,50,1.319,55,1.955,76,2.622,100,1.105,106,2.622,116,1.291,121,5.137,122,4.056,133,1.131,134,1.854,147,1.176,189,1.428,191,1.348,222,2.115,385,1.855,404,3.968,411,2.961,444,3.73,447,2.323,454,1.768,459,3.882,484,4.166,489,3.154,492,3.389,493,4.261,513,2.817,542,2.323,550,3.154,732,2.427,799,2.072,943,3.024,965,2.323,969,2.534,970,3.745,971,2.978,972,3.745,973,3.745,974,3.745,975,3.389,976,4.788,977,3.745,978,3.745,979,2.622,980,3.745,981,3.154,982,3.154,983,3.745,984,3.745,985,3.389,986,3.745,987,3.745]],["t/143",[13,1.238,26,2.454,31,0.899,43,2.396,50,1.572,100,1.24,112,4.94,116,1.539,118,2.577,119,1.091,120,2.374,121,3.157,122,2.625,134,2.057,147,1.402,189,1.702,191,1.607,196,5.161,198,1.986,210,2.374,348,2.289,385,2.211,411,2.499,449,4.724,454,2.107,550,3.759,560,4.86,830,3.244,943,3.445,965,2.77,969,3.021,976,5.456,988,5.682,989,5.161,990,6.479,991,4.464,992,4.039]],["t/145",[13,1.09,16,0.836,20,2.052,26,2.473,31,0.835,38,2.322,43,2.273,45,1.915,50,1.385,65,1.431,100,1.317,112,2.874,116,1.355,119,2.545,134,2.273,146,1.068,147,1.853,165,2.016,189,1.499,191,1.415,239,5.599,296,2.857,303,3.311,304,1.8,348,2.016,411,2.731,451,2.972,454,1.856,455,2.506,456,2.378,457,2.22,458,2.857,459,2.22,460,3.311,461,2.322,462,1.981,473,2.016,484,2.828,758,2.484,943,3.765,969,2.661,993,4.129,994,5.898,995,3.931,996,3.931,997,3.931,998,3.931,999,1.37,1000,3.931,1001,3.931,1002,2.661,1003,2.979]],["t/147",[13,2.169,16,1.664,31,0.922,46,3.054,47,1.49,89,3.169,97,3.13,99,2.982,100,1.047,101,3.339,102,2.482,103,4.619,175,3.48,176,3.941]],["t/149",[3,1.013,5,2.48,24,2.692,31,0.803,42,2.725,43,2.777,46,3.373,81,3.03,97,3.457,100,1.27,146,1.233,180,5.358,181,3.266,182,2.795,183,3.843,184,4.609,185,3.693,186,6.163]],["t/151",[5,1.844,16,1.078,31,1.099,42,2.027,43,2.73,46,1.978,100,1.328,102,3.211,119,2.361,123,1.623,133,2.141,146,1.283,164,3.323,180,2.861,182,2.078,183,3.153,184,3.428,185,2.746,192,2.105,208,2.162,212,4.265,213,6.414,214,4.028,215,3.511,451,2.552,732,2.162,737,4.583,738,3.546,739,2.552,740,4.583,741,4.028,742,3.228,1004,5.065,1005,5.065,1006,4.265]],["t/153",[5,2.438,42,2.679,43,2.825,46,3.336,47,1.793,99,2.553,101,2.858,102,2.124,182,3.506,205,3.954,219,5.606,220,3.377,221,3.297,223,5.693,225,5.075,226,6.058,227,5.075]],["t/155",[5,2.664,13,2.028,24,2.891,47,1.394,58,3.453,100,1.209,101,3.122,102,2.866,103,4.32,207,3.002,732,3.122,942,3.453,1007,6.619,1008,6.619,1009,5.818,1010,3.819,1011,6.161,1012,4.132,1013,7.316]],["t/157",[13,1.378,24,3.659,25,1.609,43,2.661,46,1.94,47,1.764,58,3.302,99,1.895,100,0.665,101,2.985,102,2.219,105,3.26,119,1.214,182,2.039,183,2.211,189,1.895,190,2.807,192,2.907,215,2.462,220,1.964,221,1.917,223,4.231,269,6.3,272,3.612,274,3.006,275,3.766,348,2.548,404,2.869,411,3.123,486,2.807,588,3.766,732,3.749,795,3.612,1007,4.497,1012,2.807,1014,4.97,1015,4.97,1016,4.97,1017,3.167,1018,3.363,1019,4.497,1020,4.97,1021,4.497]],["t/159",[13,1.274,24,2.614,25,1.487,43,2.841,46,1.794,47,1.837,58,3.122,99,1.751,100,0.615,101,2.823,102,2.098,105,3.014,150,2.203,182,3.479,183,3.448,189,1.751,190,2.595,192,1.91,193,1.91,215,2.276,220,1.816,221,1.772,223,4.001,254,2.443,274,2.779,275,3.482,348,2.355,404,2.652,411,2.99,476,3.869,486,2.595,588,3.482,665,3.482,732,3.308,786,3.482,925,5.26,1008,4.157,1012,2.595,1018,3.109,1019,4.157,1022,4.594,1023,3.339,1024,5.57,1025,3.869,1026,4.594,1027,4.157,1028,4.594,1029,4.594,1030,4.594,1031,4.594,1032,4.157]],["t/162",[5,1.984,42,2.18,43,2.902,47,1.42,101,3.628,102,1.729,119,1.332,182,3.488,183,2.424,191,1.962,215,2.699,269,3.575,408,4.334,411,3.526,486,5.162,692,3.96,732,2.326,795,3.96,1012,4.801,1021,6.747,1024,4.589,1025,4.589,1032,6.747,1033,9.14,1034,3.96,1035,6.747,1036,5.449,1037,5.449]],["t/164",[3,0.6,5,1.468,24,1.593,42,1.613,43,2.904,46,2.347,47,1.763,81,2.674,101,3.95,113,3.636,116,1.39,182,3.269,183,3.197,185,3.896,187,3.206,189,1.537,198,1.793,215,1.997,269,5.225,272,2.93,274,4.347,332,2.144,411,2.319,454,1.903,486,4.059,514,2.501,672,5.061,692,2.93,732,2.565,795,4.368,951,2.822,979,2.822,1012,5.227,1038,8.375,1039,2.93,1040,4.032,1041,2.57,1042,4.032,1043,4.032,1044,4.032,1045,4.032,1046,4.032,1047,3.206,1048,3.055,1049,2.822]],["t/166",[16,0.919,31,0.746,43,2.751,47,1.802,81,1.921,87,1.949,97,1.728,99,1.646,100,0.578,101,3.909,102,2.613,103,2.55,116,2.179,119,1.055,157,3.032,159,3.138,182,3.379,183,1.921,189,1.646,215,2.139,269,2.833,289,2.833,290,2.679,292,3.272,293,2.07,294,3.434,324,2.562,363,3.434,406,3.272,411,3.382,454,2.985,732,2.699,755,3.272,795,3.138,1024,3.636,1025,3.636,1035,3.907,1038,3.907,1050,7.481,1051,5.325,1052,6.323,1053,6.323,1054,5.325,1055,6.323,1056,4.318,1057,3.434,1058,4.318,1059,2.254,1060,3.907,1061,3.272,1062,4.318,1063,4.318]],["t/168",[94,3.946,100,1.102,147,2.585,172,3.61,191,2.963,411,3.175,514,5.106,688,6.93,739,4.146]],["t/170",[31,0.817,47,1.32,94,3.323,147,2.177,172,3.04,190,3.914,191,2.495,199,4.326,231,4.69,243,3.618,358,3.433,364,5.037,441,4.735,493,3.04,513,3.433,776,3.618,799,3.834,945,4.69,965,4.3,1064,5.512,1065,6.931,1066,5.037,1067,6.931,1068,6.931,1069,4.852]],["t/172",[11,3.677,55,4.436,58,3.134,79,5.591,94,3.183,128,4.356,131,5.467,172,2.912,177,2.796,189,2.531,191,2.391,215,3.289,280,4.232,493,2.912,705,5.591,1070,5.975,1071,6.64,1072,6.64,1073,4.493,1074,6.64,1075,6.64,1076,6.64,1077,6.008,1078,5.591,1079,6.64]],["t/174",[10,1.921,16,1.16,26,1.599,31,0.783,63,1.599,65,1.29,94,1.699,99,1.351,100,0.998,102,2.107,116,1.221,119,2.078,122,1.436,123,1.136,133,2.252,134,0.956,137,2.259,145,1.785,146,0.987,172,1.554,191,1.276,192,1.473,209,3.576,215,1.755,237,3.601,252,4.121,317,1.884,387,3.088,451,2.746,461,3.219,462,3.757,473,2.795,475,3.219,493,1.554,495,2.325,513,1.755,799,1.96,965,2.198,999,2.314,1069,2.481,1080,6.01,1081,5.283,1082,5.451,1083,2.093,1084,3.206,1085,2.481,1086,2.984,1087,2.984,1088,2.818,1089,3.544,1090,3.206,1091,2.398,1092,3.206,1093,5.451,1094,3.015,1095,2.984,1096,3.206,1097,2.984,1098,3.544,1099,3.544,1100,3.544,1101,4.932,1102,5.451,1103,4.932,1104,2.984,1105,2.984,1106,5.594,1107,2.818,1108,3.297,1109,3.752,1110,4.932,1111,5.451,1112,3.544,1113,2.686,1114,3.544,1115,3.206,1116,3.544,1117,3.206,1118,2.198,1119,2.984,1120,2.818,1121,2.575,1122,3.544,1123,4.335]],["t/176",[26,1.84,94,3.007,121,4.712,172,2.751,185,3.4,191,2.258,387,2.915,428,4.752,451,4.127,459,3.542,484,3.927,493,4.401,542,5.082,732,2.676,799,3.469,965,3.89,981,5.281,982,5.281,1069,4.39,1124,8.191,1125,6.897,1126,6.271,1127,6.897,1128,6.271,1129,4.114,1130,5.674]],["t/178",[3,0.377,6,1.662,16,1.131,24,1.001,26,2.151,31,0.727,35,1.532,43,0.683,47,0.482,94,1.214,104,1.373,119,1.299,123,1.337,129,1.373,133,1.259,146,0.755,172,1.111,185,1.373,191,2.219,199,3.632,202,2.133,209,1.662,220,2.436,221,2.829,235,1.92,239,2.261,252,2.588,271,2.941,282,1.841,317,2.218,328,2.92,342,1.662,348,1.299,357,1.496,358,1.255,360,2.014,384,1.431,387,2.865,408,2.014,412,2.588,421,1.841,450,2.92,451,1.276,475,4.33,480,1.532,493,1.111,513,3.632,596,3.864,643,2.133,672,3.512,758,1.757,867,4.228,880,1.92,964,2.292,965,3.824,999,3.502,1069,4.315,1081,3.317,1088,3.317,1094,1.401,1118,1.571,1123,2.014,1131,5.133,1132,1.401,1133,4.114,1134,4.171,1135,4.671,1136,3.774,1137,2.92,1138,2.292,1139,4.171,1140,2.533,1141,3.031,1142,2.292,1143,4.171,1144,2.736,1145,4.171,1146,2.823,1147,2.014,1148,2.292,1149,2.533,1150,3.512,1151,2.533,1152,2.533,1153,1.92,1154,2.533,1155,1.276,1156,2.292,1157,1.196,1158,2.533,1159,2.014,1160,1.431,1161,4.171,1162,2.533,1163,2.658,1164,2.292,1165,2.533,1166,2.533,1167,2.292,1168,3.317]],["t/180",[3,0.744,11,2.164,16,1.064,26,2.061,47,1.768,72,2.766,81,3.125,94,2.398,102,3.136,119,1.222,133,1.51,172,2.194,177,2.106,185,2.711,191,1.801,322,4.25,324,2.026,444,4.609,475,4.149,493,2.194,732,2.134,969,3.384,1097,4.211,1103,4.525,1121,3.634,1123,3.977,1153,6.155,1169,5.001,1170,4.525,1171,8.397,1172,5.757,1173,4.525,1174,5.001,1175,5.001,1176,5.001,1177,4.525,1178,6.676,1179,7.026,1180,3.79,1181,4.525,1182,5.106]],["t/182",[16,1.917,26,1.545,40,2.701,43,1.421,47,1.003,94,2.526,99,4.004,119,2.202,135,4.302,172,2.311,191,1.897,220,2.879,221,2.032,324,2.952,431,3.992,451,2.654,475,3.111,493,2.311,532,4.205,543,3.688,601,2.567,1094,4.029,1106,6.135,1108,4.406,1131,3.688,1163,3.357,1183,4.766,1184,6.135,1185,4.766,1186,4.189,1187,4.766,1188,5.268,1189,2.975,1190,6.329,1191,5.294,1192,3.992,1193,2.75]],["t/184",[16,1.616,26,2.229,47,1.447,94,3.642,119,1.856,172,3.332,191,2.735,451,3.827,475,4.486,493,3.332,495,6.537,601,3.701,1131,5.318,1194,6.874,1195,3.895]],["t/186",[3,0.683,19,2.443,26,1.94,31,0.542,43,1.784,47,0.875,65,2.822,94,2.203,100,0.615,172,2.015,191,1.654,215,3.276,237,3.586,243,2.398,387,3.075,393,5.949,394,4.122,411,1.772,426,2.443,439,2.135,444,3.014,458,3.339,462,3.905,465,2.779,475,3.906,484,4.065,493,2.015,527,6.529,533,4.157,534,3.482,570,2.355,601,2.238,811,7.139,965,2.85,999,2.304,1010,2.398,1121,4.807,1131,4.63,1196,3.869,1197,5.57,1198,3.482,1199,5.985,1200,3.654,1201,4.594,1202,4.594,1203,2.355]],["t/188",[26,2.454,94,3.105,131,4.626,172,2.841,185,3.511,191,2.332,237,4.535,387,3.888,462,4.214,475,3.824,484,4.978,493,2.841,527,4.707,534,4.908,1131,5.855,1204,7.022,1205,6.476]],["t/190",[3,0.918,26,2.378,38,3.645,55,3.222,94,2.96,100,1.085,118,3.563,121,4.993,122,3.895,172,2.708,185,3.347,191,2.223,404,3.563,444,5.318,459,3.486,475,3.645,484,4.34,489,5.198,493,3.971,732,2.635,965,3.83,981,5.198,982,5.198,1069,4.321,1206,8.107]],["t/192",[26,1.325,31,0.532,38,2.666,94,2.165,100,1.284,112,3.183,118,2.606,122,3.408,133,1.364,146,0.818,155,3.613,172,1.981,191,1.626,196,4.421,198,2.009,203,3.161,210,2.401,222,2.55,237,2.448,387,2.099,425,2.301,449,4.082,456,3.951,459,5.04,462,3.291,475,3.857,493,1.981,506,3.281,705,3.802,965,2.801,988,5.427,989,5.194,1069,3.161,1090,5.91,1108,3.951,1193,3.41,1207,5.501,1208,3.802,1209,3.422,1210,2.55,1211,4.053,1212,5.501,1213,3.802,1214,4.951,1215,4.515,1216,3.802,1217,3.056,1218,3.591,1219,4.085]],["t/194",[3,1.004,16,1.828,26,2.521,94,3.238,95,2.771,100,0.904,119,2.565,172,2.962,191,2.431,239,5.567,451,3.402,475,3.988,493,2.962,601,4.186,759,7.235,993,4.728,1131,4.728]],["t/196",[11,3.489,26,2.366,94,2.937,129,5.857,172,2.687,191,2.205,237,3.321,304,4.682,462,4.063,475,4.763,493,2.687,513,3.995,535,4.288,1131,5.646,1135,7.263,1220,5.158,1221,6.125,1222,5.542,1223,6.125]],["t/198",[11,1.413,13,0.905,16,1.893,31,0.385,55,1.705,56,2.597,63,1.474,65,2.296,87,1.474,89,1.323,94,1.566,99,1.95,100,0.685,102,2.265,116,1.125,119,0.798,126,1.928,127,1.737,138,1.495,141,2.373,145,2.577,147,2.242,148,3.094,172,2.244,177,3.852,191,2.791,192,1.357,208,1.394,231,2.21,240,1.566,254,2.721,271,2.83,324,1.323,385,1.617,411,1.974,425,2.73,454,1.541,456,1.975,465,1.975,470,2.597,493,1.432,495,2.142,531,3.913,532,1.885,586,2.286,597,2.081,601,3.776,776,2.67,942,2.977,947,2.286,960,1.885,965,2.026,1061,2.475,1066,2.373,1094,1.806,1113,2.475,1157,4.317,1186,2.597,1190,2.475,1193,2.67,1210,1.844,1213,2.75,1224,2.475,1225,3.265,1226,6.307,1227,2.475,1228,2.597,1229,3.265,1230,3.265,1231,3.265,1232,3.265,1233,3.265,1234,4.629,1235,3.265,1236,3.265,1237,3.265,1238,3.265,1239,2.142,1240,3.265,1241,3.265,1242,3.265,1243,2.597,1244,3.265,1245,3.265,1246,3.265,1247,3.265,1248,3.265,1249,2.475,1250,3.265,1251,3.265,1252,2.475,1253,3.265,1254,2.373,1255,3.265,1256,3.265]],["t/200",[81,3.166,100,1.296,122,2.884,123,2.281,131,4.912,134,1.92,189,3.691,237,3.859,348,3.649,387,4.128,393,4.02,394,3.785,485,4.67,544,5.395,799,3.937,820,4.983,1070,4.537,1257,5.173]],["t/202",[43,2.305,87,3.022,100,0.896,116,2.308,129,3.63,131,4.727,134,1.806,237,5.375,387,3.972,461,3.954,520,4.688,560,4.268,951,4.688,1258,5.325,1259,5.639,1260,4.688,1261,5.639,1262,5.325,1263,5.639,1264,5.325,1265,5.639,1266,6.696,1267,6.696,1268,6.696,1269,6.696]],["t/204",[100,1.298,134,2.22,222,4.648,387,3.826,449,4.377,816,4.01,1144,5.399,1270,5.981]],["t/206",[43,1.733,87,2.899,100,1.114,116,2.214,121,4.054,131,4.602,134,1.733,222,3.628,387,2.986,449,5.191,560,4.094,951,4.497,1258,5.109,1259,5.409,1260,4.497,1261,5.409,1262,5.109,1263,5.409,1264,5.109,1265,5.409,1271,6.617,1272,6.424,1273,5.812,1274,8.32,1275,8.32,1276,8.32]],["t/208",[43,1.556,87,3.497,89,2.337,92,3.011,100,1.172,116,1.988,118,3.329,119,1.894,122,2.337,131,4.286,133,1.742,134,2.09,146,1.044,147,1.812,222,3.257,237,3.127,289,3.784,290,3.578,387,3.602,449,4.976,560,3.676,951,4.038,988,4.201,992,7.011,1258,4.587,1259,4.857,1260,4.038,1261,4.857,1262,4.587,1263,4.857,1264,4.587,1265,4.857,1271,6.96,1273,5.218,1277,5.767,1278,4.857]],["t/210",[2,2.073,3,0.684,4,1.997,20,1.489,26,0.837,31,0.78,41,1.685,45,1.39,75,2.073,89,3.141,90,2.269,92,1.489,93,1.39,94,1.368,100,1.391,116,1.584,119,1.894,120,1.517,121,1.39,122,2.939,123,2.944,131,3.659,132,3.789,134,2.565,147,2.939,158,1.872,172,1.251,177,1.201,178,1.413,181,2.203,191,1.027,192,1.91,207,1.171,237,1.547,239,1.547,240,1.368,305,3.786,306,2.402,313,2.444,348,2.356,350,1.368,379,3.223,387,3.075,393,2.595,394,2.444,395,2.269,400,2.073,403,1.872,411,2.798,418,1.647,441,1.547,447,1.77,449,1.517,481,1.931,485,3.015,506,2.073,553,2.851,565,2.269,739,2.907,775,1.578,853,1.77,869,1.818,871,1.872,874,1.872,876,2.162,877,3.339,945,1.931,988,1.547,999,0.994,1064,2.269,1129,3.015,1278,2.402,1279,2.269,1280,2.581,1281,2.269,1282,2.162,1283,2.269,1284,3.339,1285,2.853,1286,2.073]],["t/212",[3,0.956,16,1.367,26,1.885,30,2.742,31,0.757,47,1.224,50,2.262,95,2.636,96,2.603,100,1.307,102,2.038,123,2.059,134,2.244,142,3.353,146,1.163,147,2.018,181,3.08,313,4.425,379,3.13,483,5.109,852,5.409,999,2.238,1133,2.67,1204,4.214,1209,4.868,1287,6.424,1288,6.424,1289,5.409,1290,5.812,1291,5.409,1292,4.868]],["t/214",[3,1.175,92,4.124,100,1.267,123,2.532,132,3.673,138,3.618,142,4.124,181,3.788,305,4.124,380,7.149,381,5.988,1292,5.988]],["t/216",[26,1.885,45,3.13,75,4.668,100,1.114,123,2.666,134,1.733,189,2.449,313,3.416,346,4.868,358,3.182,379,4.054,481,4.347,527,4.668,774,4.868,867,5.109,876,4.868,877,6.047,887,4.497,929,5.409,999,2.238,1133,2.67,1137,4.497,1144,5.458,1150,5.409,1257,4.668,1281,5.109,1282,4.868,1293,6.994,1294,6.424]],["t/218",[134,2.243,313,5.19,617,4.341,887,5.822,934,7.003,935,6.614,936,7.003]],["t/220",[0,5.239,13,1.725,31,0.734,45,3.031,53,2.892,58,2.937,84,2.892,117,4.355,147,1.954,169,4.21,172,3.574,233,3.373,293,2.983,313,3.309,379,3.031,441,4.927,885,3.373,887,4.355,1142,5.629,1295,4.948,1296,10.009,1297,6.221,1298,9.642,1299,5.629,1300,6.221,1301,5.239,1302,6.221,1303,6.221,1304,6.221,1305,6.221]],["t/222",[3,0.864,40,2.979,47,1.673,65,2.115,95,3.195,100,0.778,119,1.42,123,1.862,134,1.567,138,2.661,146,1.41,164,3.811,176,2.927,194,2.701,302,2.979,317,3.09,328,4.067,329,5.257,379,2.831,425,2.743,441,3.15,513,2.878,546,3.932,553,3.604,570,2.979,999,2.713,1091,3.932,1133,3.237,1137,6.149,1148,5.257,1157,3.676,1306,4.403,1307,4.067,1308,5.257,1309,5.452,1310,5.81,1311,5.81,1312,5.257]],["t/224",[47,1.265,50,2.338,58,3.134,100,1.138,102,2.106,123,2.128,131,4.701,134,2.528,178,3.289,313,4.52,364,4.825,379,4.141,403,4.356,553,4.119,1133,2.76,1137,4.648,1178,5.032,1204,4.356,1283,5.28,1289,5.591,1313,6.64,1314,3.921,1315,6.008,1316,4.356,1317,4.825,1318,6.64]],["t/226",[53,3.309,100,0.953,138,3.26,158,4.67,167,4.67,177,2.998,178,3.526,234,4.416,304,3.26,324,2.884,403,4.67,454,3.36,462,3.586,534,5.395,570,3.649,1150,5.994,1204,4.67,1289,7.479,1292,5.395,1319,7.118,1320,5.994,1321,5.994,1322,4.67]],["t/228",[3,0.588,13,1.096,26,1.159,30,1.686,31,0.698,43,2.55,47,1.128,63,1.783,70,2.185,71,3.21,81,1.758,87,1.783,89,1.601,92,2.062,95,1.621,96,1.601,100,1.187,101,1.686,102,1.254,116,1.362,123,1.266,127,2.101,134,2.278,138,1.809,146,1.072,147,2.23,153,2.994,158,2.592,161,2.518,162,2.871,168,2.062,173,2.062,181,1.894,189,1.506,205,4.193,207,1.621,220,1.562,222,2.231,240,1.894,263,3.575,271,2.185,289,2.592,290,2.451,291,2.518,313,2.101,318,1.837,379,1.925,382,2.766,383,3.142,384,4.01,393,2.231,394,2.101,447,4.893,462,1.991,521,3.21,732,1.686,901,6.271,1018,2.674,1133,1.642,1196,3.327,1291,3.327,1323,3.951,1324,3.575,1325,5.921,1326,3.951,1327,4.986,1328,3.142,1329,5.357,1330,3.951,1331,3.142,1332,2.451,1333,3.951,1334,3.951,1335,3.142,1336,3.951,1337,3.951,1338,3.951]],["t/230",[1,3.347,3,0.918,11,2.671,20,4.232,31,0.728,50,2.174,55,3.222,100,0.826,145,3.11,147,3.019,172,2.708,189,2.353,191,2.223,192,3.37,411,3.128,441,4.395,506,5.891,521,3.347,553,5.03,565,4.909,776,3.222,942,2.914,945,5.486,1017,3.934,1064,4.909,1066,4.486,1118,3.83,1192,4.678,1339,6.447,1340,4.321]],["t/232",[13,2.319,31,0.764,55,4.366,100,1.12,123,2.68,147,2.627,192,2.692,215,3.208,379,4.075,411,3.574,435,4.707,461,4.939,493,3.669,553,5.189,746,5.86,874,4.249,943,3.444,945,5.66,1306,4.908,1339,5.15,1341,8.364,1342,5.15]],["t/234",[20,4.045,31,1.032,55,4.045,81,2.566,100,1.172,123,2.483,147,2.939,177,2.429,189,2.199,192,2.397,379,3.776,411,3.376,461,3.406,462,2.906,493,2.53,506,6.36,553,4.808,661,5.873,820,4.038,874,3.784,939,4.587,943,3.067,945,3.903,1017,3.676,1066,4.191,1189,3.257,1339,4.587,1342,4.587,1343,5.767,1344,5.767,1345,5.767,1346,7.749]],["t/236",[20,4.474,31,0.926,38,2.778,43,2.544,50,1.657,55,2.455,100,0.63,123,1.507,128,3.086,131,3.721,147,3.222,189,1.793,192,1.955,215,3.332,221,1.815,231,5.314,379,3.277,411,2.595,441,5.481,461,2.778,462,2.37,475,2.778,506,6.228,553,2.918,661,3.565,943,3.577,945,3.183,1017,2.998,1064,5.35,1066,3.418,1070,2.998,1135,3.565,1204,3.086,1339,3.74,1342,3.74,1347,4.703,1348,3.418,1349,3.418,1350,4.703,1351,4.703,1352,6.727,1353,3.183]],["t/238",[16,1.529,26,2.108,31,0.609,47,1.574,50,1.819,65,1.88,87,2.331,89,2.092,100,1.196,102,2.28,103,3.05,119,1.262,123,1.655,133,1.56,134,1.393,138,2.365,147,2.806,150,2.476,157,2.476,172,2.265,173,3.751,191,3.381,215,2.558,221,1.992,237,2.8,271,2.857,400,3.753,411,3.446,461,3.05,462,2.602,473,2.648,513,2.558,727,3.495,732,2.204,738,3.615,739,2.602,758,2.175,939,4.107,943,2.747,944,2.696,999,2.503,1092,4.673,1348,3.753,1349,3.753,1354,3.753,1355,3.615]],["t/240",[3,0.744,11,2.164,13,1.948,16,1.064,18,3.634,19,2.66,26,1.467,27,2.887,30,2.134,31,0.828,87,2.257,92,2.611,100,1.087,102,1.587,112,2.437,119,1.222,122,2.026,133,1.51,146,1.272,174,3.384,177,2.106,193,2.079,207,2.052,208,2.134,297,2.887,298,3.281,302,3.602,336,3.501,350,2.398,364,3.634,371,5.916,403,4.609,446,3.025,449,2.66,560,3.187,586,4.919,614,3.977,742,4.478,988,4.403,989,3.384,1039,3.634,1207,4.211,1270,3.634,1356,4.919,1357,3.501,1358,4.525,1359,5.001,1360,3.977,1361,5.001,1362,3.977,1363,3.501,1364,3.977,1365,4.525,1366,3.384,1367,5.001,1368,5.001,1369,3.79,1370,5.001]],["t/242",[16,1.638,31,0.908,100,0.608,101,1.938,121,3.196,122,1.84,133,2.701,175,3.979,223,3.968,254,2.415,262,7.597,274,3.968,449,5.232,461,4.547,469,5.524,473,2.328,484,2.177,584,2.817,830,4.767,836,5.216,988,3.556,1144,2.979,1147,6.123,1207,7.101,1270,3.3,1371,4.109,1372,4.109,1373,4.109,1374,6.559,1375,6.484,1376,6.967,1377,6.559,1378,6.559,1379,6.559,1380,6.559,1381,6.559]],["t/244",[16,1.413,21,3.289,47,1.786,58,3.134,60,4.232,87,2.996,92,3.466,99,3.24,101,2.834,102,2.106,103,3.921,165,3.404,177,2.796,193,2.76,208,3.627,220,2.624,221,3.279,252,4.119,543,4.648,584,4.119,727,4.493,999,2.313,1070,4.232,1119,5.591,1382,5.032,1383,5.591,1384,6.008]],["t/246",[16,1.39,25,2.485,27,2.606,30,1.927,31,0.905,45,3.739,47,1.462,49,5.195,50,1.59,53,2.099,55,4.39,65,1.644,70,2.498,81,2.009,95,1.853,96,1.829,99,1.721,108,5.361,116,1.556,138,2.068,171,3.802,173,2.357,198,2.009,208,1.927,219,4.285,220,3.527,221,3.589,222,4.335,244,3.056,265,3.802,302,2.315,317,2.401,410,3.281,454,2.131,493,3.689,514,2.801,597,2.878,648,2.801,753,3.281,764,3.802,782,3.422,820,3.161,902,5.501,1059,2.357,1385,4.515,1386,4.515,1387,3.591,1388,4.085,1389,4.085,1390,4.085,1391,4.515,1392,4.085,1393,4.515,1394,4.515,1395,4.515,1396,3.591]],["t/248",[219,5.235,220,3.154,221,3.079,299,3.406,412,4.951,454,3.767,514,4.951,748,7.221,898,5.8,1397,7.221,1398,6.048,1399,7.221]],["t/250",[3,0.749,13,1.396,16,1.879,21,2.493,30,2.148,31,0.832,46,1.965,65,1.832,76,3.523,97,2.014,98,2.677,99,3.107,102,2.239,116,1.735,119,1.23,135,2.972,165,2.58,189,1.919,220,3.676,221,3.589,233,2.729,299,2.148,303,4.238,459,2.842,480,3.044,486,2.842,513,3.496,722,4.554,732,2.148,780,2.536,799,3.904,816,3.438,921,3.122,999,1.753,1083,2.972,1118,4.378,1132,2.784,1212,4.238,1332,5.056,1357,3.523,1400,3.658,1401,4.554,1402,3.208,1403,4.238,1404,3.658,1405,2.972,1406,4.554,1407,3.208,1408,4.002]],["t/252",[16,1.044,24,2.74,25,2.245,30,2.959,31,0.948,43,2.823,45,2.391,47,1.755,49,3.903,55,2.562,65,1.787,71,2.661,116,1.692,127,2.61,146,0.889,165,2.516,191,1.767,198,2.183,208,2.095,210,2.61,220,2.74,221,2.675,222,2.772,233,2.661,244,4.692,245,3.567,299,2.095,317,2.61,324,1.989,385,2.431,411,1.893,564,3.903,631,4.133,789,3.22,902,4.133,1002,3.321,1217,3.321,1332,3.045,1392,6.273,1405,2.898,1409,4.441,1410,3.903,1411,4.908,1412,3.567,1413,4.441,1414,4.441,1415,6.933,1416,6.933,1417,4.908]],["t/254",[10,2.354,16,0.924,21,3.145,25,2.055,27,2.506,30,3.524,31,0.974,43,2.024,46,1.695,47,1.43,69,2.402,76,4.444,96,1.759,99,1.655,102,1.377,116,1.496,126,2.564,172,1.904,174,2.938,179,3.29,189,1.655,193,1.805,194,2.018,220,3.263,221,3.54,254,2.309,299,1.853,324,1.759,332,2.309,363,5.049,385,2.151,486,4.663,513,2.151,542,2.694,564,6.566,760,3.656,780,2.187,789,4.165,799,2.402,871,2.848,1081,5.049,1083,2.564,1091,4.296,1094,2.402,1118,2.694,1212,3.656,1332,2.694,1357,5.254,1387,3.453,1418,4.342,1419,4.342,1420,4.342,1421,4.342,1422,4.342,1423,6.349,1424,7.505,1425,4.342,1426,4.342,1427,4.342]],["t/256",[13,2.01,34,5.268,89,3.639,93,3.532,100,0.97,123,2.879,134,2.423,147,2.277,175,3.225,176,3.652,313,3.855,379,4.376,426,3.855,483,5.765,872,5.765,944,3.784,1290,6.559,1292,5.493]],["t/258",[13,1.939,26,2.051,31,0.824,33,4.338,41,4.129,45,3.407,53,3.25,75,5.081,100,1.176,123,2.815,134,1.886,189,2.666,379,4.279,388,4.036,417,5.081,481,4.732,876,5.299,877,6.382,999,2.436,1281,5.561,1282,5.299,1428,5.888]],["t/260",[134,2.049,158,4.984,169,5.141,208,3.242,379,4.504,384,4.291,435,6.718,739,3.827,779,4.842,799,4.202,1314,4.486,1342,6.042,1429,7.597,1430,6.874,1431,7.597]],["t/262",[43,2.423,93,4.376,134,1.955,169,4.905,379,4.755,435,7.093,457,4.094,617,3.784,885,3.93,887,5.074,934,7.564,935,5.765,936,6.104,941,6.559,1432,7.249]],["t/264",[3,0.484,31,0.84,43,2.464,45,2.484,63,1.468,81,1.447,87,1.468,89,1.318,92,1.698,100,1.099,116,1.121,121,2.484,122,2.066,123,2.928,134,1.921,138,1.489,146,0.589,147,2.578,153,2.465,157,1.559,158,2.133,161,2.073,162,2.363,168,1.698,173,2.662,175,1.447,177,1.37,189,1.944,193,1.352,207,2.092,210,1.729,237,1.763,240,2.445,289,2.133,290,2.018,310,2.942,313,1.729,323,2.465,379,4.181,382,2.277,383,2.586,384,2.88,394,1.729,401,3.57,404,1.877,411,2.748,416,2.738,426,2.712,435,4.571,437,2.018,457,1.837,458,2.363,459,2.88,462,3.169,484,1.559,485,2.133,521,1.763,570,1.667,584,2.018,600,2.738,799,2.821,816,1.584,925,5.002,937,2.942,976,4.294,985,2.942,988,1.763,1069,2.277,1080,2.942,1095,2.738,1167,2.942,1283,2.586,1320,2.738,1389,2.942,1401,2.942,1430,2.942,1433,5.099,1434,4.614,1435,3.252,1436,3.252,1437,5.099,1438,3.252,1439,3.252,1440,3.252,1441,2.586,1442,3.252,1443,3.252,1444,3.252,1445,3.252,1446,3.252,1447,3.252,1448,2.465,1449,2.942]],["t/266",[3,1.094,11,2.31,13,1.48,16,1.136,26,2.157,45,2.601,75,3.88,84,2.482,89,2.163,93,2.601,100,1.315,123,2.904,133,1.612,134,2.444,142,2.787,146,0.967,147,2.309,164,3.502,171,4.496,175,2.375,176,2.69,181,2.56,189,2.035,194,2.482,296,3.88,342,3.502,387,2.482,481,3.613,485,3.502,504,3.502,584,3.312,739,2.69,758,2.248,780,2.69,798,2.953,871,3.502,876,4.046,877,5.343,999,1.86,1281,4.246,1282,4.046,1292,4.046,1396,4.246,1450,4.496,1451,5.339,1452,5.339]],["t/268",[13,1.673,18,2.945,31,0.478,40,2.078,45,2.94,93,3.891,94,3.456,100,1.241,123,3.176,134,2.776,138,1.856,145,2.042,147,1.273,155,2.241,156,2.945,201,2.658,313,4.247,379,4.743,385,2.007,388,4.161,411,1.563,426,3.833,435,2.945,516,3.667,575,3.071,651,2.514,779,3.846,853,2.514,869,4.594,871,5.239,873,3.223,874,6.25,1109,3.408,1279,3.223,1280,3.667,1453,6.034,1454,6.034,1455,5.459,1456,4.052,1457,4.052,1458,4.052,1459,4.052]],["t/270",[31,0.764,43,2.256,87,2.923,89,2.624,92,3.381,100,1.24,116,2.232,123,2.969,134,2.256,138,2.966,147,3.075,178,3.208,191,2.332,192,2.692,313,4.448,379,4.075,842,5.86,874,5.487,943,3.444,1239,4.249,1316,4.249,1460,6.476,1461,6.476]],["t/272",[3,0.691,5,1.692,11,2.011,13,1.289,16,0.989,19,2.472,26,2.501,31,0.92,94,2.229,97,1.86,100,1.258,112,3.801,118,3.85,119,2.5,120,3.547,121,3.801,122,3.454,125,3.523,129,2.52,133,1.404,134,2.434,138,2.129,146,0.842,147,2.951,193,1.932,239,4.23,341,3.049,350,3.74,385,2.302,388,2.683,446,2.812,520,3.254,532,2.683,560,2.963,601,2.265,607,2.963,775,2.571,963,4.206,988,4.23,1462,4.206]],["t/274",[31,0.685,43,2.639,100,1.176,102,2.471,119,1.42,122,2.354,123,1.862,134,1.567,181,2.786,189,2.969,237,3.15,244,5.27,348,2.979,387,2.701,393,3.281,394,3.09,439,2.701,447,3.604,449,4.141,601,2.831,732,2.48,816,2.831,901,4.62,1010,3.033,1018,3.932,1129,3.811,1257,4.222,1271,4.62,1324,5.257,1327,4.892,1329,5.257,1463,7.787,1464,5.81,1465,7.787,1466,5.81,1467,5.81,1468,5.81]],["t/276",[3,0.822,31,0.652,43,1.49,63,2.494,81,2.458,87,2.494,89,2.239,92,2.884,100,1.36,116,1.904,123,1.771,132,2.568,133,1.669,134,2.03,138,2.53,146,1,147,2.689,153,4.188,158,3.625,161,3.522,162,4.016,168,2.884,173,2.884,207,2.267,240,2.649,289,3.625,290,3.428,382,3.868,383,4.394,384,3.121,393,3.121,394,2.939,447,3.428,601,2.692,820,3.868,901,4.394,1010,2.884,1018,3.739,1257,4.016,1327,4.653,1469,7.528,1470,6.339,1471,5.526,1472,5.526,1473,5]],["t/278",[13,2.258,31,0.96,63,3.676,89,3.3,100,1.09,134,2.197,147,2.558,175,3.623,176,4.103,240,3.905]],["t/280",[3,1.022,13,1.905,100,0.92,112,3.347,118,3.966,119,2.446,120,3.654,121,3.347,122,3.519,134,1.853,146,1.244,147,3.144,193,2.856,239,3.725,350,3.294,385,3.403,446,4.156,560,4.379,775,3.8,988,3.725,1462,6.216]],["t/282",[13,1.782,19,2.348,31,0.893,65,1.607,100,1.236,116,2.215,121,3.131,122,1.789,129,2.393,133,1.94,134,1.191,138,2.022,147,2.614,150,2.117,177,1.859,178,2.187,189,1.683,304,2.943,341,2.896,387,2.987,411,1.703,428,5.742,449,2.348,451,3.237,454,2.084,459,2.493,481,4.349,493,4.366,535,3.09,542,6.357,562,2.814,573,3.994,799,2.442,898,3.208,943,3.417,1105,3.717,1127,7.447,1129,4.216,1130,5.814,1224,3.346,1271,3.511,1455,3.994,1474,4.414,1475,4.414,1476,4.414,1477,4.414,1478,4.414]],["t/284",[11,1.28,16,1.007,26,1.735,31,0.697,43,2.125,47,1.895,50,1.042,55,1.545,63,1.336,65,1.078,72,1.637,96,1.199,100,0.989,102,3.185,103,2.795,116,1.631,119,1.806,133,1.429,134,1.595,146,0.536,147,1.858,177,1.993,191,2.129,252,1.836,320,2.072,324,1.199,411,3.04,417,2.151,444,4.433,451,1.491,454,2.234,532,2.732,732,2.02,758,1.246,943,3.593,969,3.203,979,3.313,1061,2.243,1097,2.492,1118,3.669,1121,2.151,1153,4.482,1170,2.678,1171,8.224,1172,5.332,1173,2.678,1177,2.678,1178,3.587,1189,2.673,1197,2.492,1252,3.587,1355,2.072,1413,2.678,1479,2.354,1480,2.96,1481,2.96,1482,2.96,1483,2.96,1484,2.96,1485,2.96,1486,2.96,1487,2.96,1488,2.96,1489,2.96,1490,2.96,1491,2.96,1492,2.96,1493,2.151,1494,4.282,1495,2.96,1496,2.96,1497,2.678,1498,2.151,1499,2.96,1500,2.96,1501,2.96,1502,2.96,1503,2.492,1504,2.492,1505,2.492,1506,2.492]],["t/286",[31,0.981,43,2.524,46,1.491,52,2.583,55,1.993,63,1.723,76,4.869,100,0.772,134,1.03,150,3.334,157,1.83,252,3.579,305,1.993,317,4.426,342,2.504,411,2.226,441,3.128,451,1.923,493,1.674,513,4.913,553,3.579,616,3.215,742,3.677,776,1.993,830,2.774,848,3.454,872,3.036,878,4.858,882,3.454,883,5.856,925,3.036,942,1.802,943,3.068,975,7.919,1084,3.454,1086,3.215,1087,3.215,1088,6.164,1254,2.774,1258,3.036,1295,3.036,1507,3.817,1508,3.215,1509,3.817,1510,5.22,1511,8.322,1512,5.769,1513,3.817,1514,6.955,1515,3.817,1516,5.769,1517,3.036,1518,3.817,1519,5.769,1520,6.955,1521,3.817,1522,3.817,1523,3.817,1524,3.817,1525,3.454,1526,3.817]],["t/288",[5,1.184,11,2.721,19,2.712,26,2.269,31,0.84,43,2.57,50,1.145,100,1.099,104,2.765,116,1.121,119,0.795,129,5.832,134,1.921,138,1.489,147,1.021,150,1.559,191,2.265,192,1.352,237,2.765,243,1.698,304,4.496,411,2.427,454,2.407,457,1.837,462,3.897,471,2.586,481,2.201,513,4.065,520,2.277,532,1.877,535,4.986,552,1.92,649,2.586,807,2.942,896,2.942,943,3.345,969,3.451,979,2.277,1135,6.22,1220,2.738,1222,5.691,1316,2.133,1527,7.122,1528,3.252,1529,5.099,1530,3.252,1531,3.252,1532,3.252,1533,3.252,1534,3.252,1535,3.252,1536,3.252,1537,3.252,1538,5.099,1539,3.252,1540,3.252]],["t/290",[3,0.486,13,0.905,26,2.412,31,0.385,43,2.651,47,0.975,50,1.15,100,0.956,116,1.125,134,1.701,146,0.591,147,1.026,181,1.566,191,2.96,237,3.87,317,3.354,387,2.932,393,6.058,394,4.977,411,3.529,454,2.415,462,3.596,484,3.942,534,2.475,570,2.623,943,3.354,969,4.268,979,4.415,999,2.487,1121,5.188,1196,2.75,1197,6.923,1198,2.475,1199,5.707,1208,2.75,1541,6.307,1542,3.265,1543,3.265,1544,3.265,1545,3.265,1546,3.265,1547,3.265,1548,3.265,1549,2.081,1550,3.265,1551,3.265,1552,3.265]],["t/292",[16,1.051,26,2.043,31,0.821,43,2.363,47,1.327,65,1.798,97,1.976,99,3.898,100,0.932,116,1.702,119,2.141,134,2.176,147,1.551,189,1.883,191,1.778,220,2.752,411,3.112,451,2.488,454,2.331,532,2.851,601,3.393,758,2.933,943,4.29,979,3.457,1183,4.468,1184,7.377,1189,3.933,1252,5.278,1404,3.589,1497,4.468,1498,3.589,1503,4.159,1504,4.159,1505,4.159,1506,4.159,1553,4.939,1554,4.939,1555,4.939,1556,4.939,1557,4.939,1558,4.939]],["t/294",[16,1.236,26,2.285,31,0.918,47,1.483,65,2.115,97,3.515,98,4.671,100,1.043,116,2.002,119,2.147,134,2.369,147,1.825,411,3.004,451,2.927,454,2.742,495,5.762,532,3.354,601,3.794,758,3.28,943,4.671,1194,5.257,1195,3.992,1503,4.892,1504,4.892,1505,4.892,1506,4.892,1559,5.81,1560,5.81,1561,5.81]],["t/296",[13,2.149,31,0.914,43,2.09,104,3.127,134,1.556,164,3.784,172,2.53,189,2.199,215,2.857,254,3.067,411,3.61,451,5.064,459,3.257,480,3.489,484,2.765,493,2.53,542,4.808,776,3.011,943,3.067,1066,4.191,1095,4.857,1101,9.095,1105,4.857,1127,4.857,1195,3.973,1562,5.767,1563,7.749,1564,5.767,1565,4.587,1566,5.767,1567,5.767]],["t/298",[13,1.217,26,1.288,38,2.592,56,3.491,65,2.33,84,2.975,96,1.779,100,1.111,101,1.874,112,3.118,121,3.118,122,2.593,126,2.592,133,1.326,142,2.292,146,0.795,155,2.428,175,1.953,192,1.825,194,2.041,207,1.801,244,2.971,297,2.534,302,2.251,322,2.655,347,3.972,362,2.88,378,3.697,397,2.655,401,3.073,404,4.791,425,1.546,449,4.017,450,4.48,451,2.212,459,2.479,462,2.212,493,3.871,512,2.724,530,3.327,542,5.715,597,2.798,607,2.798,648,2.724,651,3.971,652,3.073,732,1.874,798,2.428,898,3.19,1195,2.251,1217,2.971,1309,3.073,1362,3.491,1364,3.491,1441,3.491,1568,3.972,1569,4.39,1570,4.39,1571,4.39,1572,3.972,1573,4.198,1574,2.88,1575,4.39,1576,4.39,1577,4.39,1578,3.697,1579,3.491,1580,4.39]],["t/300",[92,2.714,100,0.966,101,3.539,102,2.631,119,1.27,121,4.04,133,1.57,172,3.166,175,2.313,223,3.144,274,5.419,318,3.855,387,2.416,426,2.765,439,2.416,449,4.41,450,3.639,459,2.936,462,2.619,486,2.936,490,6.983,542,5.145,595,6.983,661,3.94,732,3.539,930,5.74,1219,7.503,1270,3.778,1357,5.053,1441,6.595,1581,5.198,1582,7.218,1583,5.198,1584,5.198,1585,5.198]],["t/302",[1,5.023,31,0.764,50,2.946,68,5.86,70,5.124,100,0.867,116,2.232,123,2.969,134,1.747,145,3.263,164,4.249,384,3.658,417,6.079,779,4.128,942,3.057,1017,4.128,1182,4.707,1340,4.534,1400,4.707,1410,5.15,1586,6.476,1587,6.476,1588,6.476,1589,7.568,1590,6.476,1591,5.86]],["t/304",[1,2.131,3,0.585,6,2.579,11,1.701,13,1.09,25,1.91,31,0.695,47,0.749,50,1.385,55,4.4,67,3.557,70,3.263,95,1.613,100,1.053,116,1.355,120,4.183,123,1.89,132,1.827,147,2.648,148,2.378,155,2.175,157,2.828,159,2.857,172,1.724,181,1.885,194,3.291,199,4.384,207,1.613,221,3.541,231,2.661,240,1.885,271,2.175,358,3.896,393,2.22,394,2.091,408,3.126,412,3.659,465,2.378,480,2.378,493,1.724,565,3.126,623,3.311,687,2.857,758,2.484,885,2.131,947,2.752,960,2.269,1017,2.506,1163,5.641,1164,5.337,1182,4.287,1369,2.979,1589,3.557,1591,3.557,1592,5.898,1593,4.691,1594,3.931,1595,2.661,1596,3.931,1597,3.931,1598,3.931,1599,5.961,1600,3.931,1601,3.931,1602,3.931,1603,3.126]],["t/306",[3,0.864,21,2.878,25,1.881,31,0.685,100,1.31,112,2.831,119,1.42,120,3.09,123,1.862,142,3.033,155,3.214,207,3.195,297,3.354,362,3.811,381,4.403,387,2.701,404,3.354,421,4.222,425,2.046,459,3.281,512,3.604,530,4.403,651,3.604,652,4.067,779,3.703,786,4.403,798,3.214,1094,3.214,1362,4.62,1364,4.62,1366,3.932,1470,4.892,1573,5.109,1574,3.811,1578,4.892,1604,5.81,1605,5.81,1606,4.892,1607,4.892,1608,5.81,1609,4.892,1610,5.81,1611,4.403]],["t/308",[31,0.932,100,1.267,133,2.386,175,3.515,262,5.988,341,5.183,651,4.902,836,6.283,841,7.149,1375,6.653,1612,7.901,1613,7.901]],["t/310",[16,1.594,26,2.198,31,0.647,40,3.841,60,3.497,97,2.196,100,1.285,119,2.345,127,2.918,133,2.262,146,1.356,189,2.092,207,2.252,239,4.062,255,4.159,302,2.813,364,3.988,371,4.621,403,3.6,425,1.933,472,3.713,522,4.159,586,3.841,601,3.65,742,4.775,798,4.144,816,2.673,988,4.062,993,3.841,1332,3.404,1362,4.364,1364,4.364,1369,4.159,1573,3.6,1614,5.487,1615,3.6,1616,5.487,1617,5.487,1618,4.965]],["t/312",[3,0.84,16,1.625,31,0.665,100,0.756,101,2.409,112,2.75,119,1.379,121,3.721,122,2.287,129,4.14,133,2.306,146,1.022,210,3.001,223,3.414,239,3.06,262,7.872,274,3.414,449,4.061,451,3.847,469,6.431,473,2.894,484,2.706,732,2.409,830,4.102,836,7.375,1147,6.073,1371,5.107,1372,6.91,1373,6.91,1375,4.753,1376,5.107,1595,3.819,1619,4.753]],["t/314",[3,1.248,6,2.945,11,1.942,16,1.628,19,3.46,20,2.344,21,2.224,23,2.434,26,1.317,27,2.591,28,3.024,31,0.767,45,3.17,50,2.291,53,3.024,62,2.434,65,1.635,100,1.192,119,1.097,129,3.527,133,2.31,146,1.178,173,2.344,174,3.038,177,1.891,178,2.224,189,1.712,191,1.616,196,3.038,207,1.842,219,2.945,237,2.434,304,3.503,318,3.024,319,3.403,341,2.945,385,2.224,461,4.518,465,2.716,520,5.872,532,2.591,535,3.143,536,3.263,610,2.945,622,3.781,727,3.038,1109,3.674,1363,3.143,1407,2.862,1620,4.49,1621,4.062,1622,3.57,1623,4.49,1624,4.062,1625,3.038,1626,4.49,1627,4.49,1628,4.49,1629,4.49,1630,3.403,1631,3.781]],["t/316",[3,1.336,24,2.865,146,1.312,160,4.755,181,3.475,296,5.268,336,5.074,532,4.184,542,5.573,1409,6.559,1479,5.765,1568,6.559,1632,7.249,1633,5.765,1634,7.249,1635,6.559,1636,6.559,1637,7.249,1638,4.905,1639,5.074]],["t/318",[3,1.231,16,1.356,19,3.389,20,3.326,21,3.156,30,2.72,31,0.751,60,4.061,65,2.32,84,2.962,100,0.853,115,3.953,119,2.023,122,3.353,127,3.389,146,1.154,193,2.649,208,2.72,219,4.18,239,3.455,240,3.055,350,3.968,439,2.962,447,3.953,484,3.055,774,4.829,988,3.455,1640,4.829,1641,5.765,1642,5.067,1643,6.372,1644,5.366,1645,5.765]],["t/320",[3,1.231,47,1.751,119,1.557,127,3.389,146,1.664,299,2.72,341,4.18,348,3.267,350,3.055,357,3.763,358,3.156,382,4.461,493,2.795,880,4.829,999,2.883,1132,3.525,1133,2.649,1192,4.829,1354,4.631,1356,4.461,1405,3.763,1622,5.067,1625,4.312,1646,5.765,1647,4.829,1648,6.97,1649,6.372,1650,4.829,1651,5.067,1652,5.067]],["t/322",[3,0.933,13,1.739,16,1.334,20,3.273,26,1.84,27,3.62,47,1.738,60,3.997,97,2.509,98,3.335,99,2.391,100,0.84,101,3.496,102,1.989,103,3.703,133,1.894,177,2.641,323,4.752,385,3.106,425,2.885,755,4.752,798,3.469,799,3.469,881,5.281,1059,3.273,1155,4.596,1573,4.114,1638,4.244,1653,4.987,1654,4.987,1655,4.987,1656,6.271,1657,6.271]],["t/324",[3,0.573,12,3.515,16,0.82,46,1.505,47,1.864,62,2.09,63,1.74,96,1.562,98,2.05,99,2.667,100,1.4,101,1.645,102,2.219,127,2.05,146,1.052,157,1.848,181,1.848,191,1.388,196,2.609,220,2.297,221,3.389,271,3.215,272,2.801,291,2.457,324,1.562,514,2.391,532,3.355,541,5.563,601,2.832,607,2.457,646,2.529,661,2.921,732,1.645,816,1.878,883,3.246,960,2.225,993,2.699,999,1.343,1010,2.012,1034,5.084,1195,1.976,1216,3.246,1283,5.563,1316,5.982,1354,5.084,1407,2.457,1625,2.609,1658,3.246,1659,3.855,1660,7.789,1661,8.358,1662,6.996,1663,3.488,1664,3.246,1665,2.921,1666,2.921]],["t/326",[1,2.267,3,0.918,11,1.809,24,1.652,26,1.227,27,2.413,38,2.469,47,1.176,53,1.943,58,1.973,65,1.522,95,1.716,96,1.694,97,1.673,98,2.223,99,1.594,100,0.983,101,1.784,102,1.326,112,2.037,119,2.572,120,2.223,121,2.037,122,3.285,133,1.865,137,2.665,146,1.118,147,1.313,152,4.911,181,2.005,208,2.635,239,2.267,277,3.325,296,3.038,305,3.223,341,2.743,350,2.961,361,2.529,385,2.071,429,3.783,432,2.743,439,2.87,447,2.594,472,2.829,580,3.521,739,2.106,780,2.106,898,3.038,988,2.267,999,2.151,1117,6.643,1239,2.743,1282,3.169,1360,4.911,1410,3.325,1498,3.038,1625,2.829,1631,6.183,1667,3.038,1668,3.325,1669,3.038,1670,6.175,1671,4.181,1672,3.783,1673,4.181,1674,3.783,1675,4.181]],["t/328",[3,1.231,13,1.767,16,1.761,30,2.72,50,2.244,63,2.876,84,2.962,165,3.267,167,4.18,304,4.618,336,4.461,351,5.067,388,3.678,397,3.854,425,2.244,747,5.366,763,4.18,785,6.273,869,4.061,942,3.008,1109,3.599,1284,4.631,1676,6.372,1677,5.366,1678,5.366,1679,5.366,1680,6.372,1681,5.765,1682,6.372,1683,4.18]],["t/330",[3,0.988,13,1.841,16,1.413,31,0.783,42,2.657,53,3.086,185,3.6,351,5.28,456,4.016,473,3.404,480,4.016,521,3.6,738,5.95,840,5.28,921,4.119,1059,3.466,1083,3.921,1141,4.825,1314,3.921,1332,4.119,1407,4.232,1508,5.591,1684,9.374,1685,6.008,1686,5.032,1687,5.28,1688,6.64,1689,6.64,1690,6.008]],["t/332",[3,0.89,13,1.66,16,1.69,47,1.698,50,2.108,53,3.693,133,1.808,165,3.069,221,3.44,271,4.932,318,2.782,352,4.76,432,3.927,816,2.916,921,5.531,960,3.455,999,2.768,1083,3.535,1195,4.571,1332,5.531,1402,3.815,1403,5.041,1408,4.76,1667,4.35,1687,4.76,1690,7.188,1691,5.986,1692,6.689]],["t/334",[21,2.965,31,0.706,41,3.535,47,1.14,53,2.782,84,2.782,119,1.941,133,1.808,165,3.069,243,3.125,348,3.069,350,2.87,357,3.535,358,3.935,400,4.35,425,2.108,648,3.714,756,4.191,780,3.016,999,2.085,1132,3.311,1133,2.488,1157,2.825,1322,3.927,1363,4.191,1408,4.76,1573,3.927,1667,4.35,1693,5.986,1694,5.986,1695,5.416,1696,5.986,1697,7.09,1698,5.986,1699,4.76,1700,4.76,1701,5.416,1702,5.041,1703,4.051,1704,4.35,1705,5.416]],["t/336",[3,1.378,16,1.779,23,3.511,47,1.234,53,3.01,60,4.128,70,3.582,71,3.511,104,5.023,127,3.444,146,1.173,161,4.128,198,2.881,304,3.83,318,3.01,336,4.534,344,7.043,348,4.288,415,6.339,739,3.263,809,5.15,1667,4.707,1706,5.15,1707,6.476,1708,4.128,1709,5.15]],["t/338",[16,1.649,17,2.957,31,0.68,97,2.308,99,3.336,100,1.253,102,2.458,133,2.34,207,2.367,220,2.279,221,2.225,454,2.722,644,4.587,648,3.578,692,5.632,732,3.735,738,6.55,816,2.81,885,3.127,921,4.808,942,2.722,1083,4.576,1109,4.377,1129,3.784,1332,3.578,1402,3.676,1403,4.857,1683,3.784,1692,4.857,1710,4.191,1711,5.767,1712,5.767,1713,5.767]],["t/340",[3,1.221,13,1.414,31,0.601,47,1.563,84,3.31,87,2.301,92,2.661,99,1.944,100,0.682,101,2.176,103,3.01,138,2.334,146,1.608,150,2.444,164,3.344,165,2.614,167,3.344,193,2.119,199,3.527,220,2.015,221,2.747,233,2.764,299,3.039,322,3.084,358,2.525,362,4.671,425,1.795,530,5.397,570,3.651,584,3.163,749,4.054,780,2.568,798,3.939,1085,3.569,1091,3.45,1109,2.879,1120,4.054,1157,2.406,1163,3.249,1209,3.863,1254,3.705,1314,3.01,1315,4.613,1405,4.205,1615,3.344,1703,3.45,1714,3.863,1715,5.098,1716,5.098,1717,3.863,1718,5.098,1719,5.098]],["t/342",[3,0.918,11,3.507,13,1.712,16,1.313,25,1.998,28,2.869,93,3.008,100,1.085,114,3.058,123,1.978,140,3.734,142,3.222,146,1.74,193,2.566,233,3.347,293,2.96,297,3.563,298,4.049,299,2.635,305,3.222,354,6.144,390,4.909,610,4.049,799,3.414,1085,4.321,1109,3.486,1405,3.645,1720,6.144,1721,6.173,1722,6.173,1723,6.173,1724,5.198,1725,4.678,1726,6.173]],["t/344",[31,0.896,46,2.188,87,3.43,89,3.079,100,1.017,146,1.015,181,2.687,207,2.3,328,3.923,346,7.008,411,2.162,527,4.073,570,2.873,867,4.457,898,4.073,1133,3.159,1137,5.321,1144,6.341,1146,3.792,1195,2.873,1218,4.457,1257,4.073,1293,7.86,1309,3.923,1353,3.792,1710,4.073,1727,5.604,1728,3.676,1729,7.6,1730,4.457,1731,5.604,1732,5.604,1733,5.07]],["t/346",[1,3.082,3,1.292,31,0.905,51,3.527,87,2.565,89,2.303,100,1.027,114,2.816,123,2.459,134,2.07,146,1.573,189,2.167,191,2.047,196,3.847,221,2.96,233,4.16,313,3.023,346,4.308,351,4.521,358,2.816,362,3.729,379,2.77,401,3.98,406,4.308,417,4.131,418,3.281,610,3.729,687,4.131,780,2.864,799,4.245,880,4.308,1155,2.864,1163,4.891,1182,4.131,1293,4.308,1348,4.131,1349,4.131,1412,4.131,1593,4.521,1710,4.131]],["t/348",[1,1.558,3,1.455,4,2.012,11,1.243,16,1.234,17,2.37,21,1.423,25,0.93,26,0.843,30,1.226,31,0.917,45,1.4,47,1.753,50,1.012,51,1.783,53,1.336,62,1.558,63,1.297,65,1.683,71,1.558,81,2.579,89,1.164,92,1.5,93,1.4,95,1.897,96,1.164,100,0.975,102,1.839,104,3.947,123,0.921,127,1.528,132,1.336,133,0.868,134,0.775,146,1.05,177,1.21,191,1.035,192,1.921,193,1.194,207,1.179,208,1.226,228,2.012,232,2.285,234,1.783,254,1.528,291,1.832,299,1.973,300,3.236,305,1.5,313,1.528,314,3.676,315,3.503,317,1.528,318,2.695,320,3.236,321,2.796,322,2.796,323,2.178,324,1.873,346,3.503,357,1.697,358,1.423,361,1.738,400,2.088,415,2.178,417,2.088,424,1.697,425,1.628,442,3.892,455,1.832,473,1.473,522,2.178,531,1.783,536,2.088,562,1.832,610,1.885,611,2.285,739,1.448,753,2.088,785,3.503,786,3.503,787,2.6,808,2.285,816,1.4,942,1.356,999,1.001,1051,2.42,1083,1.697,1094,1.589,1133,1.194,1157,2.182,1160,2.61,1193,1.5,1195,2.973,1227,2.178,1366,1.945,1405,1.697,1683,1.885,1703,3.128,1720,2.178,1734,2.088,1735,2.874,1736,2.874,1737,2.874,1738,2.6,1739,3.892,1740,2.6,1741,2.874,1742,2.874,1743,2.285,1744,2.42,1745,2.285,1746,5.798,1747,2.874,1748,2.874,1749,2.874]],["t/350",[3,1.224,25,2.664,89,3.334,651,5.106,1012,4.648,1182,5.981,1750,8.23,1751,8.23,1752,7.446]],["t/352",[3,1.049,24,2.788,120,3.752,146,1.599,147,3.028,191,2.54,199,4.374,203,4.939,220,2.788,221,2.722,394,3.752,597,5.629,989,4.774,1163,4.496,1182,5.127,1322,4.628,1328,5.61,1517,5.61,1752,6.383,1753,7.054]],["t/354",[3,1.152,65,2.82,100,1.037,120,4.119,146,1.402,147,2.433,157,3.714,177,3.262,199,4.633,203,5.423,204,4.806,853,4.806,1328,6.16,1754,6.16]],["t/356",[3,1.379,5,2.781,13,1.565,31,1.021,42,3.056,43,2.897,46,2.204,97,2.258,100,0.756,146,1.567,147,2.719,180,5.238,182,3.134,183,3.397,191,3.116,197,3.597,198,2.511,199,2.796,200,4.753,221,2.177,775,3.122,1163,3.597,1348,4.102,1349,4.102,1595,3.819]],["t/358",[3,1.194,5,2.922,42,3.211,43,2.952,180,5.396,182,3.293,183,3.57,197,5.114,198,4.25,199,3.975,204,3.771,209,5.264,210,4.267,211,4.978,775,3.362,1755,4.606]],["t/360",[3,1.231,5,3.013,42,3.312,43,2.973,180,5.496,182,3.396,183,3.682,197,5.275,198,3.682,204,3.953,205,4.888,206,7.489,775,3.525,1755,4.829]],["t/362",[3,1.184,5,2.898,11,2.084,31,0.938,42,3.184,43,2.919,120,3.639,147,1.513,180,5.37,182,3.266,183,3.54,197,4.362,198,3.54,199,4.533,203,4.791,204,4.246,205,2.845,209,3.161,210,2.562,211,2.989,221,2.64,493,2.113,775,2.665,1057,3.832,1163,4.362,1186,3.832,1348,3.502,1349,3.502,1404,3.502,1498,3.502,1756,4.359,1757,3.832,1758,4.359]],["t/364",[3,1.005,5,2.46,25,2.551,31,1.072,42,2.703,43,2.831,50,1.666,69,2.617,70,4.358,120,2.516,180,5.337,182,2.772,183,3.005,197,4.306,198,3.505,199,3.903,203,4.729,204,5.331,205,2.794,215,2.344,220,1.87,221,1.825,252,4.191,394,2.516,411,2.606,480,4.766,775,3.737,1322,3.104,1328,3.763,1595,3.202,1755,5.12,1757,3.763,1758,4.281,1759,6.756,1760,4.281]],["t/366",[31,0.879,43,2.01,202,7.695,204,5.669,406,6.925,465,4.508,480,4.508,1322,4.89,1595,5.044,1755,5.649,1760,6.744,1761,7.454,1762,9.138,1763,9.138]],["t/368",[3,0.73,24,3.453,31,0.818,42,2.774,43,2.708,146,1.255,147,1.542,155,3.835,157,3.324,179,6.093,182,2.845,191,1.767,194,2.281,197,3.128,198,2.183,199,2.431,200,4.133,204,3.045,221,2.675,255,3.72,332,2.61,421,3.567,480,4.194,521,2.661,548,4.441,651,3.045,775,2.715,788,5.839,1018,3.321,1163,4.419,1322,3.22,1398,3.72,1517,5.514,1595,4.692,1646,4.441,1755,3.72,1757,3.903,1764,6.933,1765,8.039,1766,4.908,1767,4.908,1768,4.908,1769,4.908,1770,4.908,1771,4.908,1772,4.908,1773,4.908]],["t/370",[3,1.257,13,2.344,16,1.798,25,2.737,26,1.932,62,3.57,126,3.888,277,5.236,362,4.319,514,4.085,753,4.785,766,5.958,776,3.437,786,4.99,816,3.208,885,3.57,1023,4.785,1332,5.245,1366,4.456,1574,4.319,1640,4.99,1681,5.958,1774,5.545,1775,5.958,1776,6.584,1777,6.584,1778,4.456,1779,4.785]],["t/372",[3,0.956,16,1.963,26,1.885,27,3.708,28,2.986,46,2.508,47,1.585,60,4.094,95,2.636,96,2.603,100,0.86,104,3.483,119,2.255,146,1.163,161,4.094,297,3.708,299,2.742,300,4.497,304,2.942,358,3.182,473,3.293,756,4.497,999,2.238,1132,3.553,1354,4.668,1625,4.347,1780,5.409,1781,5.109,1782,4.668,1783,4.497,1784,5.812]],["t/374",[13,1.725,16,1.734,27,3.591,31,0.734,47,1.185,119,1.52,146,1.475,175,2.768,193,2.586,254,3.309,308,5.239,324,2.521,357,4.812,410,5.922,425,2.87,485,4.081,522,4.715,999,3.166,1133,3.777,1157,3.846,1322,4.081,1652,6.48,1703,4.21,1781,4.948,1785,3.86,1786,4.948,1787,5.239,1788,4.521,1789,4.355]],["t/376",[16,1.725,17,3.165,31,0.728,47,1.544,65,2.248,97,2.47,99,3.091,100,0.826,101,2.635,119,1.981,146,1.118,173,3.222,189,2.353,208,2.635,220,3.204,221,3.128,271,3.414,299,2.635,418,3.563,425,2.174,468,4.909,570,3.165,584,3.83,755,4.678,768,5.585,999,2.824,1006,5.198,1155,4.084,1396,4.909,1615,4.049,1683,4.049,1685,5.585,1790,5.585]],["t/378",[16,1.911,24,2.402,26,1.783,31,0.717,45,2.961,47,1.711,81,2.704,99,2.317,100,0.814,101,3.834,102,3.031,108,3.874,119,1.485,133,1.835,146,1.453,189,2.317,318,2.825,437,3.771,607,3.874,732,2.594,739,3.062,771,4.417,885,3.295,999,2.796,1009,4.834,1010,3.173,1642,4.834,1654,4.834,1664,5.118,1666,4.606,1683,3.987,1791,5.499]],["t/380",[16,1.743,47,1.56,65,2.283,95,2.573,96,3.319,97,3.277,98,4.356,100,0.84,119,2.229,133,1.894,145,3.159,146,1.483,189,2.391,216,6.514,323,4.752,425,2.209,646,4.114,758,2.641,760,5.281,881,5.281,999,2.185,1034,4.557,1155,3.159,1683,4.114,1792,7.411,1793,5.674,1794,6.271,1795,6.271,1796,4.114]],["t/382",[3,1.17,16,1.254,25,1.909,47,1.873,48,3.99,50,2.077,55,3.078,58,2.783,71,4.264,84,2.741,99,2.248,102,1.871,115,3.658,146,1.424,150,2.827,175,2.623,208,2.517,215,3.896,220,2.33,228,4.128,229,3.99,259,4.965,261,3.868,291,3.758,318,2.741,324,2.389,426,3.136,472,3.99,780,2.971,1797,9.153,1798,5.897,1799,5.897,1800,5.897,1801,5.335]],["t/384",[1,4.509,15,5.16,50,2.929,165,4.264,880,6.303,1314,4.911,1363,5.822,1802,6.303]],["t/386",[15,3.771,26,1.783,31,0.717,47,1.158,119,1.485,140,3.676,159,5.832,175,2.704,192,3.336,193,2.526,308,5.118,357,3.589,358,3.011,361,3.676,424,3.589,425,2.826,485,3.987,763,3.987,999,2.796,1133,3.336,1157,4.24,1193,3.173,1291,5.118,1390,5.499,1603,4.834,1703,4.113,1785,3.771,1786,4.834,1787,5.118,1788,4.417,1789,4.255,1803,4.834,1804,5.499,1805,6.078,1806,4.417,1807,6.078]],["t/388",[3,0.691,13,1.849,31,0.786,41,2.745,99,1.772,100,0.622,102,1.475,119,1.906,140,2.812,142,2.426,146,0.842,193,2.773,240,2.229,293,2.229,299,1.984,354,3.523,358,3.304,393,2.625,472,3.146,514,4.84,572,3.254,601,2.265,602,2.745,617,2.426,688,3.914,777,4.847,782,3.523,885,4.23,942,2.194,1059,2.426,1094,2.571,1109,5.306,1118,2.884,1121,3.378,1129,3.049,1133,1.932,1295,5.304,1408,3.696,1412,5.669,1609,3.914,1650,3.523,1678,3.914,1701,4.206,1705,4.206,1710,3.378,1739,3.914,1782,3.378,1801,4.206,1808,4.648,1809,4.648,1810,4.648,1811,4.648,1812,6.204,1813,4.648,1814,4.648,1815,3.696,1816,4.648,1817,4.648,1818,3.378,1819,4.206,1820,4.648,1821,4.648]],["t/390",[3,1.164,62,5.102,63,3.53,233,4.241,401,5.476,473,4.01,513,3.875,521,4.241,632,6.587,1365,7.078,1822,6.587,1823,6.587,1824,7.823]],["t/392",[3,1.314,11,3.052,21,3.494,30,3.011,31,0.832,64,4.628,100,1.182,123,2.83,140,4.267,146,1.599,302,3.617,350,3.382,354,5.346,610,4.628,1109,3.984,1611,5.346,1650,5.346,1825,5.941,1826,7.054,1827,7.054,1828,7.054]],["t/394",[3,1.257,13,1.826,16,1.798,20,3.437,26,1.932,31,0.776,50,2.319,65,2.397,84,3.061,115,4.085,123,2.11,240,3.157,297,3.801,298,4.319,299,2.81,305,3.437,366,7.119,425,2.319,542,4.085,772,5.958,1405,3.888,1615,4.319,1653,5.236,1724,5.545,1829,5.545,1830,6.584,1831,6.584,1832,6.584,1833,6.584,1834,5.958]],["t/396",[3,1.164,16,1.664,21,3.875,357,4.619,358,3.875,473,4.01,602,4.619,648,4.853,999,2.725,1133,3.252,1669,5.685,1683,5.132,1835,7.078,1836,7.078]],["t/399",[3,0.89,16,1.69,31,0.706,47,1.698,100,1.194,102,1.899,134,2.405,139,4.537,142,3.125,194,2.782,361,3.621,424,3.535,425,2.108,617,3.125,789,3.927,811,5.041,999,2.085,1048,4.537,1059,3.125,1118,3.714,1180,6.02,1198,4.537,1448,6.02,1450,5.041,1631,5.041,1837,6.689,1838,5.416,1839,5.416,1840,5.986,1841,6.02,1842,5.416,1843,4.537,1844,5.986,1845,5.986]],["t/401",[16,1.501,47,1.344,81,3.138,100,0.944,102,3.059,113,4.267,134,2.6,173,3.682,190,4.988,193,2.932,411,2.722,452,5.61,885,3.825,1073,4.774,1153,5.346,1494,6.383,1846,7.054,1847,7.054,1848,7.054,1849,6.383]],["t/403",[3,1.25,313,4.47,617,5.125,732,3.587,935,6.684,1850,7.078]],["t/405",[3,1.164,46,3.054,50,2.755,62,4.241,169,5.294,504,5.132,617,4.083,732,3.339,833,4.986,1059,4.083,1850,6.587,1851,7.078,1852,7.823,1853,7.823]],["t/407",[3,0.494,11,2.758,16,1.532,31,0.391,47,1.751,51,2.06,85,3.004,96,1.345,100,1.231,102,2.285,113,2.008,116,1.786,123,1.064,127,2.756,132,1.543,133,1.003,142,1.733,148,3.856,177,1.398,193,1.38,198,1.477,229,2.247,271,1.837,293,1.592,305,1.733,385,1.645,423,2.413,424,1.961,425,1.169,457,1.875,473,1.702,485,2.178,500,4.364,552,1.961,757,2.516,830,2.413,834,2.324,942,1.567,961,3.004,999,2.221,1094,1.837,1108,3.856,1132,1.837,1156,3.004,1157,3.4,1178,3.928,1180,5.459,1185,3.004,1195,3.693,1198,2.516,1208,2.796,1210,1.875,1331,2.64,1355,2.324,1448,3.928,1606,2.796,1655,2.64,1669,2.413,1757,4.122,1843,5.459,1849,3.004,1854,5.368,1855,2.796,1856,3.928,1857,3.32,1858,3.32,1859,3.32,1860,3.32,1861,3.32,1862,3.32,1863,1.837,1864,3.32,1865,3.32,1866,2.64,1867,3.004,1868,3.928,1869,4.689,1870,3.32,1871,3.32,1872,2.796,1873,4.122,1874,2.64,1875,3.32,1876,3.32,1877,3.32,1878,5.183,1879,2.516,1880,5.183,1881,3.32,1882,3.32,1883,3.004,1884,2.796,1885,3.004,1886,2.516,1887,2.64]],["t/409",[26,1.901,30,1.905,31,0.899,50,1.572,100,1.311,102,2.94,114,2.211,123,1.431,133,1.348,134,1.204,145,4.215,148,2.7,198,1.986,240,2.14,332,2.374,393,5.233,426,2.374,505,3.244,601,3.157,646,2.929,757,3.383,758,2.728,833,2.845,885,2.42,942,2.107,960,2.577,1059,3.382,1109,2.521,1180,5.779,1210,2.521,1228,3.55,1655,3.55,1708,2.845,1778,3.021,1843,4.91,1855,3.759,1866,3.55,1872,3.759,1874,3.55,1888,4.464,1889,8.366,1890,4.464,1891,4.464,1892,4.464,1893,4.535,1894,6.479,1895,6.479,1896,7.626,1897,4.464,1898,4.464,1899,4.464,1900,4.464,1901,3.55]],["t/411",[1,1.996,3,0.961,16,0.33,24,0.612,30,3.247,31,0.762,40,2.28,41,0.915,43,0.739,47,0.522,50,0.965,51,0.961,58,0.731,63,0.699,69,2.46,70,0.857,100,0.493,102,2.908,113,2.227,116,0.534,123,1.18,126,0.915,132,0.72,133,0.468,134,1.514,142,0.809,148,0.937,150,4.004,193,2.112,198,3.78,210,1.958,211,1.7,240,2.132,282,1.126,313,1.958,324,1.802,332,1.457,361,0.937,379,1.794,393,0.875,396,3.537,412,0.961,427,1.797,441,0.84,445,2.479,446,0.937,454,0.731,455,0.988,456,1.657,457,0.875,465,0.937,482,1.402,505,1.991,531,1.7,552,2.174,572,1.085,588,1.174,590,1.402,596,1.126,601,0.755,646,1.017,647,1.126,648,1.7,652,1.918,665,1.174,732,3.247,742,0.988,757,3.37,758,1.551,764,1.305,770,1.402,771,1.126,780,0.781,789,1.017,792,1.232,833,2.347,834,2.578,873,1.232,942,2.65,944,0.809,947,1.918,999,2.37,1011,4.727,1057,1.232,1059,3.372,1070,0.988,1073,3.799,1094,0.857,1157,3.866,1180,4.896,1195,2.28,1210,2.08,1260,1.085,1321,2.307,1340,1.918,1448,2.791,1647,1.174,1655,4.826,1658,1.305,1710,1.991,1714,1.174,1725,1.174,1778,1.854,1793,3.332,1818,1.126,1837,2.307,1842,1.402,1843,4.896,1866,2.179,1868,1.174,1873,2.179,1879,1.174,1883,1.402,1884,1.305,1893,1.085,1902,1.232,1903,1.402,1904,1.402,1905,1.305,1906,1.55,1907,2.307,1908,1.55,1909,1.305,1910,1.55,1911,2.74,1912,2.74,1913,2.479,1914,2.479,1915,2.479,1916,2.479,1917,2.74,1918,6.803,1919,5.613,1920,4.254,1921,1.305,1922,1.55,1923,1.55,1924,3.682,1925,1.085,1926,1.402,1927,1.55,1928,3.682,1929,0.84,1930,1.55,1931,1.402,1932,2.479,1933,1.085,1934,1.55,1935,1.55,1936,1.55,1937,1.55,1938,1.55,1939,1.305,1940,1.55,1941,1.55,1942,1.55,1943,1.402,1944,1.55,1945,1.55,1946,1.55,1947,1.55]],["t/413",[3,1.071,31,0.674,47,1.372,50,2.013,87,1.269,100,0.878,101,1.2,102,0.892,114,1.393,123,0.901,133,0.849,134,1.541,142,1.468,145,1.417,168,1.468,172,1.234,193,2.375,210,1.496,233,1.525,240,2.178,280,4.181,318,1.307,324,1.84,332,3.039,403,1.845,424,1.661,437,1.745,439,1.307,446,1.701,455,1.792,456,3.456,472,3.867,505,3.301,513,2.25,552,1.661,575,2.131,579,2.131,584,4.467,617,2.371,732,2.8,763,2.98,789,1.845,820,1.969,885,3.098,889,2.545,944,1.468,1059,1.468,1081,2.236,1107,3.612,1153,4.972,1157,1.327,1178,4.972,1189,3.227,1193,2.983,1210,3.227,1260,1.969,1264,2.236,1286,2.044,1299,2.545,1321,2.368,1331,2.236,1348,2.044,1349,2.044,1387,2.236,1398,2.131,1450,3.825,1479,2.236,1525,2.545,1549,1.792,1630,2.131,1658,2.368,1710,2.044,1734,2.044,1837,2.368,1843,6.141,1850,2.368,1851,4.11,1854,6.824,1866,2.236,1909,2.368,1913,2.545,1914,2.545,1915,2.545,1916,2.545,1925,1.969,1929,1.525,1948,2.545,1949,2.812,1950,2.368,1951,2.368,1952,2.812,1953,2.545,1954,2.545,1955,2.812,1956,2.812,1957,2.812,1958,2.812,1959,2.812,1960,2.812,1961,2.812,1962,2.368,1963,2.545,1964,2.812,1965,2.812,1966,2.812,1967,2.812,1968,2.236,1969,2.812,1970,6.56,1971,2.812,1972,2.812,1973,2.812,1974,5.714,1975,5.714,1976,2.812,1977,2.812,1978,2.236]],["t/415",[3,1.152,146,1.402,199,3.837,207,3.178,425,2.728,1133,3.22,1155,3.902,1157,3.656,1190,5.87,1193,4.043,1667,5.629,1789,5.423,1979,5.87,1980,7.008,1981,5.629]],["t/417",[3,0.9,25,0.992,30,1.307,31,0.361,40,1.57,42,1.226,47,1.312,51,1.9,64,2.009,69,1.694,72,1.694,81,1.363,100,1.071,102,0.972,119,0.748,123,2.208,133,0.925,137,1.952,145,3.048,146,0.881,154,4.585,160,2.009,172,1.344,177,2.901,178,2.997,194,1.424,199,1.517,207,3.283,219,2.009,221,2.899,271,1.694,291,1.952,293,1.469,312,1.9,314,2.436,320,2.144,324,1.241,425,1.713,427,2.009,439,1.424,486,1.73,493,1.344,546,2.073,567,4.811,569,2.579,648,3.018,649,2.436,650,2.321,652,2.144,739,1.543,757,2.321,763,2.009,785,2.321,789,2.009,951,2.144,999,2.108,1054,5.094,1091,4.094,1107,3.868,1108,1.853,1109,1.73,1155,4.627,1163,1.952,1193,1.599,1204,2.009,1243,2.436,1407,1.952,1493,2.226,1672,2.771,1683,2.009,1779,2.226,1823,2.579,1874,2.436,1925,2.144,1933,2.144,1963,2.771,1980,6.233,1981,2.226,1982,3.063,1983,4.864,1984,2.321,1985,3.063,1986,2.771,1987,2.073,1988,3.063,1989,3.063,1990,2.771,1991,2.579,1992,2.771,1993,4.864,1994,3.063,1995,4.864,1996,3.063,1997,2.771,1998,4.401,1999,2.771,2000,4.396,2001,3.063,2002,3.063,2003,3.063,2004,2.579,2005,2.771,2006,3.063,2007,2.436,2008,3.063,2009,3.063,2010,3.063,2011,3.063,2012,3.063,2013,3.063]],["t/419",[1,2.729,3,1.05,16,1.071,30,2.148,47,1.683,65,2.967,81,2.239,88,4.554,95,2.065,146,1.278,147,1.581,194,2.339,198,2.239,299,2.148,336,4.94,350,2.413,425,3.111,455,3.208,567,4.002,702,7.439,756,3.523,778,3.814,853,3.122,885,2.729,942,2.376,1002,3.406,1133,2.933,1157,4.169,1189,3.986,1190,3.814,1332,3.122,1405,2.972,1412,3.658,1414,6.385,1573,3.302,1611,3.814,1651,5.612,1812,4.002,1856,3.814,1872,4.238,1879,3.814,2014,4.554,2015,5.033,2016,5.033,2017,3.658,2018,5.033,2019,5.033,2020,5.033,2021,5.033]],["t/421",[1,2.997,30,2.359,45,1.758,47,1.631,50,1.271,54,3.039,65,2.012,72,3.716,146,1.216,172,1.583,199,3.328,219,2.367,291,3.523,305,1.884,340,3.039,418,2.083,425,2.859,427,2.367,521,1.956,567,2.87,632,3.039,702,3.039,778,2.735,834,2.526,960,3.19,1049,2.526,1091,4.546,1108,3.343,1132,1.996,1133,2.297,1137,3.869,1146,3.74,1155,1.818,1157,3.554,1189,3.122,1190,2.735,1193,3.507,1211,4.168,1220,3.039,1254,2.622,1309,3.869,1316,2.367,1356,3.869,1384,3.265,1498,4.882,1667,2.622,1785,2.239,1804,5.001,1856,2.735,1886,2.735,1905,3.039,1929,4.401,1939,3.039,1984,2.735,2000,4.017,2004,3.039,2022,3.608,2023,5.527,2024,3.608,2025,3.608,2026,6.079,2027,5.527,2028,3.608,2029,3.608,2030,6.718,2031,3.608,2032,3.608,2033,3.608,2034,3.265,2035,6.718,2036,3.608,2037,3.608,2038,4.189,2039,3.608,2040,5.527,2041,3.608,2042,3.265,2043,3.608]],["t/423",[30,3.094,126,4.28,155,4.009,158,4.755,299,4.166,531,4.497,816,3.532,1012,4.094,1061,5.493,1172,5.573,1203,5.004,1307,5.074,1778,4.905,1825,6.104,2044,6.559,2045,6.559,2046,6.559]],["t/425",[58,2.937,299,2.655,318,2.892,370,6.75,387,2.892,397,5.496,1023,4.521,1172,3.86,1210,3.514,1309,4.355,1402,3.965,1633,4.948,1638,4.21,1925,4.355,2047,4.081,2048,8.724,2049,8.222,2050,5.629,2051,6.862,2052,4.715,2053,5.629,2054,5.629,2055,5.629,2056,5.629,2057,5.629,2058,5.629,2059,5.629,2060,4.948,2061,5.629]],["t/427",[24,1.94,25,1.589,30,2.095,31,0.818,50,1.729,53,2.281,58,4.515,64,3.22,102,2.551,194,3.223,208,2.095,254,2.61,299,2.095,304,2.247,318,4.283,324,2.809,361,2.969,370,6.116,387,4.061,424,2.898,425,1.729,439,3.223,459,4.934,646,3.22,763,3.22,853,3.045,1083,2.898,1203,4.479,1211,3.045,1314,2.898,1400,3.567,1402,5.873,1638,4.692,1708,3.128,1717,3.72,1778,3.321,2052,3.72,2062,4.133,2063,4.133,2064,4.908,2065,4.908,2066,4.908]],["t/429",[13,1.857,31,0.79,58,3.16,165,4.381,181,3.21,220,3.377,299,2.858,318,3.972,332,3.561,370,5.982,424,5.046,425,2.358,439,3.112,472,4.531,531,4.154,885,3.63,1172,4.154,1203,3.433,1307,4.688,1353,5.783,1402,5.446,1728,5.606,2067,5.075]],["t/431",[15,4.668,126,4.443,150,3.608,304,4.209,318,4.272,330,5.984,342,4.936,439,3.498,776,3.928,816,3.666,1203,3.858,1402,4.796,1708,4.796,2068,6.808,2069,6.336,2070,7.525]],["t/433",[13,2.02,25,1.705,31,0.621,53,2.449,58,2.486,78,4.766,141,3.828,207,2.162,208,2.248,299,3.109,318,4.396,319,3.992,330,4.189,358,4.463,439,3.386,456,3.186,507,4.436,588,3.992,643,4.436,960,3.041,1070,3.357,1243,4.189,1320,6.135,1402,6.028,1639,5.1,1728,3.456,1992,4.766,2060,7.165,2063,4.436,2071,4.766,2072,5.793,2073,8.351,2074,7.285,2075,5.268,2076,4.766,2077,5.268,2078,5.268,2079,4.766,2080,4.436,2081,5.268]],["t/435",[41,2.682,51,2.817,58,4.644,155,2.512,243,2.371,255,3.442,299,2.8,305,2.371,318,4.731,358,2.249,370,4.592,424,2.682,425,1.599,432,5.051,437,4.069,439,2.111,441,2.462,572,3.179,601,2.213,647,3.3,716,4.767,753,3.3,775,2.512,780,2.288,816,2.213,1023,3.3,1172,2.817,1307,3.179,1322,2.979,1402,6.27,1932,4.109,1979,3.442,2047,2.979,2063,3.824,2082,4.541,2083,4.541,2084,4.541,2085,8.433,2086,4.541,2087,4.109,2088,4.541,2089,4.541,2090,8.433,2091,4.971,2092,4.541,2093,4.541,2094,3.824,2095,4.541,2096,4.541,2097,3.824,2098,4.541]],["t/437",[220,2.891,299,3.122,432,4.799,921,4.539,1010,3.819,1172,4.539,1203,5.024,1249,5.544,1353,6.632,1448,5.544,1665,5.544,1728,6.429,2099,6.619,2100,6.619,2101,6.619]],["t/439",[40,3.751,61,5.317,64,4.799,132,3.401,157,3.508,299,3.855,324,2.964,384,4.132,512,4.539,597,4.663,607,4.663,947,5.121,1073,4.951,1172,5.604,1203,4.631,1593,5.818,1603,5.818,1789,5.121]],["t/441",[299,3.406,384,4.507,388,4.606,1172,4.951,1314,4.713,2067,6.048,2102,7.221,2103,6.72,2104,7.221,2105,6.72,2106,6.72,2107,7.221]],["t/443",[3,1.394,100,0.889,123,2.128,168,3.466,177,2.796,178,3.289,199,4.21,215,3.289,425,2.338,427,4.356,617,3.466,763,4.356,942,4.012,1108,5.67,1155,3.345,1210,3.75,1211,4.119,1785,4.119,1856,5.032,1868,5.032,1987,4.493,2000,6.177,2108,6.008,2109,6.008,2110,5.591]],["t/445",[3,0.959,17,1.731,26,0.991,30,2.241,47,0.643,53,1.57,63,1.524,100,1.054,119,1.283,123,2.524,125,2.559,126,3.101,133,1.02,142,1.763,145,1.701,151,2.454,160,2.215,168,3.364,174,2.285,178,1.673,185,1.831,194,1.57,199,3.601,207,2.155,208,1.441,300,3.677,318,2.995,362,2.215,378,4.422,385,1.673,412,2.095,425,2.27,447,2.095,455,2.152,484,1.619,521,1.831,546,2.285,617,3.364,713,2.844,739,1.701,758,1.422,774,2.559,776,1.763,789,2.215,798,3.564,853,2.095,971,2.686,1017,2.152,1041,2.152,1094,1.868,1108,3.177,1133,2.183,1155,4.2,1159,2.686,1160,1.907,1193,1.763,1211,2.095,1335,2.686,1353,2.285,1369,2.559,1399,3.056,1493,2.454,1573,2.215,1665,2.559,1720,2.559,1728,2.215,1779,2.454,1780,4.422,1785,2.095,1818,2.454,1841,2.559,1873,2.686,1929,1.831,1933,2.364,1950,2.844,1968,2.686,1981,3.817,1986,3.056,1987,2.285,1990,3.056,1991,2.844,2000,4.683,2094,4.422,2110,2.844,2111,3.056,2112,4.422,2113,3.377,2114,3.056,2115,3.377,2116,3.377,2117,3.377,2118,3.377,2119,3.377,2120,3.377,2121,3.377,2122,3.377,2123,3.98,2124,5.252,2125,3.056,2126,3.377,2127,3.056,2128,3.377,2129,3.377]],["t/447",[45,1.742,50,1.259,63,1.614,70,1.978,198,2.442,207,1.467,210,2.919,211,4.144,318,1.662,436,4.16,440,4.16,505,2.599,514,2.218,521,1.939,570,1.833,586,3.843,739,2.765,869,2.279,871,4.382,989,6.012,1057,2.844,1094,1.978,1107,4.365,1125,3.011,1155,3.775,1186,2.844,1198,2.71,1228,2.844,1234,3.235,1260,2.503,1262,4.365,1340,2.503,1929,3.622,1954,3.235,1987,2.42,2000,6.974,2042,4.966,2080,3.011,2130,6.68,2131,6.68,2132,5.489,2133,3.235,2134,3.235,2135,3.576,2136,3.576,2137,3.576,2138,3.576,2139,3.576,2140,6.044,2141,3.576,2142,4.622,2143,3.576,2144,3.235,2145,3.235,2146,3.235,2147,4.966,2148,3.576,2149,3.576,2150,3.576,2151,4.966,2152,3.576,2153,3.576,2154,3.235,2155,3.576,2156,3.576,2157,5.489,2158,3.576,2159,5.489,2160,3.576,2161,3.576,2162,3.576,2163,3.576,2164,3.235,2165,3.576,2166,3.576,2167,3.576,2168,3.576,2169,3.235,2170,3.576,2171,3.576,2172,3.576,2173,3.235,2174,3.235,2175,3.235,2176,3.576,2177,3.576,2178,4.966,2179,3.576]],["t/449",[3,1.22,13,0.562,16,0.963,25,0.656,30,1.476,31,0.708,43,1.885,53,0.942,62,1.099,75,1.473,97,1.811,100,0.935,102,0.643,123,1.45,126,1.197,133,0.612,142,1.058,145,1.021,146,0.969,154,1.536,160,2.269,177,1.906,178,1.004,193,0.842,199,1.713,201,1.329,207,1.857,211,1.257,219,2.269,293,2.17,318,1.608,413,2.621,418,1.17,423,1.473,425,1.218,427,3.51,436,2.621,437,1.257,440,4.055,446,1.226,456,2.737,468,1.611,521,1.875,531,1.257,546,2.341,572,1.419,597,1.291,617,1.806,623,2.913,647,1.473,687,1.473,713,1.706,758,1.457,776,3.136,777,2.514,798,1.913,816,0.987,833,1.291,853,1.257,871,3.51,942,0.956,944,1.058,945,1.371,960,1.997,971,1.611,989,1.371,999,1.864,1003,1.536,1017,2.205,1094,2.959,1108,1.226,1109,1.954,1120,1.611,1132,1.121,1155,4.69,1168,1.611,1193,1.058,1210,1.954,1218,3.599,1308,1.833,1312,1.833,1316,1.329,1383,3.811,1573,2.269,1644,1.706,1653,1.611,1665,1.536,1668,1.611,1677,1.706,1720,1.536,1725,1.536,1775,1.833,1783,1.419,1785,2.808,1790,1.833,1803,1.611,1818,1.473,1855,2.913,1856,2.621,1868,1.536,1873,1.611,1886,1.536,1893,1.419,1929,2.454,1953,1.833,1979,1.536,1987,3.063,1997,4.095,1998,1.833,2000,4.366,2007,1.611,2017,1.473,2044,1.833,2080,1.706,2094,1.706,2109,1.833,2110,1.706,2111,1.833,2112,1.706,2114,1.833,2123,2.621,2133,3.13,2142,1.706,2144,1.833,2145,1.833,2146,1.833,2147,3.13,2151,1.833,2154,1.833,2164,1.833,2169,1.833,2173,4.095,2174,1.833,2175,3.13,2178,1.833,2180,1.833,2181,2.026,2182,2.026,2183,2.026,2184,3.459,2185,2.026,2186,2.026,2187,1.706,2188,2.026,2189,2.026,2190,1.833,2191,2.026,2192,2.026,2193,2.026,2194,1.833,2195,2.026,2196,2.026,2197,1.833,2198,2.026,2199,3.459,2200,2.026,2201,1.611,2202,1.706,2203,3.459,2204,2.026,2205,3.459,2206,4.525,2207,3.13,2208,1.833,2209,2.026,2210,2.026,2211,3.459,2212,1.833,2213,2.026,2214,2.026,2215,2.026,2216,1.833]],["t/451",[3,1.264,31,1.002,418,4.904,1635,7.687,1823,7.154,2217,7.154]],["t/453",[3,1.141,100,1.027,112,3.737,119,2.272,122,3.108,133,2.316,146,1.684,192,3.188,446,4.64,447,4.759,560,4.889,1239,5.032,1625,5.191,1802,5.813]],["t/455",[16,1.632,26,2.25,47,1.771,58,3.621,101,3.274,165,3.933,208,3.274,220,3.032,221,2.959,252,4.759,543,5.37,584,4.759,780,3.865,810,6.459,1070,4.889]],["t/457",[3,1.175,25,2.558,35,4.779,84,3.673,100,1.058,167,5.183,302,4.051,312,4.902,366,6.653,458,5.742,869,5.036,1754,6.283,2218,7.901]],["t/459",[13,2.047,31,0.871,102,2.343,119,1.804,122,2.992,146,1.337,297,4.262,298,4.844,350,3.54,361,4.466,364,5.366,449,3.927,988,4.003,989,4.997,1270,5.366,1356,6.36,1357,5.169,1358,6.681,2219,7.384]],["t/461",[26,2.166,65,2.688,100,0.989,101,3.152,119,1.804,121,3.598,122,3.681,133,2.23,175,3.285,244,4.997,302,3.786,322,4.466,350,3.54,449,3.927,450,5.169,493,3.239,542,4.581,1441,5.872,1572,6.681]],["t/463",[16,1.501,26,2.07,28,3.279,31,0.832,60,4.496,84,3.279,100,1.291,122,2.858,127,3.752,133,2.13,146,1.277,147,2.216,175,3.138,199,3.494,208,3.011,449,4.697,816,3.437,1083,4.166,1113,5.346,1144,4.628,1270,5.127,2220,6.383]],["t/465",[16,1.571,17,3.786,26,2.166,31,0.871,47,1.407,97,2.955,99,2.815,100,0.989,119,1.804,146,1.337,208,3.152,220,2.918,221,2.849,271,4.084,438,5.872,468,5.872,570,3.786,584,4.581,999,2.573,1396,5.872]],["t/467",[16,1.698,27,4.606,31,0.941,41,4.713,146,1.445,302,4.091,312,4.951,362,5.235,816,3.888,1132,4.414,2221,7.981,2222,7.981]],["t/469",[16,1.978,21,3.8,25,2.483,65,2.793,93,3.737,115,4.759,119,2.272,146,1.684,302,3.933,473,3.933,1640,5.813,1902,6.1,2223,7.671]],["t/471",[97,3.193,100,1.275,146,1.445,425,2.811,570,4.091,758,3.361,798,4.414,999,2.78,1109,4.507,1615,5.235,2224,6.72]],["t/473",[16,1.648,26,2.272,47,1.476,95,3.178,96,3.79,97,3.743,98,4.119,100,1.037,119,1.893,146,1.402,999,2.699,1317,5.629,1792,7.008]],["t/475",[3,1.119,19,4.002,84,3.498,116,2.593,137,4.796,146,1.362,324,3.049,758,3.169,946,6.808,1615,4.936,1644,6.336,1645,6.808,1653,5.984,1654,7.309,1991,7.74,2225,6.808]],["t/477",[3,1.383,15,4.759,16,1.632,26,2.25,28,3.566,100,1.027,119,2.272,146,1.389,301,6.1,304,3.513,317,4.079,758,3.231,1615,5.032,2224,6.459]],["t/479",[3,1.13,100,1.238,122,3.078,150,3.642,237,4.119,252,4.713,317,4.04,387,4.297,513,4.579,738,5.318,1086,6.397,1087,6.397,1088,6.042,1510,6.874]],["t/481",[28,3.601,161,4.937,192,3.22,239,4.2,304,4.284,305,4.043,348,3.971,361,4.685,397,4.685,796,6.16,816,3.774,1249,5.87,1636,7.008,1779,5.629]],["t/483",[3,1.422,25,2.828,47,1.822,62,3.758,71,5.185,104,5.185,192,2.881,215,3.433,244,4.69,254,3.686,318,3.222,426,3.686,438,5.512,532,4,758,2.919,1625,4.69,1943,6.271,2226,6.931]],["t/485",[3,1.224,28,3.826,100,1.102,119,2.011,146,1.49,181,3.946,397,4.978,437,5.106,614,6.545]],["t/487",[3,1.224,100,1.102,119,2.37,122,3.334,146,1.49,447,5.106,816,4.01,1734,5.981]],["t/489",[26,2.166,40,3.786,65,2.688,96,2.992,97,2.955,100,1.216,112,3.598,119,2.405,122,2.992,133,2.23,146,1.337,239,4.003,350,3.54,601,3.598,988,4.003,1049,5.169,1607,6.218]],["t/491",[3,1.187,100,1.068,146,1.445,150,3.826,513,3.953,738,5.587,799,4.414,1083,4.713,1129,5.235,1357,5.587,1387,6.347,2227,7.221]],["t/493",[3,1.109,16,1.586,24,2.946,26,2.187,47,1.42,95,3.059,99,2.842,100,0.998,101,3.181,102,2.365,115,4.624,127,3.964,146,1.35,177,3.139,193,3.098,439,3.465,536,5.417,999,2.597,1059,3.891]],["t/495",[27,4.302,28,3.465,47,1.882,65,2.714,95,3.059,96,3.02,145,3.755,221,3.525,271,4.123,756,5.218,1195,3.821,1354,5.417,1400,5.417,1931,6.744,2228,7.454,2229,7.454]],["t/497",[47,1.42,96,3.02,119,2.233,133,2.251,221,3.974,252,4.624,342,4.89,456,4.508,532,4.302,1034,5.417,1083,4.402,1132,4.123,1354,5.417,1400,6.641]],["t/499",[24,3.032,26,2.25,425,3.275,780,3.865,1133,3.188,1157,4.389,1160,4.332,1332,4.759,1405,4.53,1703,5.191,1744,6.459,1745,6.1,2230,6.94,2231,7.671]],["t/501",[3,1.078,16,1.911,26,2.127,27,4.184,47,1.381,95,2.974,96,2.937,100,0.97,119,1.771,146,1.312,297,4.184,298,4.755,299,3.094,304,3.319,756,5.074,999,2.525,1132,4.009,1405,4.28,1781,5.765,1783,5.074,1784,6.559]],["t/503",[20,4.043,84,3.601,397,4.685,425,2.728,530,5.87,739,3.902,798,5.174,1155,3.902,1493,5.629,1615,5.081,1933,5.423,2112,6.523,2232,7.746,2233,7.746]],["t/505",[16,1.501,31,0.832,47,1.344,60,4.496,146,1.277,254,3.752,324,2.858,357,4.166,410,5.127,425,3.11,522,5.346,999,3.077,1133,3.671,1157,4.168,1322,4.628,1652,5.61,1703,4.774,1785,4.377,1787,5.941,1788,5.127,2234,7.054]],["t/507",[4,5.476,23,4.241,25,2.533,28,3.636,115,4.853,165,4.01,297,4.515,304,3.582,317,4.16,504,5.132,785,5.928,798,4.327,890,6.221,1730,6.221]],["t/509",[16,1.632,26,2.25,47,1.771,65,2.793,101,3.274,102,2.434,119,1.875,146,1.684,322,4.64,607,4.889,999,2.672,1009,6.1,1654,6.1,1791,6.94]],["t/511",[26,2.295,27,4.515,62,4.241,119,1.912,133,2.362,146,1.416,196,5.294,318,3.636,319,5.928,341,5.132,350,3.751,520,5.476,1621,7.078,1622,6.221]],["t/513",[3,1.306,16,1.868,17,3.585,20,3.65,25,2.264,28,3.25,31,0.824,100,0.936,119,2.146,142,3.65,146,1.266,295,5.299,301,5.561,302,3.585,304,3.202,317,3.718,370,4.895,425,2.463,774,5.299,798,3.868,1639,4.895,1642,5.561,1650,5.299]],["t/515",[3,1.391,25,2.508,47,1.782,48,5.242,58,3.656,71,4.2,84,3.601,146,1.402,208,3.306,220,3.061,221,2.988,465,4.685,1119,6.523]],["t/517",[3,1.321,13,1.974,15,4.416,23,3.859,28,3.309,47,1.692,71,4.815,104,4.815,105,4.67,106,4.983,146,1.289,192,2.959,300,4.983,304,3.26,317,3.785,809,5.661,1692,5.994,1706,5.661,1829,5.994,2235,7.118]],["t/519",[3,1.141,47,1.461,119,2.272,146,1.684,167,5.032,299,3.274,358,3.8,362,5.032,425,2.702,570,4.767,798,4.243,1615,5.032,2236,7.671]],["t/521",[3,1.04,16,1.868,23,3.791,26,2.051,28,3.25,31,0.824,93,3.407,104,3.791,215,3.463,239,3.791,304,3.202,350,3.352,415,6.656,513,3.463,622,5.888,809,5.561,853,4.338,1034,5.081,1141,5.081,1406,6.326,1706,5.561,1835,6.326,2237,6.992,2238,6.326]],["t/523",[3,1.53,11,2.341,15,3.358,16,1.939,17,2.775,28,2.516,43,1.46,47,1.031,50,1.906,108,3.449,119,1.814,146,0.98,295,4.102,297,3.124,298,3.55,299,2.31,304,2.478,332,2.878,354,4.102,357,3.196,358,2.681,425,1.906,545,3.449,758,2.279,999,2.586,1085,3.789,1133,2.25,1157,2.554,1181,4.897,1195,2.775,1203,2.775,1363,5.196,1405,3.196,1574,3.55,1630,4.102,1640,4.102,1652,4.304,1679,4.557,1703,3.663,1863,2.994,1950,4.557,2217,4.557,2239,4.897,2240,5.625,2241,4.897]],["t/526",[1,2.407,3,0.96,12,2.685,13,1.231,16,1.373,21,2.199,25,1.437,26,1.302,47,1.688,65,1.616,72,2.455,100,1.187,122,1.799,134,1.197,146,0.804,174,3.004,175,1.975,178,3.196,181,2.128,193,1.845,324,1.799,332,2.361,381,3.364,394,3.431,418,3.724,513,2.199,552,2.621,727,3.004,781,3.738,833,2.829,921,2.754,988,3.498,999,2.248,1012,2.507,1039,3.226,1059,3.368,1070,2.829,1091,4.366,1155,3.251,1157,2.095,1193,2.317,1204,2.912,1210,2.507,1239,2.912,1254,3.226,1317,3.226,1382,3.364,1549,4.112,1666,3.364,1686,3.364,1796,2.912,1902,3.53,1907,5.433,1929,4.121,2240,3.364,2242,4.439,2243,3.226,2244,4.439,2245,6.045,2246,4.017,2247,3.226,2248,3.108,2249,3.53,2250,5.838,2251,4.017,2252,4.017]],["t/528",[1,2.581,3,1.009,12,2.879,16,1.443,21,2.358,25,1.541,26,1.396,47,1.735,65,1.733,72,2.633,100,1.219,122,1.929,146,0.862,174,3.221,178,3.361,181,2.282,193,1.979,324,1.929,332,2.531,381,3.608,394,3.608,418,3.916,727,3.221,781,4.008,833,3.034,988,3.678,999,2.364,1039,3.459,1059,2.485,1070,3.034,1091,4.591,1155,3.418,1157,2.247,1193,2.485,1210,2.688,1239,3.123,1254,3.459,1317,3.459,1382,3.608,1549,4.324,1666,3.608,1686,3.608,1796,3.123,1902,3.786,1907,5.713,1929,4.286,2240,3.608,2245,6.287,2246,4.307,2247,3.459,2248,3.332,2249,3.786,2250,6.139,2251,4.307,2252,4.307]],["t/531",[47,1.585,100,1.114,146,1.163,198,3.701,418,3.708,473,4.731,727,4.347,999,2.238,1155,4.649,1157,3.927,1191,4.668,1193,3.353,1382,4.868,1929,5.003,2245,6.617,2247,4.668,2248,5.825,2253,5.812,2254,6.424,2255,6.424,2256,6.424,2257,6.424,2258,6.424,2259,6.424]],["t/533",[26,1.214,47,1.778,50,1.457,52,2.8,63,2.765,72,2.288,99,1.577,100,1.353,102,1.944,112,2.016,146,1.109,147,1.925,175,1.84,190,2.337,208,1.766,231,5.828,324,1.676,484,2.938,495,2.714,552,3.618,758,2.58,833,2.637,914,5.544,944,2.16,999,3.252,1106,3.484,1123,6.416,1157,1.953,1191,4.453,1195,2.121,1210,2.337,1549,2.637,1574,5.292,1708,2.637,1796,4.787,1863,2.288,1929,2.243,1984,4.643,2026,3.743,2243,3.007,2247,3.007,2248,2.896,2249,3.29,2260,3.484,2261,6.127,2262,6.127,2263,5.303,2264,4.137,2265,4.137,2266,4.137,2267,4.137,2268,6.127,2269,4.137,2270,4.137,2271,4.137]],["t/535",[47,1.698,72,3.311,100,1.063,119,1.463,133,1.808,146,1.438,209,3.927,418,3.455,727,4.051,780,3.016,988,4.834,1155,4.492,1157,2.825,1360,4.76,1382,4.537,1473,5.416,1549,3.815,1639,4.191,1708,3.815,1920,4.537,1929,4.834,1968,4.76,2245,6.317,2247,4.35,2248,5.561,2249,4.76,2272,5.986,2273,5.986,2274,5.986,2275,5.986,2276,5.986,2277,5.986,2278,5.986]],["t/538",[3,1.013,16,1.449,70,3.768,134,1.837,146,1.564,147,2.139,157,3.266,234,4.226,264,5.736,406,5.162,418,3.932,552,5.101,602,4.022,779,4.341,833,4.341,1059,4.509,1113,5.162,1739,5.736,1863,3.768,2069,5.736,2243,6.278,2279,6.163,2280,8.638,2281,6.811]],["t/540",[3,1.013,16,1.838,24,2.692,31,0.803,59,5.736,93,3.319,123,2.183,134,1.837,156,4.95,165,3.492,208,2.907,396,5.417,552,5.602,562,4.341,602,4.022,930,5.417,942,3.215,1059,3.555,1410,5.417,1779,4.95,2243,6.278,2279,6.163,2282,8.638,2283,6.811]],["t/542",[48,4.905,50,2.553,58,3.421,132,3.369,134,2.423,243,3.784,602,4.28,779,6.502,932,6.559,1059,3.784,1366,4.905,1611,5.493,1884,6.104,2284,8.982,2285,7.249,2286,7.249,2287,7.249]],["t/544",[3,1.516,17,3.376,128,4.319,243,3.437,342,4.319,552,5.514,602,3.888,789,4.319,1059,3.437,1160,3.719,1363,5.918,1638,4.456,1702,5.545,1783,4.609,1822,5.545,1863,5.165,2069,5.545,2240,4.99,2243,6.144,2288,5.958,2289,5.545,2290,6.584,2291,6.584]],["t/547",[3,0.933,16,0.909,31,0.877,47,1.416,50,1.504,62,2.316,63,1.928,65,1.555,76,2.99,97,1.709,100,0.572,102,1.355,123,1.369,134,1.152,143,3.104,145,2.152,146,0.773,150,2.048,157,3.564,168,2.23,221,1.648,243,3.274,244,4.245,272,3.104,312,2.65,328,2.99,350,2.048,357,2.522,358,2.116,412,2.65,426,2.272,562,2.722,611,3.397,782,3.237,810,3.597,942,2.961,969,2.891,999,2.854,1018,2.891,1049,2.99,1133,3.792,1137,4.391,1144,4.115,1146,4.245,1160,4.199,1189,2.412,1195,3.216,1210,2.412,1284,3.104,1286,3.104,1293,3.237,1309,2.99,1397,5.676,1549,2.722,1611,3.237,1647,4.754,1779,4.559,1818,3.104,1863,3.47,1979,3.237,2240,3.237,2292,4.271,2293,3.865,2294,4.271,2295,4.271,2296,4.271,2297,3.597,2298,4.271,2299,4.271,2300,4.271]],["t/549",[10,3.373,74,5.239,100,0.833,119,1.52,133,1.879,146,1.126,150,2.983,243,3.248,480,3.763,942,2.937,1132,3.441,1133,2.586,1159,4.948,1160,5.132,1189,5.132,1493,4.521,1619,5.239,1697,4.948,1788,4.521,1841,4.715,1863,3.441,1893,4.355,2123,4.715,2301,6.48,2302,8.149,2303,4.948,2304,5.239,2305,5.239,2306,4.948,2307,4.521,2308,5.629,2309,4.715,2310,4.715,2311,5.239]],["t/551",[47,1.782,50,2.031,51,3.578,72,3.19,95,2.367,100,0.772,150,3.715,154,4.371,194,2.681,293,2.765,324,3.14,427,3.784,546,3.903,776,3.011,840,4.587,960,3.329,1002,3.903,1094,3.19,1160,5.284,1189,4.377,1193,3.011,1195,2.957,1217,3.903,1863,3.19,1893,4.038,1909,4.857,1920,4.371,1929,3.127,2034,5.218,2225,5.218,2247,4.191,2301,4.587,2303,4.587,2312,7.011,2313,4.371,2314,5.767,2315,4.587,2316,5.767,2317,5.767,2318,5.767]],["t/553",[10,4.005,43,1.45,47,1.608,51,4.583,58,2.537,72,2.973,74,4.526,100,0.72,146,0.973,178,2.663,240,2.577,243,3.856,324,2.178,562,3.426,776,3.856,1094,2.973,1132,2.973,1133,3.508,1160,3.036,1189,4.172,1213,4.526,1214,4.074,1217,4.999,1316,3.526,1355,3.763,1574,3.526,1756,4.864,1879,4.074,1905,4.526,1921,4.526,1929,4.005,2007,4.275,2038,4.074,2091,4.074,2197,4.864,2220,4.864,2304,4.526,2305,4.526,2306,4.275,2307,3.906,2308,4.864,2312,7.636,2319,5.375,2320,4.526,2321,5.375,2322,4.864,2323,5.375]],["t/555",[12,3.025,15,5.039,31,0.59,40,2.564,47,0.953,50,1.761,81,2.225,100,1.087,119,1.717,134,1.349,137,3.187,145,2.52,146,1.272,207,2.052,209,3.281,243,2.611,261,3.281,324,2.026,328,3.501,357,4.149,385,2.477,425,1.761,439,2.325,480,3.025,546,3.384,647,3.634,779,3.187,944,4.24,1132,2.766,1133,3.376,1138,4.525,1157,2.361,1189,2.825,1306,3.79,1549,3.187,1697,3.977,1714,3.79,1786,3.977,1788,3.634,1802,3.79,1812,3.977,1863,2.766,1978,3.977,2208,4.525,2309,3.79,2310,6.676,2324,5.001,2325,5.001,2326,5.001,2327,5.001,2328,5.001,2329,5.001,2330,5.001,2331,5.001,2332,5.001,2333,5.001,2334,5.001]],["t/557",[3,0.73,31,0.948,46,1.916,47,0.935,65,2.524,95,2.014,103,2.898,154,3.72,156,3.567,178,2.431,194,2.281,198,2.183,201,3.22,240,2.353,243,2.562,305,2.562,312,3.045,318,2.281,426,2.61,450,6.116,457,2.772,601,3.378,611,6.393,652,4.854,776,3.619,942,2.317,1054,4.133,1094,2.715,1133,2.882,1144,3.22,1146,3.321,1160,2.772,1187,4.441,1239,3.22,1257,3.567,1293,3.72,1306,3.72,1404,3.567,1595,3.321,1630,3.72,1730,3.903,1774,4.133,1839,6.273,2038,5.255,2072,5.514,2230,4.441,2305,5.839,2335,3.903,2336,4.908,2337,4.908,2338,4.441,2339,4.908,2340,4.908,2341,4.441,2342,4.908,2343,4.908,2344,4.441,2345,4.908]],["t/559",[40,4.405,47,1.286,63,3.048,100,0.904,423,4.908,456,4.085,545,4.304,642,6.11,1133,4.268,1141,4.908,1147,5.37,1189,3.814,1193,3.525,1204,4.43,1355,4.728,1493,4.908,1549,4.304,1803,5.37,1863,3.735,1933,4.728,2123,5.118,2248,4.728,2346,6.753,2347,6.11,2348,5.687]],["t/561",[3,0.789,20,2.768,31,0.863,47,1.914,63,2.393,72,4.635,100,0.71,123,1.699,134,1.43,146,1.325,190,2.995,201,3.479,234,4.54,332,2.82,372,4.466,425,1.868,646,3.479,944,2.768,1041,3.38,1047,5.82,1133,3.042,1155,2.672,1191,3.854,1217,3.589,1356,3.713,1398,4.019,1630,4.019,1669,3.854,1725,4.019,1796,5.498,1863,2.933,1920,4.019,1929,2.875,1981,3.854,2007,4.217,2091,5.546,2108,4.798,2307,6.566,2349,7.319,2350,4.798,2351,4.798,2352,4.798]],["t/563",[3,0.646,16,1.351,31,0.512,47,1.919,50,1.529,53,2.018,63,1.959,96,1.759,100,1.301,134,1.171,139,4.811,160,2.848,168,2.266,196,4.296,221,2.895,234,2.694,271,4.567,290,2.694,293,2.082,324,3.345,332,2.309,385,2.151,392,3.656,396,3.453,483,3.453,572,3.039,763,2.848,960,2.506,999,2.615,1041,2.767,1047,5.049,1096,3.928,1132,2.402,1133,1.805,1195,3.848,1211,2.694,1214,4.811,1284,3.155,1400,3.155,1434,5.744,1647,3.29,1648,3.656,1708,2.767,1720,3.29,1734,3.155,1780,3.656,1796,4.923,1863,2.402,1981,3.155,2260,5.346,2353,4.342,2354,5.346,2355,4.342,2356,3.928,2357,3.928,2358,5.346]],["t/565",[3,0.629,10,1.396,31,0.304,42,1.691,43,1.14,47,1.857,62,2.292,63,2.427,72,2.338,81,1.145,96,1.712,100,1.305,116,0.887,133,1.624,145,2.129,146,0.466,147,0.809,160,1.689,177,1.084,190,1.454,193,2.235,194,1.965,198,1.88,208,1.804,221,0.993,240,2.026,243,2.206,261,1.689,271,1.424,320,1.802,324,3.749,328,1.802,385,1.275,421,3.072,431,1.951,438,2.047,440,1.951,521,1.396,531,1.597,648,1.597,649,2.047,776,2.206,871,1.689,942,2.938,944,2.206,993,1.802,1002,1.742,1049,3.764,1070,1.641,1073,1.742,1108,1.557,1132,1.424,1133,1.07,1135,1.951,1155,3.136,1191,1.871,1195,3.191,1211,1.597,1214,6.585,1218,3.361,1314,1.52,1316,4.083,1366,1.742,1404,3.908,1574,1.689,1639,1.802,1648,2.168,1677,2.168,1679,2.168,1704,3.072,1708,1.641,1796,5.538,1863,1.424,1874,3.361,1887,2.047,1921,2.168,1926,2.329,1929,1.396,2038,1.951,2123,1.951,2241,2.329,2260,5.242,2293,2.329,2306,2.047,2307,1.871,2313,1.951,2315,3.361,2320,2.168,2322,2.329,2335,2.047,2354,2.168,2357,6.22,2358,2.168,2359,2.329,2360,2.047,2361,5.377,2362,2.574,2363,2.329,2364,2.574,2365,2.574,2366,2.574,2367,2.574,2368,2.329,2369,2.168,2370,2.574,2371,2.574,2372,2.574,2373,2.574,2374,2.574]],["t/567",[1,3.296,3,0.609,21,2.028,31,0.946,43,1.104,47,1.382,65,1.491,80,3.705,81,1.821,96,1.659,100,0.548,123,1.312,133,1.236,134,1.956,146,0.741,147,1.91,150,1.963,173,2.137,207,1.68,210,2.177,231,2.771,318,1.903,324,2.463,485,2.686,504,3.989,512,2.54,521,2.22,617,2.137,776,2.137,777,2.975,798,2.265,877,2.975,930,3.256,944,3.174,989,2.771,1159,3.256,1160,3.434,1189,3.434,1193,2.137,1195,2.099,1210,2.312,1211,3.772,1306,3.103,1360,3.256,1574,2.686,1595,2.771,1708,3.875,1796,2.686,1863,4.97,1929,2.22,1933,2.866,1968,3.256,1984,3.103,2125,3.705,2127,3.705,2140,3.705,2202,3.448,2207,3.705,2216,3.705,2303,3.256,2304,3.448,2306,3.256,2307,2.975,2311,3.448,2347,3.705,2375,5.501,2376,4.094,2377,4.094,2378,6.08,2379,4.094,2380,4.094,2381,4.094,2382,4.094,2383,4.094,2384,3.256,2385,4.094,2386,4.094,2387,4.094,2388,4.094,2389,4.094,2390,4.094,2391,4.094,2392,4.094]],["t/569",[1,2.186,3,0.768,12,1.471,25,0.787,31,0.709,32,1.148,42,0.973,47,1.665,50,0.856,51,1.509,63,1.097,64,1.595,72,2.858,81,1.082,95,0.998,96,0.985,100,1.067,133,0.734,139,1.843,146,0.44,147,0.764,150,1.166,165,1.247,172,2.266,193,2.148,198,2.298,201,2.645,234,1.509,240,2.477,261,1.595,291,2.57,293,1.933,318,1.13,319,3.056,324,3.228,363,1.934,367,2.048,372,3.396,393,1.373,423,1.767,426,1.293,427,1.595,439,1.13,443,3.207,461,1.436,486,1.373,505,3.755,514,2.502,521,2.801,546,1.646,646,1.595,687,1.767,716,1.767,769,2.2,776,1.269,777,1.767,780,1.225,816,1.185,921,1.509,944,2.105,951,1.702,979,1.702,1002,1.646,1017,1.55,1018,1.646,1023,1.767,1110,2.2,1133,1.011,1155,2.603,1157,1.903,1160,1.373,1189,2.277,1191,1.767,1195,2.067,1214,3.056,1217,3.496,1239,1.595,1316,2.645,1355,1.702,1356,1.702,1404,1.767,1479,1.934,1498,1.767,1574,1.595,1663,2.2,1724,2.048,1725,1.843,1774,2.048,1783,1.702,1796,5.226,1841,1.843,1863,3.325,1868,1.843,1885,2.2,1886,1.843,1920,3.915,1925,1.702,1929,2.801,1933,1.702,1979,1.843,1999,2.2,2091,1.843,2134,2.2,2142,2.048,2202,2.048,2289,2.048,2303,1.934,2307,4.369,2311,3.396,2350,2.2,2351,4.675,2352,3.649,2359,4.675,2360,1.934,2368,4.675,2375,3.649,2393,2.432,2394,4.032,2395,4.032,2396,2.432,2397,2.432,2398,2.432,2399,2.432,2400,2.432,2401,2.432,2402,2.432,2403,2.432,2404,2.048,2405,2.432,2406,2.432,2407,2.432,2408,2.432,2409,2.432,2410,2.432,2411,4.032,2412,2.432,2413,2.432,2414,2.432,2415,4.032,2416,2.432,2417,2.432,2418,2.432,2419,2.432,2420,2.432,2421,2.432,2422,2.432,2423,2.048]],["t/571",[3,1.427,12,3.319,13,1.521,16,1.815,26,1.61,28,2.551,47,1.045,52,3.713,53,2.551,73,4.621,100,1.003,102,2.377,103,3.24,123,1.758,126,3.24,140,3.319,146,0.993,194,2.551,293,3.592,295,4.159,302,2.813,388,3.167,404,3.167,472,3.713,484,2.631,692,3.988,732,2.342,749,4.364,758,2.311,1363,3.841,1651,4.364,1669,3.988,1700,4.364,2047,3.6,2100,4.965,2424,8.531,2425,5.487,2426,6.784,2427,4.965,2428,5.487,2429,5.487,2430,4.621,2431,4.965,2432,5.487]],["t/573",[1012,5.07]],["t/575",[54,3.802,100,1.245,116,1.556,126,2.666,140,2.731,293,2.165,302,2.315,305,2.357,437,2.801,455,4.163,457,2.55,504,2.962,586,4.573,613,6.112,771,3.281,780,2.275,942,2.131,1002,3.056,1003,3.422,1009,3.591,1129,4.285,1217,3.056,1228,3.591,1279,3.591,1353,3.056,1366,3.056,1407,2.878,1573,2.962,1618,4.085,1639,3.161,1697,6.104,1699,3.591,1728,2.962,1733,4.085,1734,4.747,1740,4.085,1867,5.91,1886,3.422,1901,3.591,2201,3.591,2297,5.501,2309,5.817,2310,3.422,2360,3.591,2433,3.802,2434,4.515,2435,6.104,2436,7.481,2437,4.515,2438,4.515,2439,4.515,2440,4.515,2441,4.515,2442,4.515,2443,4.515,2444,6.532,2445,4.515]],["t/577",[146,1.475,233,4.416,302,4.942,312,5.053,322,4.927,441,4.416,2446,6.859,2447,8.145,2448,6.859]],["t/579",[16,1.303,96,2.482,119,2.204,126,3.617,146,1.109,191,2.205,233,4.373,293,2.937,440,6.113,441,4.373,613,4.451,739,3.086,775,3.388,780,3.086,808,4.871,871,5.291,1049,4.288,1085,4.288,1155,3.086,1172,3.8,1625,4.145,1647,4.642,1879,4.642,1939,5.158,1948,5.542,1951,5.158,2263,4.451,2426,4.871,2435,4.871,2436,4.451,2448,5.158,2449,6.125,2450,6.125,2451,6.125,2452,5.542,2453,5.542]],["t/581",[8,5.732,31,0.656,146,1.007,150,3.626,178,2.756,243,3.948,293,2.668,566,4.686,613,5.497,652,6.455,731,5.035,756,3.895,798,3.078,1085,3.895,1144,3.65,1160,4.272,1209,4.217,1449,5.035,1651,6.015,1699,4.425,2309,5.732,2310,4.217,2435,6.834,2454,5.035,2455,7.564,2456,6.844,2457,5.564,2458,5.564,2459,5.564,2460,5.564,2461,5.035,2462,5.564,2463,5.564,2464,7.564,2465,7.564,2466,5.564,2467,5.564,2468,4.425,2469,5.564]],["t/583",[84,3.339,146,1.3,192,2.986,233,3.894,302,3.682,312,4.456,322,4.345,350,3.444,373,6.499,441,3.894,442,6.049,613,5.22,1085,5.028,1192,5.444,1738,6.499,1789,5.028,1803,5.712,2426,5.712,2448,6.049,2454,6.499,2470,7.183,2471,7.183,2472,7.183]],["t/585",[3,1.089,16,2.085,28,1.933,47,1.394,70,2.3,95,1.707,97,3.741,99,2.791,100,1.21,102,1.951,123,1.971,145,2.095,146,1.114,151,3.022,177,1.752,274,2.516,295,3.152,297,2.401,298,2.728,299,1.775,302,2.132,357,2.456,358,2.06,397,3.72,452,3.307,484,4.7,495,4.035,541,3.307,543,2.912,601,2.997,758,3.806,759,5.18,944,2.171,993,2.912,999,3.148,1010,3.211,1012,2.349,1059,2.171,1133,1.729,1195,2.132,1405,2.456,1640,3.152,1650,3.152,1687,3.307,1987,4.163,2217,3.502,2297,3.502,2473,4.159,2474,3.763,2475,3.763,2476,4.159]],["t/587",[3,1.172,8,3.586,10,2.565,28,2.199,140,2.862,142,2.47,146,1.427,193,1.967,201,3.104,233,2.565,243,2.47,277,3.763,296,3.439,312,4.191,318,2.199,342,3.104,367,3.984,432,3.104,441,2.565,562,3.016,613,4.909,771,3.439,780,3.403,808,3.763,849,4.281,921,2.936,999,2.354,1129,3.104,1133,1.967,1192,3.586,1209,3.586,1227,3.586,1260,3.312,1301,3.984,1307,3.312,1314,2.794,1609,3.984,1669,3.439,1700,5.372,1783,3.312,1785,2.936,1788,3.439,1802,3.586,1819,6.112,1901,3.763,2212,4.281,2263,3.439,2309,5.971,2310,3.586,2433,3.984,2435,6.834,2436,5.726,2453,4.281,2456,4.281,2468,3.763,2477,4.281,2478,4.732,2479,4.732,2480,4.732,2481,6.112,2482,4.732,2483,4.732]],["t/589",[3,0.858,16,1.227,47,1.782,50,2.031,64,3.784,95,3.591,96,2.337,97,2.308,102,1.83,103,3.406,127,3.067,190,3.257,215,2.857,293,2.765,324,2.337,385,2.857,426,3.067,465,4.687,484,4.196,541,4.587,543,4.038,601,2.81,607,3.676,732,2.462,741,4.587,758,3.686,999,2.009,1010,4.045,1011,4.857,1051,4.857,1118,3.578,1227,4.371,2047,5.083,2446,4.857,2484,5.218,2485,5.218,2486,5.767,2487,5.767]],["t/591",[12,2.355,16,1.497,41,2.299,50,2.062,70,2.153,95,2.402,102,1.857,132,3.271,140,2.355,143,2.829,144,3.096,176,1.961,207,1.597,293,1.866,332,3.114,350,1.866,360,4.656,387,1.809,388,2.247,404,2.247,443,3.096,484,3.374,692,2.829,732,1.661,758,3.297,780,2.95,833,2.481,853,2.415,942,1.837,944,2.032,971,4.656,1012,2.198,1048,2.95,1104,4.93,1157,1.837,1160,4.421,1193,2.032,1200,4.656,1211,3.632,1249,2.95,1252,2.95,1279,3.096,1286,2.829,1317,2.829,1340,2.725,1355,2.725,1407,2.481,1428,3.278,1565,3.096,1668,3.096,1704,2.829,1709,4.656,1745,3.096,1754,4.656,1806,5.114,1815,3.096,1822,3.278,1836,3.522,1893,2.725,2315,5.596,2426,4.656,2431,3.522,2436,4.255,2484,3.522,2485,3.522,2488,7.704,2489,4.656,2490,6.361,2491,5.855,2492,3.522,2493,6.367,2494,3.522]],["t/593",[12,3.886,16,1.367,47,1.224,70,3.553,72,3.553,176,3.236,181,3.08,190,3.628,312,3.985,352,5.109,385,3.182,387,2.986,439,2.986,484,3.989,758,2.705,1010,3.353,1048,4.868,1049,4.497,1193,3.353,1252,4.868,1286,4.668,1709,6.617,1745,5.109,1754,5.109,1806,4.668,1984,4.868,2038,6.306,2047,4.214,2301,5.109,2488,8.22]],["t/595",[358,3.658,617,5.36,944,5.36,1104,6.218,1412,5.366,1709,5.872,2315,5.872,2488,7.651,2489,5.872,2495,7.384,2496,7.384,2497,7.384,2498,7.384]],["t/597",[16,0.845,17,2.036,42,1.589,53,3.31,96,1.609,97,1.589,125,3.009,143,2.886,193,3.286,299,3.04,320,2.78,350,1.904,353,3.344,358,1.967,360,6.287,410,2.886,411,1.532,443,3.158,484,3.415,486,2.243,543,2.78,562,2.531,601,1.935,610,2.605,747,3.344,751,3.593,758,3.565,775,2.196,777,2.886,852,3.344,872,3.158,942,1.874,1003,4.504,1010,3.102,1141,2.886,1146,2.687,1160,3.356,1211,2.464,1249,3.009,1317,2.886,1353,2.687,1357,2.78,1366,2.687,1405,2.345,1565,4.726,1633,3.158,1728,2.605,1785,2.464,1789,2.78,1806,4.319,1815,6.287,1818,2.886,1893,2.78,1925,2.78,2227,3.593,2338,3.593,2384,3.158,2427,3.593,2430,3.344,2446,3.344,2452,3.593,2481,7.153,2490,6.733,2492,3.593,2493,5.377,2499,5.943,2500,5.943,2501,3.971,2502,3.971,2503,3.971,2504,3.971,2505,3.971,2506,3.971,2507,3.971,2508,3.971,2509,3.971,2510,3.971]],["t/599",[10,4.683,17,3.492,135,4.022,146,1.233,192,2.831,193,2.831,299,2.907,454,3.215,617,5.208,944,5.208,1109,4.879,1136,7.816,1678,5.736,1841,5.162,2490,5.162,2511,6.811,2512,6.811,2513,6.811,2514,6.811,2515,6.811]],["t/601",[31,0.455,81,1.715,95,1.582,123,1.235,147,1.211,150,1.848,157,2.786,168,2.012,183,1.715,193,1.602,240,2.786,341,2.529,350,1.848,353,3.246,410,2.801,411,1.487,412,2.391,446,4.711,484,4.766,486,2.177,552,2.276,564,4.622,569,3.246,584,2.391,601,2.832,732,2.986,758,3.953,775,2.132,776,2.012,782,2.921,993,4.069,1003,4.404,1010,2.012,1039,2.801,1141,2.801,1184,3.246,1211,2.391,1227,2.921,1331,4.622,1340,2.699,1407,2.457,1412,2.801,1508,3.246,1565,5.563,1619,3.246,1699,3.065,1734,4.224,1744,3.246,1782,2.801,1812,5.563,1904,3.488,1951,3.246,2017,2.801,2062,3.246,2239,3.488,2289,3.246,2301,3.065,2354,4.894,2360,3.065,2436,6.384,2490,4.404,2516,3.855,2517,3.855,2518,3.855,2519,3.855,2520,3.488,2521,3.855,2522,3.855,2523,5.812,2524,3.855,2525,3.855,2526,5.812,2527,3.855,2528,3.855,2529,3.855]],["t/603",[17,3.971,41,4.574,90,6.16,193,3.22,457,4.375,586,5.423,617,4.883,944,4.883,2436,7.303,2530,7.746,2531,7.746]],["t/605",[47,1.8,53,3.139,132,3.994,164,4.43,173,3.525,234,4.19,254,3.591,385,3.345,454,3.187,484,4.119,605,6.11,650,5.118,732,2.882,758,2.844,1010,3.525,1048,5.118,1200,6.832,1216,5.687,1664,5.687,1806,4.908,2248,4.728,2477,6.11,2532,6.753,2533,6.11,2534,6.753]],["t/607",[31,0.896,47,1.447,132,3.531,297,4.385,332,4.04,425,2.676,617,4.826,944,4.826,1133,3.158,1200,6.042,1782,5.521,1854,6.397,2533,6.874,2535,7.597,2536,7.597]],["t/609",[16,1.681,140,4.779,146,1.43,148,4.779,177,3.327,214,6.283,1012,4.462,1204,5.183,1708,5.036,1863,4.37,2201,6.283,2384,6.283,2433,6.653]],["t/611",[3,0.884,16,1.89,47,1.506,95,2.438,97,2.377,99,2.265,102,1.885,140,3.593,168,3.101,228,4.159,229,4.02,261,3.897,299,2.536,302,3.046,322,4.781,470,4.725,484,2.848,495,3.897,617,4.943,741,4.725,944,4.943,1012,3.355,1047,4.725,1118,3.686,1815,4.725,1903,8.037,2047,3.897,2263,4.317,2537,5.941,2538,5.941,2539,5.941,2540,5.941,2541,5.941,2542,5.941]],["t/613",[24,2.33,31,1.253,84,2.741,155,3.262,220,2.33,321,5.948,426,3.136,570,4.032,603,5.335,775,3.262,960,3.404,1010,3.078,1012,3.33,1061,4.469,1203,5.501,1295,4.689,1599,4.965,2045,5.335,2046,5.335,2543,5.897,2544,5.897,2545,4.965,2546,7.865,2547,5.335]],["t/615",[31,0.757,321,3.886,370,6.46,387,2.986,397,5.582,1203,3.293,1210,3.628,1309,4.497,1633,5.109,1638,4.347,1925,4.497,2047,4.214,2048,8.832,2049,8.35,2050,5.812,2051,7.006,2052,4.868,2053,5.812,2054,5.812,2055,5.812,2056,5.812,2057,5.812,2058,5.812,2059,5.812,2060,5.109,2061,5.812]],["t/617",[12,2.096,13,0.961,25,1.735,31,0.772,40,1.777,46,1.353,84,1.611,114,1.717,220,2.913,229,3.626,304,1.587,336,3.751,348,1.777,425,1.221,426,2.85,439,2.491,454,2.529,457,1.957,470,2.756,476,2.919,529,2.919,531,2.15,545,3.415,570,3.359,596,2.519,607,2.209,650,2.627,716,2.519,720,3.136,739,2.7,816,3.192,834,2.426,885,2.905,921,2.15,1010,1.809,1041,2.209,1077,3.136,1108,2.096,1146,2.345,1168,2.756,1203,4.776,1224,2.627,1243,2.756,1335,2.756,1369,2.627,1428,2.919,1517,2.756,1579,2.756,1599,2.919,1638,3.626,1639,2.426,1642,2.756,1683,2.274,1686,2.627,1786,2.756,1825,2.919,1962,2.919,2052,4.965,2062,4.512,2067,2.627,2071,3.136,2099,3.136,2238,3.136,2263,2.519,2313,2.627,2335,4.261,2348,2.919,2468,2.756,2520,3.136,2548,5.517,2549,4.848,2550,5.359,2551,5.927,2552,5.359,2553,3.466,2554,3.466,2555,3.466,2556,3.466,2557,3.466,2558,4.848,2559,3.466,2560,3.136,2561,3.466,2562,4.261,2563,2.756,2564,3.466,2565,3.136,2566,6.207,2567,2.919,2568,3.466,2569,3.466,2570,3.466,2571,3.466,2572,5.359,2573,5.359,2574,3.466]],["t/619",[1,2.11,20,2.032,21,3.486,24,1.538,31,0.459,40,1.996,84,3.271,87,3.176,94,1.866,114,3.486,141,2.829,150,1.866,155,2.153,165,1.996,175,1.732,208,1.661,324,1.577,332,2.07,348,3.002,356,5.297,426,3.742,430,3.278,439,1.809,545,2.481,570,3.002,597,3.732,687,2.829,763,2.554,780,2.95,816,3.429,834,2.725,840,3.096,942,1.837,1002,3.962,1010,2.032,1017,2.481,1034,5.114,1041,2.481,1073,2.634,1168,4.656,1203,4.303,1224,4.437,1579,4.656,1686,4.437,1717,4.437,1743,3.096,1887,3.096,2004,4.93,2005,3.522,2014,3.522,2017,5.114,2194,3.522,2253,3.522,2313,4.437,2423,3.278,2468,3.096,2548,3.278,2549,3.522,2560,3.522,2566,4.93,2575,8.393,2576,3.893,2577,3.893,2578,3.893,2579,3.893,2580,5.855,2581,3.893,2582,5.297,2583,3.893,2584,3.893,2585,3.893,2586,3.893,2587,3.893,2588,3.893,2589,3.893,2590,3.893]],["t/621",[30,2.676,31,0.739,50,2.209,55,3.273,65,2.283,84,2.915,207,2.573,220,3.237,321,3.793,384,3.542,397,3.793,424,3.703,439,2.915,512,3.89,739,3.159,1203,4.199,1286,4.557,1314,3.703,1335,4.987,1356,4.39,1638,4.244,1797,7.411,1987,4.244,2017,4.557,2087,5.674,2105,5.281,2106,5.281,2591,6.271,2592,8.191,2593,5.674,2594,6.271,2595,8.191,2596,6.271,2597,6.271]],["t/623",[11,2.11,13,1.352,31,0.945,84,2.267,220,2.728,254,2.594,299,2.082,321,2.95,348,3.539,432,4.528,439,4.437,570,3.539,921,4.283,1010,2.546,1023,3.545,1113,3.697,1172,3.026,1203,5.412,1353,6.9,1470,4.107,1579,3.879,1728,6.689,1834,4.413,1887,3.879,2067,3.697,2097,4.107,2263,3.545,2335,3.879,2423,4.107,2545,4.107,2548,4.107,2598,4.878,2599,6.903,2600,4.878,2601,4.413]],["t/625",[25,1.789,31,0.888,133,1.669,145,2.784,220,2.184,321,3.342,331,5,416,4.653,425,2.651,437,3.428,439,3.499,529,4.653,531,3.428,545,3.522,853,3.428,1108,3.342,1109,3.121,1146,3.739,1203,4.713,1314,3.263,1549,3.522,1714,4.188,1869,5,2052,4.188,2067,4.188,2072,4.394,2101,7.747,2341,5,2358,4.653,2475,5,2489,4.394,2562,4.394,2563,4.394,2601,5,2602,4.653,2603,5.526,2604,5.526,2605,5.526,2606,5.526,2607,5.526,2608,5.526,2609,6.811,2610,4.653,2611,5.526,2612,5.526,2613,5.526,2614,5.526]],["t/627",[31,1.047,40,3.649,84,4.128,220,2.813,315,5.395,321,4.305,425,2.507,545,4.537,1203,4.963,1782,5.173,1962,5.994,2461,6.44,2563,5.661,2567,5.994,2609,6.44,2610,5.994,2615,7.118,2616,7.118,2617,7.118,2618,7.118]],["t/629",[31,1.053,40,3.682,61,5.22,64,4.712,132,3.339,157,3.444,321,5.402,324,2.91,512,4.456,597,4.578,607,4.578,947,5.028,1010,3.749,1073,4.861,1203,5.213,1593,5.712,1603,5.712,1789,5.028]],["t/631",[31,0.904,40,3.933,62,4.159,229,5.191,321,4.64,1203,3.933,1388,6.94,1778,5.191,2545,6.459,2562,7.395,2619,6.94,2620,6.94,2621,6.94,2622,6.94,2623,6.94]],["t/633",[25,0.934,28,1.341,31,0.685,34,2.096,38,1.703,50,1.016,51,2.876,52,1.952,61,3.369,62,1.564,84,2.155,95,1.183,96,1.169,127,2.465,145,2.335,152,2.294,177,1.215,192,1.199,220,1.14,254,1.534,305,1.505,315,3.513,321,2.804,324,1.878,332,1.534,348,1.479,384,1.629,386,2.61,397,2.804,425,1.633,428,5.045,436,2.186,437,1.789,439,2.155,441,1.564,486,1.629,521,1.564,536,4.224,545,1.838,599,2.429,604,2.429,614,2.294,648,1.789,716,4.224,773,2.61,885,2.513,960,1.665,1073,3.137,1078,2.429,1115,2.61,1125,2.429,1203,3.413,1307,2.019,1383,2.429,1407,1.838,1624,4.194,1641,2.61,1668,2.294,1687,2.294,1695,2.61,1702,2.429,1704,2.096,1706,2.294,1728,1.892,1782,3.369,1785,2.876,1838,2.61,1901,2.294,1981,2.096,2047,1.892,2051,2.429,2060,2.294,2076,2.61,2079,2.61,2097,2.429,2180,2.61,2187,2.429,2201,2.294,2288,4.194,2344,2.61,2356,2.61,2489,2.294,2490,2.186,2547,2.61,2562,2.294,2563,5.8,2565,2.61,2566,2.429,2567,2.429,2593,4.194,2602,2.429,2610,2.429,2619,5.259,2620,7.949,2621,4.194,2622,8.748,2624,2.884,2625,2.884,2626,4.636,2627,2.884,2628,5.259,2629,2.884,2630,2.884,2631,2.884,2632,2.884,2633,2.884,2634,2.884,2635,2.884,2636,2.884,2637,2.884,2638,2.884,2639,2.884,2640,2.884,2641,2.61,2642,2.884,2643,2.884,2644,2.884,2645,2.884,2646,2.884,2647,2.884,2648,2.884,2649,2.884,2650,2.884,2651,2.884,2652,2.884,2653,2.884]],["t/635",[31,1.147,61,3.439,62,2.565,64,4.432,148,2.862,208,2.019,306,3.984,321,5.884,384,2.672,388,2.731,397,2.862,425,1.666,465,2.862,512,2.936,566,3.984,579,3.586,616,3.984,631,3.984,716,3.439,960,2.731,1078,3.984,1083,2.794,1203,5.19,1284,3.439,1307,3.312,1314,2.794,1398,3.586,1607,3.984,1778,3.202,1785,4.191,1829,3.984,1978,5.372,1987,3.202,2091,3.586,2102,4.281,2103,3.984,2104,4.281,2105,3.984,2106,3.984,2107,4.281,2187,3.984,2430,3.984,2494,4.281,2551,4.281,2558,4.281,2602,3.984,2623,4.281,2628,4.281,2654,6.756,2655,4.732,2656,4.732,2657,4.732,2658,4.732,2659,4.732,2660,4.732,2661,4.732]],["t/637",[3,1.537,25,2.063,28,2.962,114,4.1,149,5.765,173,3.326,177,2.684,181,3.055,214,5.067,293,3.968,536,4.631,602,5.428,647,4.631,700,5.765,834,5.794,962,5.765,1012,3.599,1224,4.829,1340,4.461,1743,6.582,2190,5.765,2224,5.366,2404,5.366,2662,6.372,2663,5.366,2664,5.765]],["t/639",[3,1.17,13,2.181,16,1.254,28,2.741,114,2.921,116,2.032,119,1.922,151,5.716,173,3.078,181,3.771,194,3.656,208,2.517,234,3.658,254,3.136,282,4.285,324,2.389,388,3.404,411,2.275,436,4.469,439,2.741,446,3.567,545,3.758,602,4.644,610,3.868,620,4.965,644,4.689,749,4.689,771,4.285,820,4.128,1027,5.335,1041,3.758,1402,3.758,1666,4.469,1704,4.285,1802,5.96,2072,4.689,2665,5.335,2666,5.335,2667,4.965]],["t/641",[3,1.53,13,1.404,17,4.541,30,3.025,31,0.597,81,3.638,93,2.468,114,4.051,145,2.552,151,3.681,168,3.7,178,2.509,208,2.162,254,2.694,316,5.969,324,2.052,388,2.924,446,3.064,455,3.228,602,4.829,604,5.969,778,3.839,890,4.028,1041,3.228,1118,3.142,1665,3.839,1674,4.583,1700,4.028,1783,3.546,1806,3.681,2017,3.681,2313,3.839,2404,4.265,2664,4.583,2668,7.089,2669,5.065,2670,5.065,2671,5.065,2672,7.089,2673,5.065,2674,5.065,2675,5.065,2676,5.065,2677,6.414,2678,5.065]],["t/643",[3,1.464,13,2.34,16,1.144,17,4.327,23,2.914,25,1.74,28,2.499,31,0.634,93,2.619,114,4.181,170,6.712,178,2.663,411,2.074,425,1.893,439,2.499,521,2.914,599,4.526,602,5.812,778,6.887,1010,2.806,1041,3.426,1083,3.174,1284,3.906,1407,5.379,1622,4.275,1714,4.074,1717,4.074,2369,4.526,2582,4.864,2666,6.684,2667,4.526,2679,5.375,2680,4.864,2681,6.684,2682,5.375]],["t/645",[3,1.464,11,1.828,13,1.726,31,0.871,56,3.36,65,1.539,73,3.558,81,1.88,93,2.059,114,4.304,163,5.241,167,4.083,168,3.856,169,2.86,170,3.36,173,3.249,174,2.86,176,2.129,240,2.026,320,2.958,361,2.556,382,2.958,384,2.387,388,3.592,394,3.31,418,3.592,521,3.374,545,2.693,568,7.374,575,3.202,578,3.823,596,3.071,602,5.367,651,4.584,869,2.693,890,3.36,929,3.558,1039,3.071,1301,5.241,1314,2.495,1606,3.558,1704,4.523,1717,3.202,1778,2.86,2348,3.558,2474,3.823,2663,3.558,2677,3.823,2681,5.631,2683,6.224,2684,4.226,2685,6.224,2686,6.224,2687,4.226,2688,4.226,2689,6.224,2690,4.226,2691,4.226,2692,4.226]],["t/647",[3,1.392,16,1.227,21,2.857,24,2.279,25,1.867,30,2.462,31,0.68,84,2.681,114,4.335,151,4.191,157,4.196,163,4.857,176,2.906,198,2.566,342,3.784,430,4.857,602,5.168,620,4.857,712,5.218,776,3.011,1006,4.857,1041,3.676,1059,3.011,1060,5.218,1120,4.587,1239,3.784,1278,4.857,1781,4.587,2047,3.784,2103,4.857,2320,4.857,2363,5.218,2369,4.857,2384,4.587,2663,6.525,2667,4.857,2680,5.218,2693,5.767,2694,5.767,2695,5.767]],["t/649",[3,1.031,16,1.474,38,4.093,53,3.222,118,4,173,3.618,304,4.379,384,4.933,609,6.271,776,3.618,1578,5.836,1730,5.512,1743,5.512,1978,5.512,2068,6.271,2243,6.347,2641,6.271,2665,6.271,2696,6.931,2697,6.931,2698,6.931,2699,6.931,2700,6.931]]],"invertedIndex":[["",{"_index":43,"t":{"4":{"position":[[212,1]]},"6":{"position":[[710,2],[806,2],[846,1]]},"14":{"position":[[101,1],[119,1],[139,2],[183,1],[232,3],[256,2],[306,2],[653,2],[696,3],[761,2],[820,1],[885,1],[951,2],[954,3]]},"16":{"position":[[88,2],[135,1],[200,1],[238,2],[241,3]]},"18":{"position":[[101,2],[279,1],[291,1],[311,2]]},"20":{"position":[[93,1],[124,1],[144,2],[189,1],[223,2],[277,1],[308,3],[326,1],[471,1],[517,2],[559,2],[607,3],[734,2],[783,1],[785,1],[816,2],[819,2],[890,1],[973,3],[991,1]]},"22":{"position":[[118,2],[180,1]]},"24":{"position":[[137,2],[187,1],[275,3],[279,2],[343,1],[387,2],[459,1],[489,3]]},"26":{"position":[[172,2],[219,1],[235,2],[238,1],[240,2],[320,2],[393,1],[460,2],[463,2],[501,1],[523,1],[525,1],[596,3],[611,1],[613,2],[661,1],[663,2],[893,2],[942,1],[944,1],[975,2],[978,2],[1054,1]]},"46":{"position":[[142,1],[160,1],[180,2],[244,1],[293,3]]},"48":{"position":[[154,1],[172,1],[192,2],[240,1],[304,3],[464,2],[524,1],[526,1],[702,2],[705,2],[757,1],[806,3],[867,2],[927,1],[929,1],[1105,2],[1119,1],[1146,2],[1188,1],[1245,2],[1259,1],[1293,1],[1320,2],[1323,3],[1327,2],[1345,1],[1367,2]]},"50":{"position":[[280,1],[298,1],[325,1],[344,1],[374,2],[412,1],[454,2],[506,1],[508,1],[545,2],[548,2],[597,1],[631,1],[648,1],[698,2],[701,2],[704,2],[707,3],[820,1],[830,1],[860,2],[909,1],[943,1],[960,1],[1035,2],[1038,2],[1041,2],[1044,3]]},"52":{"position":[[93,1],[111,1],[138,1],[150,1],[185,1],[213,1],[243,2],[303,1],[305,1],[481,2],[484,2],[536,1],[538,1],[575,2],[578,2],[644,1],[678,1],[718,1],[776,2],[779,2],[782,2],[785,3]]},"54":{"position":[[130,1],[148,1],[179,1],[228,3],[259,2]]},"62":{"position":[[301,1]]},"66":{"position":[[266,1],[305,1],[307,3]]},"70":{"position":[[188,1],[270,1],[272,3]]},"82":{"position":[[244,1],[264,1],[286,2],[335,1],[337,1],[362,2],[426,2],[532,2],[577,1],[688,1],[698,1],[735,1],[737,2],[776,1],[801,1],[803,1],[816,2],[852,2],[915,2],[980,1]]},"84":{"position":[[151,1],[173,1],[196,1],[206,1],[235,1],[266,1],[355,1],[395,1],[441,1],[457,2],[540,1],[546,2],[549,1],[584,2],[587,2],[626,1],[651,1],[653,1],[666,2],[725,1],[775,1],[806,3],[824,1],[855,2],[917,1],[1052,2],[1107,1],[1115,2],[1118,2],[1121,2],[1131,1],[1133,2],[1253,2],[1256,1],[1419,3],[1583,2],[1668,3],[1672,1],[1674,1],[1961,1],[1979,1],[1997,1],[2077,1],[2090,1],[2139,1],[2155,1],[2233,1],[2248,1],[2328,1],[2345,1],[2416,1],[2431,1],[2480,1]]},"86":{"position":[[215,1],[230,1],[267,1],[269,2],[317,1],[324,1],[326,1],[357,3],[361,2],[416,1],[424,2],[427,2],[430,1],[442,2],[465,3],[480,2],[527,1],[560,1],[626,3],[630,2],[693,1],[743,1],[764,1],[766,1],[800,3],[804,2],[842,3],[849,1],[903,1],[910,1],[933,1],[935,2],[938,1]]},"88":{"position":[[201,1],[221,1],[258,1],[260,2],[311,1],[338,1],[340,1],[376,3],[380,2],[424,2],[427,1],[474,2],[477,1],[560,4],[565,2],[587,1]]},"90":{"position":[[230,1],[268,1],[305,1],[307,2],[352,1],[378,1],[380,1],[415,3],[419,2],[470,1],[497,1],[499,1],[535,3],[539,2],[589,2],[592,1],[612,1],[694,2],[697,1],[780,4],[785,2],[822,1],[994,1],[1051,1],[1100,2],[1142,1],[1144,3]]},"111":{"position":[[169,1],[192,1],[227,2],[281,1],[422,1],[438,1],[483,2],[535,1],[581,2],[628,2],[669,3],[673,2],[745,1],[755,3],[889,1],[905,1],[950,2],[1002,1],[1047,2],[1145,2]]},"113":{"position":[[169,1],[204,1],[239,2],[308,1],[332,2],[417,1],[577,1],[593,1],[634,2],[683,1],[729,2],[776,2],[820,3],[824,2],[896,1],[906,3],[1058,1],[1074,1],[1115,2],[1164,1],[1207,2],[1305,2]]},"115":{"position":[[570,1],[605,1],[647,1],[689,1],[741,1],[779,1],[820,2],[880,2],[940,2],[1026,1],[1071,1],[1104,2],[1177,1],[1232,2],[1279,2],[1349,2],[1403,3],[1407,2],[1473,1],[1524,2],[1571,2],[1644,2],[1698,3],[1702,2],[1876,1],[1886,3],[1986,1],[1996,3],[2235,1],[2256,1],[2298,1],[2314,1],[2359,2],[2413,2],[2497,1],[2521,2],[2576,1],[2671,3],[2675,2],[2750,1],[2766,2],[2769,1],[2771,2],[2836,2],[2916,1],[2966,1],[3000,2],[3060,2],[3186,1],[3237,1],[3244,1],[3299,1],[3301,2]]},"117":{"position":[[460,1],[485,1],[513,2],[578,1],[621,1],[645,2],[707,1],[755,1],[781,2],[852,1],[908,1]]},"121":{"position":[[301,1],[448,1],[453,1],[596,1],[650,1]]},"127":{"position":[[66,1],[117,1]]},"135":{"position":[[154,2],[192,1],[214,1],[216,1],[287,3],[302,1],[304,2],[352,1],[354,2],[562,1],[570,2],[573,2],[576,1],[582,1],[584,2],[636,1],[652,1],[657,1],[659,2],[749,2],[804,1],[806,1],[808,2],[908,1],[915,1],[930,1],[932,1],[934,2],[937,2]]},"139":{"position":[[192,1],[226,1],[417,1],[513,1]]},"141":{"position":[[540,1],[563,1],[622,1],[949,1],[972,1],[1087,1],[1125,1]]},"143":{"position":[[295,1],[321,1],[378,1],[561,1],[587,1]]},"145":{"position":[[288,1],[311,1],[696,1],[715,1],[733,1]]},"149":{"position":[[101,1],[119,1],[139,2],[183,1],[232,3]]},"151":{"position":[[92,1],[104,1],[124,2],[430,1],[487,1],[536,2],[578,1],[580,3]]},"153":{"position":[[99,1],[115,1],[135,2],[180,1],[214,2],[256,1]]},"157":{"position":[[458,2],[505,1],[521,2],[524,1],[526,2],[602,2],[605,2]]},"159":{"position":[[358,2],[401,1],[441,2],[514,1],[516,2],[563,1],[615,2],[618,1],[630,1],[641,2],[709,2],[712,2],[715,1]]},"162":{"position":[[158,1],[174,1],[194,2],[247,1],[249,1],[290,2],[293,2],[346,1],[348,1],[388,2],[391,2],[518,1]]},"164":{"position":[[187,1],[194,1],[214,2],[261,1],[263,3],[282,1],[298,2],[301,1],[331,2],[373,2],[428,2],[431,2],[470,2],[601,2],[640,1],[686,1],[726,2],[764,2],[890,1],[908,3]]},"166":{"position":[[150,2],[186,1],[216,1],[272,2],[322,1],[324,1],[338,1],[360,2],[363,2],[366,2],[493,1]]},"178":{"position":[[1158,1]]},"182":{"position":[[178,1]]},"186":{"position":[[587,5],[684,1]]},"202":{"position":[[357,1],[472,1]]},"206":{"position":[[400,1]]},"208":{"position":[[396,1]]},"228":{"position":[[74,1],[151,1],[406,1],[450,1],[459,2],[528,1],[586,2],[843,1]]},"236":{"position":[[105,1],[124,1],[138,1],[187,1],[407,1],[503,1]]},"252":{"position":[[482,1],[484,3],[488,1],[516,1],[518,3],[522,1],[524,2],[630,1],[665,1],[700,1],[705,1]]},"254":{"position":[[773,1],[849,1],[854,1]]},"262":{"position":[[45,1],[142,1]]},"264":{"position":[[376,1],[399,1],[514,1],[540,1],[571,1],[696,1],[708,2],[891,1],[1069,1]]},"270":{"position":[[79,1],[125,1]]},"274":{"position":[[208,1],[246,1],[267,1],[352,2],[560,1]]},"276":{"position":[[172,1]]},"284":{"position":[[1005,1],[1020,1],[1082,1],[1294,1],[1309,1],[1355,1]]},"286":{"position":[[392,1],[618,1],[702,1],[779,1],[792,1],[819,1],[833,1],[850,1]]},"288":{"position":[[579,1],[606,1],[652,1],[686,1],[744,1],[933,1],[960,1],[1142,1],[1176,1],[1218,1],[1263,1]]},"290":{"position":[[749,1],[763,1],[812,1],[855,1],[910,1],[938,1],[1068,1],[1082,1],[1101,1],[1250,1],[1264,1],[1284,1],[1306,1]]},"292":{"position":[[304,1],[343,1],[535,1],[672,1]]},"296":{"position":[[235,1],[263,1]]},"356":{"position":[[138,1],[156,1],[187,1],[214,2],[310,1],[328,1],[359,1],[386,2],[450,2],[453,1],[495,1]]},"358":{"position":[[14,1],[32,1],[63,1],[100,1],[137,1],[139,3],[156,1],[174,1],[205,1],[246,1],[283,1],[285,3]]},"360":{"position":[[14,1],[32,1],[63,1],[100,1],[165,1],[167,3],[184,1],[202,1],[233,1],[274,1],[339,1],[341,3]]},"362":{"position":[[140,1],[158,1],[189,1],[260,3],[298,1],[316,1],[347,1],[388,1],[437,1],[439,3],[472,1],[490,1],[521,1],[562,1],[623,1],[625,3]]},"364":{"position":[[472,1],[490,1],[521,1],[558,1],[610,1],[612,3],[629,1],[647,1],[678,1],[719,1],[778,1],[780,3]]},"366":{"position":[[107,1]]},"368":{"position":[[579,1],[606,1],[641,1],[693,1],[731,1],[772,1],[886,1],[928,2]]},"411":{"position":[[769,1],[1772,1]]},"449":{"position":[[2633,1],[2694,1],[2713,1],[2725,1],[2735,1],[2748,1],[2760,1]]},"523":{"position":[[495,1]]},"553":{"position":[[588,1]]},"565":{"position":[[1046,1],[1053,1]]},"567":{"position":[[200,1]]}}}],["0",{"_index":209,"t":{"16":{"position":[[224,3]]},"84":{"position":[[1971,1]]},"86":{"position":[[469,2],[846,2]]},"174":{"position":[[42,1],[410,1]]},"178":{"position":[[1156,1]]},"358":{"position":[[124,3],[270,3]]},"362":{"position":[[412,3]]},"535":{"position":[[95,1]]},"555":{"position":[[674,1]]}}}],["0,1,2,3,4,5,6,7",{"_index":200,"t":{"14":{"position":[[678,17]]},"356":{"position":[[477,17]]},"368":{"position":[[910,17]]}}}],["0.0.0.0",{"_index":460,"t":{"48":{"position":[[399,8]]},"139":{"position":[[357,8]]},"145":{"position":[[531,9]]}}}],["0.007",{"_index":2269,"t":{"533":{"position":[[798,5]]}}}],["0.012",{"_index":2304,"t":{"549":{"position":[[97,5]]},"553":{"position":[[102,5]]},"567":{"position":[[1019,5]]}}}],["0.012*5",{"_index":2323,"t":{"553":{"position":[[580,7]]}}}],["0.0125",{"_index":2268,"t":{"533":{"position":[[791,6],[837,6]]}}}],["0.05",{"_index":2266,"t":{"533":{"position":[[764,4]]}}}],["0.06",{"_index":2308,"t":{"549":{"position":[[184,4]]},"553":{"position":[[590,4]]}}}],["0.1",{"_index":1731,"t":{"344":{"position":[[274,3]]}}}],["0.15",{"_index":2303,"t":{"549":{"position":[[34,4]]},"551":{"position":[[178,4]]},"567":{"position":[[1060,4]]},"569":{"position":[[1418,4]]}}}],["0.25",{"_index":2271,"t":{"533":{"position":[[844,4]]}}}],["0.4",{"_index":2251,"t":{"526":{"position":[[340,4]]},"528":{"position":[[233,4]]}}}],["0.5gb",{"_index":1281,"t":{"210":{"position":[[440,5]]},"216":{"position":[[295,5]]},"258":{"position":[[240,5]]},"266":{"position":[[591,5]]}}}],["0.6",{"_index":1294,"t":{"216":{"position":[[109,5]]}}}],["0.75",{"_index":2043,"t":{"421":{"position":[[1259,4]]}}}],["000",{"_index":709,"t":{"84":{"position":[[2191,5]]}}}],["007bff",{"_index":717,"t":{"84":{"position":[[2451,8]]}}}],["01.ac",{"_index":1503,"t":{"284":{"position":[[1770,5]]},"292":{"position":[[561,5]]},"294":{"position":[[489,5]]}}}],["01.he",{"_index":1915,"t":{"411":{"position":[[951,5],[2023,5]]},"413":{"position":[[1081,5]]}}}],["06",{"_index":1261,"t":{"202":{"position":[[93,2]]},"206":{"position":[[102,2]]},"208":{"position":[[105,2]]}}}],["1",{"_index":198,"t":{"14":{"position":[[667,2],[898,2]]},"16":{"position":[[213,2],[228,2]]},"20":{"position":[[809,3]]},"22":{"position":[[251,2]]},"26":{"position":[[968,3]]},"84":{"position":[[988,2],[2103,2],[2358,2]]},"139":{"position":[[223,2]]},"143":{"position":[[375,2]]},"164":{"position":[[669,3]]},"192":{"position":[[585,1]]},"246":{"position":[[266,2]]},"252":{"position":[[667,2]]},"336":{"position":[[197,2]]},"356":{"position":[[466,2]]},"358":{"position":[[113,2],[128,2],[259,2],[274,2]]},"360":{"position":[[113,2],[287,2]]},"362":{"position":[[401,2],[416,2],[575,2]]},"364":{"position":[[571,2],[606,3],[732,2]]},"368":{"position":[[899,2]]},"407":{"position":[[36,1]]},"409":{"position":[[230,2]]},"411":{"position":[[999,1],[1013,1],[1031,1],[1060,1],[1352,1],[1381,1],[1527,1],[1556,1],[2071,1],[2084,1],[2102,1],[2229,1],[2294,1],[2441,1],[2634,1],[2717,1],[2910,1]]},"419":{"position":[[270,1]]},"447":{"position":[[33,3],[476,3]]},"531":{"position":[[224,1],[244,1]]},"557":{"position":[[577,1]]},"565":{"position":[[470,2],[1306,1]]},"569":{"position":[[859,1],[1366,1],[1951,1]]},"647":{"position":[[462,2]]}}}],["1%2fproto&pagesize=50&ascending=tru",{"_index":1338,"t":{"228":{"position":[[805,37]]}}}],["1.0.0.1",{"_index":982,"t":{"141":{"position":[[789,8]]},"176":{"position":[[134,10]]},"190":{"position":[[197,10]]}}}],["1.1.1.1",{"_index":981,"t":{"141":{"position":[[777,7]]},"176":{"position":[[122,11]]},"190":{"position":[[185,11]]}}}],["1.4",{"_index":1860,"t":{"407":{"position":[[289,3]]}}}],["1.6",{"_index":2267,"t":{"533":{"position":[[769,3]]}}}],["1.8",{"_index":2258,"t":{"531":{"position":[[254,4]]}}}],["1.9",{"_index":2259,"t":{"531":{"position":[[259,4]]}}}],["1/proto",{"_index":1334,"t":{"228":{"position":[[577,8]]}}}],["10",{"_index":1210,"t":{"192":{"position":[[398,2]]},"198":{"position":[[1350,2]]},"407":{"position":[[1220,3]]},"409":{"position":[[424,2]]},"411":{"position":[[1332,2],[2421,2],[2568,2]]},"413":{"position":[[1469,2],[1576,2],[1847,2]]},"425":{"position":[[305,2]]},"443":{"position":[[286,2]]},"449":{"position":[[2569,2],[2783,2]]},"526":{"position":[[137,3]]},"528":{"position":[[30,3]]},"533":{"position":[[552,2]]},"547":{"position":[[409,2]]},"567":{"position":[[801,2]]},"615":{"position":[[246,2]]}}}],["10,000",{"_index":1424,"t":{"254":{"position":[[747,6],[775,7],[842,6]]}}}],["10.000",{"_index":2294,"t":{"547":{"position":[[481,6]]}}}],["10.1",{"_index":2255,"t":{"531":{"position":[[232,5]]}}}],["10.3",{"_index":2256,"t":{"531":{"position":[[238,5]]}}}],["100",{"_index":1549,"t":{"290":{"position":[[1227,4]]},"413":{"position":[[1817,3]]},"526":{"position":[[325,4],[525,3]]},"528":{"position":[[218,4],[418,3]]},"533":{"position":[[571,3]]},"535":{"position":[[55,3]]},"547":{"position":[[324,3]]},"555":{"position":[[362,3]]},"559":{"position":[[21,3]]},"625":{"position":[[528,3]]}}}],["1000",{"_index":1191,"t":{"182":{"position":[[316,4],[413,4]]},"531":{"position":[[49,4]]},"533":{"position":[[338,4],[751,5]]},"561":{"position":[[32,4]]},"565":{"position":[[1079,4]]},"569":{"position":[[1725,4]]}}}],["10000",{"_index":2419,"t":{"569":{"position":[[1758,5]]}}}],["100k/day",{"_index":2345,"t":{"557":{"position":[[677,9]]}}}],["100kb",{"_index":2394,"t":{"569":{"position":[[188,6],[1609,5]]}}}],["100mbit",{"_index":2408,"t":{"569":{"position":[[833,8]]}}}],["100mpb",{"_index":2407,"t":{"569":{"position":[[819,7]]}}}],["100vh",{"_index":695,"t":{"84":{"position":[[2046,6]]}}}],["107",{"_index":2149,"t":{"447":{"position":[[559,3]]}}}],["108",{"_index":2171,"t":{"447":{"position":[[671,3]]}}}],["10k",{"_index":2305,"t":{"549":{"position":[[130,3]]},"553":{"position":[[455,3]]},"557":{"position":[[340,3],[400,3]]}}}],["10kb",{"_index":1920,"t":{"411":{"position":[[1089,4],[1410,4],[1585,4],[2323,4],[2663,4],[2939,4]]},"535":{"position":[[367,4]]},"551":{"position":[[139,5]]},"561":{"position":[[330,4]]},"569":{"position":[[182,5],[1071,4],[1258,4]]}}}],["10mbp",{"_index":2210,"t":{"449":{"position":[[2622,6]]}}}],["10msg/sec",{"_index":1919,"t":{"411":{"position":[[1078,10],[1399,10],[1574,10],[2312,10],[2652,10],[2928,10]]}}}],["10px",{"_index":704,"t":{"84":{"position":[[2133,5],[2206,5],[2227,5],[2274,5],[2390,5],[2410,5]]}}}],["11",{"_index":1953,"t":{"413":{"position":[[410,2]]},"449":{"position":[[2722,2]]}}}],["1100",{"_index":1945,"t":{"411":{"position":[[3776,4]]}}}],["119",{"_index":2162,"t":{"447":{"position":[[621,3]]}}}],["11m",{"_index":1930,"t":{"411":{"position":[[2392,5]]}}}],["12",{"_index":2142,"t":{"447":{"position":[[369,2],[691,2]]},"449":{"position":[[2745,2]]},"569":{"position":[[2049,3]]}}}],["123.123.123.123",{"_index":576,"t":{"70":{"position":[[223,18]]}}}],["1234",{"_index":574,"t":{"70":{"position":[[211,4]]}}}],["127.0.0.1",{"_index":534,"t":{"64":{"position":[[529,10]]},"186":{"position":[[96,9]]},"188":{"position":[[113,9]]},"226":{"position":[[153,9]]},"290":{"position":[[315,10]]}}}],["127.0.0.1:8080",{"_index":1202,"t":{"186":{"position":[[642,15]]}}}],["13",{"_index":2158,"t":{"447":{"position":[[599,2]]}}}],["130",{"_index":1247,"t":{"198":{"position":[[1257,3]]}}}],["137",{"_index":2150,"t":{"447":{"position":[[563,3]]}}}],["13:18:07.575+00:00",{"_index":1955,"t":{"413":{"position":[[416,18]]}}}],["14",{"_index":2543,"t":{"613":{"position":[[27,2]]}}}],["14400",{"_index":1558,"t":{"292":{"position":[[760,5]]}}}],["1459",{"_index":1570,"t":{"298":{"position":[[33,5]]}}}],["15",{"_index":1262,"t":{"202":{"position":[[96,2]]},"206":{"position":[[105,2]]},"208":{"position":[[108,2]]},"447":{"position":[[648,2],[856,2]]}}}],["1500m",{"_index":1248,"t":{"198":{"position":[[1278,6]]}}}],["150kb",{"_index":2034,"t":{"421":{"position":[[699,6]]},"551":{"position":[[151,6]]}}}],["15mbp",{"_index":2204,"t":{"449":{"position":[[2152,7]]}}}],["16",{"_index":1426,"t":{"254":{"position":[[851,2]]}}}],["160000",{"_index":2024,"t":{"421":{"position":[[364,6]]}}}],["160000/600",{"_index":2041,"t":{"421":{"position":[[1031,12]]}}}],["16:09:54.448+01:00",{"_index":1263,"t":{"202":{"position":[[99,18]]},"206":{"position":[[108,18]]},"208":{"position":[[111,18]]}}}],["17",{"_index":2175,"t":{"447":{"position":[[702,2]]},"449":{"position":[[2364,3],[2457,3]]}}}],["1727795042",{"_index":2214,"t":{"449":{"position":[[2890,10]]}}}],["18",{"_index":2211,"t":{"449":{"position":[[2710,2],[2732,2]]}}}],["1:1",{"_index":238,"t":{"20":{"position":[[1215,3]]}}}],["1kb",{"_index":2247,"t":{"526":{"position":[[175,3]]},"528":{"position":[[68,3]]},"531":{"position":[[78,3]]},"533":{"position":[[240,3]]},"535":{"position":[[353,3]]},"551":{"position":[[134,4]]}}}],["1lqrcbccb4np93f9",{"_index":1275,"t":{"206":{"position":[[245,16],[478,16]]}}}],["1msg/",{"_index":2249,"t":{"526":{"position":[[222,7]]},"528":{"position":[[115,7]]},"533":{"position":[[268,6]]},"535":{"position":[[100,7]]}}}],["1msg/10",{"_index":2332,"t":{"555":{"position":[[530,7]]}}}],["1px",{"_index":697,"t":{"84":{"position":[[2061,3]]}}}],["2",{"_index":210,"t":{"16":{"position":[[231,2]]},"20":{"position":[[813,2]]},"22":{"position":[[299,2]]},"26":{"position":[[972,2]]},"32":{"position":[[830,1],[914,1]]},"84":{"position":[[1037,2]]},"139":{"position":[[257,2]]},"143":{"position":[[432,2]]},"192":{"position":[[490,1]]},"252":{"position":[[702,2]]},"264":{"position":[[717,4]]},"312":{"position":[[400,1]]},"358":{"position":[[131,2],[277,2]]},"362":{"position":[[419,2]]},"411":{"position":[[1318,1],[1744,2],[2407,1]]},"413":{"position":[[1894,2]]},"447":{"position":[[279,3],[714,3]]},"567":{"position":[[614,1]]}}}],["20",{"_index":2029,"t":{"421":{"position":[[414,2]]}}}],["2000",{"_index":2250,"t":{"526":{"position":[[264,4],[369,4]]},"528":{"position":[[157,4],[262,4]]}}}],["2023",{"_index":1260,"t":{"202":{"position":[[88,4]]},"206":{"position":[[97,4]]},"208":{"position":[[100,4]]},"411":{"position":[[3834,6]]},"413":{"position":[[405,4]]},"447":{"position":[[376,6]]},"587":{"position":[[127,5]]}}}],["2024",{"_index":2046,"t":{"423":{"position":[[38,4]]},"613":{"position":[[39,4]]}}}],["21",{"_index":2155,"t":{"447":{"position":[[590,2]]}}}],["210",{"_index":2262,"t":{"533":{"position":[[382,3],[779,4]]}}}],["21600",{"_index":1497,"t":{"284":{"position":[[1251,5]]},"292":{"position":[[492,5]]}}}],["22",{"_index":2176,"t":{"447":{"position":[[705,2]]}}}],["23",{"_index":2165,"t":{"447":{"position":[[639,2]]}}}],["232",{"_index":1877,"t":{"407":{"position":[[1134,3]]}}}],["25",{"_index":1924,"t":{"411":{"position":[[1507,2],[2697,2],[2844,2]]}}}],["250m",{"_index":1940,"t":{"411":{"position":[[3544,5]]}}}],["256",{"_index":2380,"t":{"567":{"position":[[362,3]]}}}],["25mbp",{"_index":2008,"t":{"417":{"position":[[1502,7]]}}}],["26",{"_index":2174,"t":{"447":{"position":[[694,2]]},"449":{"position":[[2298,3]]}}}],["263",{"_index":2416,"t":{"569":{"position":[[1314,3]]}}}],["266",{"_index":2030,"t":{"421":{"position":[[518,3],[1005,3],[1075,4]]}}}],["27",{"_index":1954,"t":{"413":{"position":[[413,2]]},"447":{"position":[[675,2]]}}}],["286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8",{"_index":1514,"t":{"286":{"position":[[394,64],[852,64],[940,64]]}}}],["2gb",{"_index":876,"t":{"119":{"position":[[257,3]]},"210":{"position":[[368,3]]},"216":{"position":[[223,3]]},"258":{"position":[[168,3]]},"266":{"position":[[519,3]]}}}],["2mbyte",{"_index":2339,"t":{"557":{"position":[[358,7]]}}}],["3",{"_index":211,"t":{"16":{"position":[[234,3]]},"20":{"position":[[798,2]]},"22":{"position":[[348,2]]},"26":{"position":[[957,2]]},"50":{"position":[[517,2],[531,2],[542,2]]},"52":{"position":[[547,2],[561,2],[572,2]]},"358":{"position":[[134,2],[280,2]]},"362":{"position":[[422,2]]},"411":{"position":[[1493,1],[2683,1]]},"447":{"position":[[389,3],[781,3],[827,1]]},"449":{"position":[[2114,4]]}}}],["3.85",{"_index":2366,"t":{"565":{"position":[[1048,4]]}}}],["30",{"_index":1198,"t":{"186":{"position":[[228,2]]},"290":{"position":[[565,3]]},"399":{"position":[[95,2]]},"407":{"position":[[755,2]]},"447":{"position":[[625,2]]}}}],["300",{"_index":1185,"t":{"182":{"position":[[174,3]]},"407":{"position":[[775,3]]}}}],["3000",{"_index":2330,"t":{"555":{"position":[[482,4]]}}}],["32",{"_index":975,"t":{"141":{"position":[[331,2]]},"286":{"position":[[351,2],[389,2],[530,2],[712,2],[802,3],[816,2]]}}}],["33",{"_index":2042,"t":{"421":{"position":[[1234,2]]},"447":{"position":[[602,2],[697,2]]}}}],["37",{"_index":2168,"t":{"447":{"position":[[651,2]]}}}],["38",{"_index":2151,"t":{"447":{"position":[[567,2],[772,2]]},"449":{"position":[[2757,2]]}}}],["38.8",{"_index":1876,"t":{"407":{"position":[[1088,7]]}}}],["384",{"_index":2298,"t":{"547":{"position":[[655,3]]}}}],["4",{"_index":1404,"t":{"250":{"position":[[434,1]]},"292":{"position":[[774,2]]},"362":{"position":[[425,2]]},"557":{"position":[[418,3]]},"565":{"position":[[1055,2],[1146,1],[1874,1]]},"569":{"position":[[2044,1]]}}}],["4.0",{"_index":2592,"t":{"621":{"position":[[83,3],[116,5]]}}}],["40",{"_index":1116,"t":{"174":{"position":[[973,3]]}}}],["44",{"_index":2159,"t":{"447":{"position":[[605,2],[665,2]]}}}],["479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd",{"_index":1967,"t":{"413":{"position":[[741,65]]}}}],["48",{"_index":1489,"t":{"284":{"position":[[694,3]]}}}],["49",{"_index":2160,"t":{"447":{"position":[[615,2]]}}}],["4k",{"_index":2203,"t":{"449":{"position":[[2127,2],[2613,3]]}}}],["4k/uhd",{"_index":2179,"t":{"447":{"position":[[849,6]]}}}],["4kb",{"_index":2035,"t":{"421":{"position":[[785,4],[1080,3],[1094,3]]}}}],["4px",{"_index":715,"t":{"84":{"position":[[2376,4],[2475,4]]}}}],["5",{"_index":1186,"t":{"182":{"position":[[180,1]]},"198":{"position":[[1475,1]]},"362":{"position":[[428,2]]},"447":{"position":[[842,1]]}}}],["50",{"_index":1107,"t":{"174":{"position":[[726,2]]},"413":{"position":[[1440,2],[1547,2]]},"417":{"position":[[1217,2],[1420,2]]},"447":{"position":[[654,2],[678,2]]}}}],["500",{"_index":2264,"t":{"533":{"position":[[524,3]]}}}],["5000",{"_index":2342,"t":{"557":{"position":[[505,4]]}}}],["500kb",{"_index":2352,"t":{"561":{"position":[[574,6]]},"569":{"position":[[195,6],[1619,6]]}}}],["508",{"_index":2350,"t":{"561":{"position":[[379,3]]},"569":{"position":[[1109,3]]}}}],["50kb",{"_index":2314,"t":{"551":{"position":[[145,5]]}}}],["510",{"_index":2270,"t":{"533":{"position":[[825,4]]}}}],["520",{"_index":2343,"t":{"557":{"position":[[549,3]]}}}],["53",{"_index":2166,"t":{"447":{"position":[[642,2]]}}}],["54",{"_index":2156,"t":{"447":{"position":[[593,2]]}}}],["56",{"_index":2163,"t":{"447":{"position":[[628,2]]}}}],["58",{"_index":2148,"t":{"447":{"position":[[556,2]]}}}],["6",{"_index":1498,"t":{"284":{"position":[[1265,2]]},"292":{"position":[[506,2]]},"326":{"position":[[403,1]]},"362":{"position":[[431,2]]},"421":{"position":[[1057,1],[1084,3],[1130,1]]},"569":{"position":[[2029,1]]}}}],["6.70",{"_index":2274,"t":{"535":{"position":[[348,4]]}}}],["60",{"_index":1115,"t":{"174":{"position":[[900,3]]},"633":{"position":[[1068,4]]}}}],["600",{"_index":2026,"t":{"421":{"position":[[390,3],[639,4],[670,3]]},"533":{"position":[[222,3]]}}}],["60000",{"_index":1092,"t":{"174":{"position":[[373,5]]},"238":{"position":[[215,8]]}}}],["60000:60000",{"_index":1435,"t":{"264":{"position":[[325,11]]}}}],["60002",{"_index":463,"t":{"48":{"position":[[424,5]]},"139":{"position":[[382,5]]}}}],["60003",{"_index":464,"t":{"48":{"position":[[434,5]]},"139":{"position":[[392,6]]}}}],["60:40",{"_index":1111,"t":{"174":{"position":[[794,7],[882,6]]}}}],["625",{"_index":1427,"t":{"254":{"position":[[856,4]]}}}],["627",{"_index":2414,"t":{"569":{"position":[[1228,4]]}}}],["63",{"_index":2172,"t":{"447":{"position":[[681,2]]}}}],["6300",{"_index":2059,"t":{"425":{"position":[[308,4]]},"615":{"position":[[249,4]]}}}],["64",{"_index":1086,"t":{"174":{"position":[[239,2]]},"286":{"position":[[262,3]]},"479":{"position":[[26,3]]}}}],["64/waku2",{"_index":2031,"t":{"421":{"position":[[592,8]]}}}],["65000",{"_index":1347,"t":{"236":{"position":[[126,5]]}}}],["68",{"_index":2152,"t":{"447":{"position":[[570,2]]}}}],["7",{"_index":1057,"t":{"166":{"position":[[268,3]]},"362":{"position":[[434,2]]},"411":{"position":[[3831,2]]},"447":{"position":[[700,1]]}}}],["7.4",{"_index":2252,"t":{"526":{"position":[[476,3]]},"528":{"position":[[369,3]]}}}],["7.40",{"_index":2276,"t":{"535":{"position":[[362,4]]}}}],["7.45",{"_index":2278,"t":{"535":{"position":[[377,4]]}}}],["7.88",{"_index":2273,"t":{"535":{"position":[[343,4]]}}}],["71",{"_index":2167,"t":{"447":{"position":[[645,2]]}}}],["72",{"_index":2157,"t":{"447":{"position":[[596,2],[631,2]]}}}],["7640",{"_index":1859,"t":{"407":{"position":[[250,5]]}}}],["8",{"_index":1254,"t":{"198":{"position":[[1414,1]]},"286":{"position":[[789,2]]},"340":{"position":[[339,1]]},"421":{"position":[[1224,1]]},"526":{"position":[[444,1]]},"528":{"position":[[337,1]]}}}],["8.03",{"_index":2277,"t":{"535":{"position":[[372,4]]}}}],["8.04",{"_index":2275,"t":{"535":{"position":[[357,4]]}}}],["8.8.4.4",{"_index":984,"t":{"141":{"position":[[922,8]]}}}],["8.8.8.8",{"_index":983,"t":{"141":{"position":[[910,7]]}}}],["80/2",{"_index":1231,"t":{"198":{"position":[[289,5]]}}}],["8000",{"_index":1220,"t":{"196":{"position":[[99,4]]},"288":{"position":[[346,5]]},"421":{"position":[[525,4]]}}}],["8001",{"_index":1530,"t":{"288":{"position":[[909,5]]}}}],["8002",{"_index":1534,"t":{"288":{"position":[[1118,5]]}}}],["8008",{"_index":1205,"t":{"188":{"position":[[183,4]]}}}],["83",{"_index":2177,"t":{"447":{"position":[[769,2]]}}}],["84",{"_index":2170,"t":{"447":{"position":[[668,2]]}}}],["85",{"_index":2153,"t":{"447":{"position":[[573,2]]}}}],["8645",{"_index":1196,"t":{"186":{"position":[[158,4]]},"228":{"position":[[44,4]]},"290":{"position":[[431,5]]}}}],["8997",{"_index":1871,"t":{"407":{"position":[[809,4]]}}}],["9",{"_index":2044,"t":{"423":{"position":[[27,1]]},"449":{"position":[[2692,1]]}}}],["9000",{"_index":1208,"t":{"192":{"position":[[117,4]]},"290":{"position":[[1044,5]]},"407":{"position":[[852,5]]}}}],["9000:9000/udp",{"_index":1436,"t":{"264":{"position":[[340,13]]}}}],["93",{"_index":2161,"t":{"447":{"position":[[618,2]]}}}],["95",{"_index":2413,"t":{"569":{"position":[[1196,3]]}}}],["9990",{"_index":2391,"t":{"567":{"position":[[841,4]]}}}],["_nwaku",{"_index":1889,"t":{"409":{"position":[[95,6],[156,6],[258,6],[340,6]]}}}],["abil",{"_index":1576,"t":{"298":{"position":[[544,7]]}}}],["abnorm",{"_index":2401,"t":{"569":{"position":[[437,8]]}}}],["abov",{"_index":687,"t":{"84":{"position":[[1712,6]]},"304":{"position":[[876,6]]},"346":{"position":[[162,6]]},"449":{"position":[[9,5]]},"569":{"position":[[126,5]]},"619":{"position":[[1073,6]]}}}],["absent",{"_index":2534,"t":{"605":{"position":[[256,6]]}}}],["absolut",{"_index":812,"t":{"115":{"position":[[156,8]]}}}],["abus",{"_index":2527,"t":{"601":{"position":[[1006,7]]}}}],["accept",{"_index":1018,"t":{"157":{"position":[[184,7]]},"159":{"position":[[155,7]]},"228":{"position":[[854,8]]},"274":{"position":[[219,8]]},"276":{"position":[[183,8]]},"368":{"position":[[294,7]]},"547":{"position":[[765,6]]},"569":{"position":[[1179,11]]}}}],["access",{"_index":570,"t":{"68":{"position":[[304,11]]},"70":{"position":[[82,11]]},"111":{"position":[[1408,6]]},"119":{"position":[[81,6]]},"186":{"position":[[300,6]]},"222":{"position":[[27,6]]},"226":{"position":[[104,6]]},"264":{"position":[[1094,10]]},"290":{"position":[[600,6],[681,6]]},"340":{"position":[[64,7],[139,10]]},"344":{"position":[[94,6]]},"376":{"position":[[177,9]]},"447":{"position":[[359,9]]},"465":{"position":[[186,9]]},"471":{"position":[[84,6]]},"519":{"position":[[28,7],[111,13]]},"613":{"position":[[149,6],[519,6]]},"617":{"position":[[773,11],[845,6],[1007,10]]},"619":{"position":[[451,10],[1163,10]]},"623":{"position":[[563,8],[600,6]]}}}],["accident",{"_index":1305,"t":{"220":{"position":[[399,12]]}}}],["accommod",{"_index":1784,"t":{"372":{"position":[[338,11]]},"501":{"position":[[201,11]]}}}],["accompani",{"_index":1747,"t":{"348":{"position":[[1403,11]]}}}],["accord",{"_index":1624,"t":{"314":{"position":[[303,9]]},"633":{"position":[[1290,10],[1937,10]]}}}],["accordingli",{"_index":1771,"t":{"368":{"position":[[552,12]]}}}],["account",{"_index":777,"t":{"103":{"position":[[58,7]]},"388":{"position":[[432,10],[498,10]]},"449":{"position":[[858,8],[2206,8]]},"567":{"position":[[896,7]]},"569":{"position":[[2246,8]]},"597":{"position":[[269,8]]}}}],["accur",{"_index":2423,"t":{"569":{"position":[[2378,9]]},"619":{"position":[[872,9]]},"623":{"position":[[399,9]]}}}],["accuraci",{"_index":2560,"t":{"617":{"position":[[421,9]]},"619":{"position":[[941,9]]}}}],["achiev",{"_index":1667,"t":{"326":{"position":[[120,7]]},"332":{"position":[[82,7]]},"334":{"position":[[197,8]]},"336":{"position":[[97,8]]},"415":{"position":[[96,7]]},"421":{"position":[[260,8]]}}}],["ack/nack",{"_index":2410,"t":{"569":{"position":[[961,8]]}}}],["acknowledg",{"_index":1792,"t":{"380":{"position":[[138,15],[341,12]]},"473":{"position":[[96,16]]}}}],["acquir",{"_index":2674,"t":{"641":{"position":[[395,7]]}}}],["act",{"_index":1893,"t":{"409":{"position":[[292,6],[374,6]]},"411":{"position":[[122,4]]},"449":{"position":[[608,6]]},"549":{"position":[[260,4]]},"551":{"position":[[371,4]]},"591":{"position":[[557,4]]},"597":{"position":[[95,4]]}}}],["action",{"_index":1687,"t":{"330":{"position":[[216,7]]},"332":{"position":[[62,7]]},"585":{"position":[[799,7]]},"633":{"position":[[2234,6]]}}}],["activ",{"_index":432,"t":{"42":{"position":[[2266,6]]},"133":{"position":[[212,6]]},"135":{"position":[[95,6]]},"326":{"position":[[294,8]]},"332":{"position":[[118,10]]},"435":{"position":[[646,10],[687,10],[780,10]]},"437":{"position":[[209,10]]},"587":{"position":[[278,10]]},"623":{"position":[[524,10],[717,10]]}}}],["actor",{"_index":1690,"t":{"330":{"position":[[340,6]]},"332":{"position":[[47,5],[134,6]]}}}],["actual",{"_index":840,"t":{"115":{"position":[[3026,8]]},"330":{"position":[[333,6]]},"551":{"position":[[362,8]]},"619":{"position":[[695,6]]}}}],["ad",{"_index":179,"t":{"12":{"position":[[246,6]]},"22":{"position":[[419,6]]},"97":{"position":[[119,5]]},"254":{"position":[[274,6]]},"368":{"position":[[47,6],[204,5],[407,5]]}}}],["adapt",{"_index":392,"t":{"38":{"position":[[283,8]]},"78":{"position":[[198,8]]},"563":{"position":[[51,10]]}}}],["add",{"_index":10,"t":{"2":{"position":[[103,3]]},"4":{"position":[[104,3]]},"6":{"position":[[458,4],[607,3]]},"42":{"position":[[62,3]]},"50":{"position":[[125,3]]},"62":{"position":[[75,3]]},"78":{"position":[[103,3]]},"80":{"position":[[445,3]]},"99":{"position":[[150,3]]},"109":{"position":[[172,3]]},"174":{"position":[[412,3]]},"254":{"position":[[455,3]]},"549":{"position":[[159,3]]},"553":{"position":[[28,4],[555,3]]},"565":{"position":[[648,4]]},"587":{"position":[[216,4]]},"599":{"position":[[0,3],[184,3]]}}}],["add(new",{"_index":248,"t":{"22":{"position":[[214,8],[265,8],[313,8]]},"84":{"position":[[951,8],[1002,8]]}}}],["addit",{"_index":472,"t":{"48":{"position":[[1209,10]]},"310":{"position":[[525,10]]},"326":{"position":[[312,10]]},"382":{"position":[[267,10]]},"388":{"position":[[384,8]]},"413":{"position":[[1405,10],[1512,10],[1782,10]]},"429":{"position":[[3,8]]},"571":{"position":[[474,8]]}}}],["addition",{"_index":1650,"t":{"320":{"position":[[256,13]]},"388":{"position":[[579,13]]},"392":{"position":[[91,13]]},"513":{"position":[[201,13]]},"585":{"position":[[221,13]]}}}],["addr",{"_index":1124,"t":{"176":{"position":[[35,5],[104,5]]}}}],["address",{"_index":387,"t":{"38":{"position":[[92,7]]},"48":{"position":[[1176,7],[1477,7],[1617,7],[1663,8]]},"174":{"position":[[265,7],[306,7],[497,8]]},"176":{"position":[[299,7]]},"178":{"position":[[626,7],[665,7],[753,7],[761,7]]},"186":{"position":[[88,7],[116,7]]},"188":{"position":[[105,7],[133,7]]},"192":{"position":[[368,7]]},"200":{"position":[[87,9],[137,9]]},"202":{"position":[[383,7],[494,7]]},"204":{"position":[[28,10]]},"206":{"position":[[415,9]]},"208":{"position":[[411,9],[695,9]]},"210":{"position":[[1613,9],[1670,9],[1759,9],[1815,10]]},"266":{"position":[[455,10]]},"274":{"position":[[621,10]]},"282":{"position":[[72,7],[781,7]]},"290":{"position":[[209,7],[239,7],[803,8]]},"300":{"position":[[516,7]]},"306":{"position":[[63,9]]},"425":{"position":[[227,7]]},"427":{"position":[[537,8],[608,7],[715,9],[821,7]]},"479":{"position":[[96,10],[121,9]]},"591":{"position":[[819,8]]},"593":{"position":[[87,7]]},"615":{"position":[[167,7]]}}}],["address=127.0.0.1",{"_index":1548,"t":{"290":{"position":[[1110,17]]}}}],["address=[rest",{"_index":1542,"t":{"290":{"position":[[772,13]]}}}],["adequ",{"_index":2075,"t":{"433":{"position":[[288,8]]}}}],["admin",{"_index":1199,"t":{"186":{"position":[[281,5],[320,5]]},"290":{"position":[[574,5],[615,5],[1172,5]]}}}],["admin=[true|fals",{"_index":1545,"t":{"290":{"position":[[919,18]]}}}],["admin=tru",{"_index":1550,"t":{"290":{"position":[[1273,10]]}}}],["administ",{"_index":2639,"t":{"633":{"position":[[1227,12]]}}}],["administr",{"_index":2648,"t":{"633":{"position":[[1891,14]]}}}],["adopt",{"_index":1844,"t":{"399":{"position":[[423,8]]}}}],["advanc",{"_index":1291,"t":{"212":{"position":[[280,8]]},"228":{"position":[[1166,8]]},"386":{"position":[[122,8]]}}}],["adversari",{"_index":1408,"t":{"250":{"position":[[659,12]]},"332":{"position":[[19,9]]},"334":{"position":[[53,9]]},"388":{"position":[[46,11]]}}}],["advertis",{"_index":1104,"t":{"174":{"position":[[596,9]]},"591":{"position":[[107,13],[462,13]]},"595":{"position":[[144,13]]}}}],["advic",{"_index":2570,"t":{"617":{"position":[[1586,6]]}}}],["advis",{"_index":2611,"t":{"625":{"position":[[412,7]]}}}],["affect",{"_index":2091,"t":{"435":{"position":[[668,7],[741,6]]},"553":{"position":[[373,6]]},"561":{"position":[[235,8],[456,8]]},"569":{"position":[[1431,7]]},"635":{"position":[[412,6]]}}}],["affili",{"_index":2696,"t":{"649":{"position":[[87,11]]}}}],["africa",{"_index":2173,"t":{"447":{"position":[[684,6]]},"449":{"position":[[2291,6],[2357,6],[2750,6]]}}}],["again",{"_index":2519,"t":{"601":{"position":[[387,6]]}}}],["against",{"_index":1782,"t":{"372":{"position":[[283,7]]},"388":{"position":[[558,7]]},"601":{"position":[[934,7]]},"607":{"position":[[27,7]]},"627":{"position":[[53,7]]},"633":{"position":[[102,7],[2276,7]]}}}],["agent",{"_index":1082,"t":{"174":{"position":[[131,5],[155,5]]}}}],["aggreg",{"_index":331,"t":{"32":{"position":[[200,10],[898,9]]},"625":{"position":[[474,9]]}}}],["agnost",{"_index":1623,"t":{"314":{"position":[[220,8]]}}}],["agnostic",{"_index":1830,"t":{"394":{"position":[[122,12]]}}}],["agre",{"_index":2546,"t":{"613":{"position":[[390,6],[467,5]]}}}],["agreement",{"_index":2654,"t":{"635":{"position":[[44,9],[155,11]]}}}],["aim",{"_index":763,"t":{"99":{"position":[[10,4]]},"328":{"position":[[177,6]]},"386":{"position":[[3,3]]},"413":{"position":[[11,4],[879,5]]},"417":{"position":[[342,3]]},"427":{"position":[[3,3]]},"443":{"position":[[17,4]]},"563":{"position":[[830,4]]},"619":{"position":[[1205,3]]}}}],["aka",{"_index":1994,"t":{"417":{"position":[[613,3]]}}}],["alert",{"_index":547,"t":{"64":{"position":[[931,7]]}}}],["alic",{"_index":262,"t":{"24":{"position":[[240,8]]},"115":{"position":[[541,5],[998,5],[2883,5],[3054,5],[3228,8],[3290,8]]},"242":{"position":[[36,5],[102,5],[233,6],[240,5],[337,5],[472,6],[479,5],[571,5],[616,5]]},"308":{"position":[[0,5]]},"312":{"position":[[36,5],[95,5],[135,5],[219,6],[226,5],[300,5],[329,5],[390,5]]}}}],["alice'",{"_index":841,"t":{"115":{"position":[[3063,7]]},"308":{"position":[[114,7]]}}}],["aliceprivatekey",{"_index":821,"t":{"115":{"position":[[1010,15],[1332,16],[1627,16]]}}}],["alicepublickey",{"_index":822,"t":{"115":{"position":[[1056,14]]}}}],["align",{"_index":711,"t":{"84":{"position":[[2307,5]]}}}],["aliv",{"_index":1161,"t":{"178":{"position":[[1353,5],[1377,5]]}}}],["allmessag",{"_index":734,"t":{"90":{"position":[[600,11]]}}}],["alloc",{"_index":1998,"t":{"417":{"position":[[995,9],[1062,8]]},"449":{"position":[[997,8]]}}}],["allow",{"_index":65,"t":{"6":{"position":[[304,6]]},"18":{"position":[[193,6]]},"20":{"position":[[381,6],[562,6],[646,6]]},"26":{"position":[[805,6]]},"28":{"position":[[148,8]]},"32":{"position":[[581,5]]},"38":{"position":[[38,8]]},"64":{"position":[[433,8]]},"115":{"position":[[427,6]]},"145":{"position":[[916,8]]},"174":{"position":[[737,7]]},"186":{"position":[[347,5],[360,5],[661,5]]},"198":{"position":[[453,8],[795,8],[1408,5]]},"222":{"position":[[94,8]]},"238":{"position":[[381,8]]},"246":{"position":[[577,6]]},"250":{"position":[[77,8]]},"252":{"position":[[182,8]]},"282":{"position":[[130,6]]},"284":{"position":[[1478,6]]},"292":{"position":[[217,6]]},"294":{"position":[[218,6]]},"298":{"position":[[77,6],[294,6]]},"314":{"position":[[244,6]]},"318":{"position":[[198,5]]},"326":{"position":[[828,6]]},"348":{"position":[[1520,8],[1657,7]]},"354":{"position":[[107,6]]},"376":{"position":[[16,6]]},"380":{"position":[[108,6]]},"394":{"position":[[135,8]]},"419":{"position":[[169,7],[356,5],[499,6]]},"421":{"position":[[67,6],[747,8]]},"461":{"position":[[49,6]]},"469":{"position":[[58,6]]},"489":{"position":[[131,8]]},"495":{"position":[[165,8]]},"509":{"position":[[81,8]]},"526":{"position":[[750,8]]},"528":{"position":[[643,8]]},"547":{"position":[[914,7]]},"557":{"position":[[265,7],[671,5]]},"567":{"position":[[54,6]]},"621":{"position":[[146,6]]},"645":{"position":[[587,5]]}}}],["along",{"_index":688,"t":{"84":{"position":[[1822,5]]},"168":{"position":[[51,5]]},"388":{"position":[[593,5]]}}}],["alongsid",{"_index":144,"t":{"8":{"position":[[1432,9]]},"44":{"position":[[331,9]]},"90":{"position":[[176,9]]},"591":{"position":[[874,9]]}}}],["alreadi",{"_index":1968,"t":{"413":{"position":[[835,7]]},"445":{"position":[[1253,7]]},"535":{"position":[[176,7]]},"567":{"position":[[219,7]]}}}],["altern",{"_index":468,"t":{"48":{"position":[[810,14]]},"376":{"position":[[161,11]]},"449":{"position":[[1724,12]]},"465":{"position":[[170,11]]}}}],["although",{"_index":1740,"t":{"348":{"position":[[1083,8]]},"575":{"position":[[798,8]]}}}],["altruist",{"_index":2483,"t":{"587":{"position":[[891,15]]}}}],["alway",{"_index":588,"t":{"74":{"position":[[338,6]]},"157":{"position":[[738,6]]},"159":{"position":[[752,6]]},"411":{"position":[[1281,6]]},"433":{"position":[[662,6]]}}}],["amazon",{"_index":1458,"t":{"268":{"position":[[927,6]]}}}],["ambient",{"_index":1675,"t":{"326":{"position":[[1037,7]]}}}],["amend",{"_index":2589,"t":{"619":{"position":[[1347,7]]}}}],["america",{"_index":2147,"t":{"447":{"position":[[548,7],[582,7]]},"449":{"position":[[2684,7],[2702,7]]}}}],["amic",{"_index":2634,"t":{"633":{"position":[[755,8]]}}}],["amongst",{"_index":1977,"t":{"413":{"position":[[1687,7]]}}}],["amount",{"_index":1211,"t":{"192":{"position":[[409,6],[500,6]]},"421":{"position":[[190,6],[285,6],[468,6]]},"427":{"position":[[388,6]]},"443":{"position":[[117,6]]},"445":{"position":[[557,7]]},"563":{"position":[[651,6]]},"565":{"position":[[899,6]]},"567":{"position":[[331,6],[710,6]]},"591":{"position":[[796,6],[1011,7]]},"597":{"position":[[246,6]]},"601":{"position":[[927,6]]}}}],["analysi",{"_index":1950,"t":{"413":{"position":[[193,9]]},"445":{"position":[[1219,8]]},"523":{"position":[[59,8]]}}}],["analyz",{"_index":1903,"t":{"411":{"position":[[53,9]]},"611":{"position":[[13,7],[89,7],[245,7]]}}}],["and/or",{"_index":1165,"t":{"178":{"position":[[1522,6]]}}}],["announc",{"_index":1105,"t":{"174":{"position":[[677,8]]},"282":{"position":[[157,9]]},"296":{"position":[[75,8]]}}}],["anonym",{"_index":1332,"t":{"228":{"position":[[512,9]]},"250":{"position":[[187,10],[524,9],[582,9]]},"252":{"position":[[19,9]]},"254":{"position":[[597,9]]},"310":{"position":[[506,10]]},"330":{"position":[[205,10]]},"332":{"position":[[0,9],[90,10],[227,9]]},"338":{"position":[[102,9]]},"370":{"position":[[129,9],[251,10]]},"419":{"position":[[219,9]]},"499":{"position":[[145,10]]}}}],["anoth",{"_index":572,"t":{"70":{"position":[[14,7]]},"113":{"position":[[1556,7]]},"388":{"position":[[72,7]]},"411":{"position":[[171,7]]},"435":{"position":[[509,7]]},"449":{"position":[[1516,7]]},"563":{"position":[[796,7]]}}}],["anyon",{"_index":378,"t":{"36":{"position":[[53,6]]},"298":{"position":[[301,6]]},"445":{"position":[[803,6],[864,6]]}}}],["anyth",{"_index":383,"t":{"36":{"position":[[316,9]]},"228":{"position":[[954,9]]},"264":{"position":[[1246,9]]},"276":{"position":[[293,9]]}}}],["api",{"_index":394,"t":{"40":{"position":[[31,3],[40,3],[133,3]]},"42":{"position":[[1869,3]]},"95":{"position":[[61,4],[124,3],[197,4]]},"103":{"position":[[188,4]]},"186":{"position":[[258,3],[326,4],[435,3]]},"200":{"position":[[235,4]]},"210":{"position":[[573,3],[1726,4]]},"228":{"position":[[32,3]]},"264":{"position":[[1159,3]]},"274":{"position":[[60,4]]},"276":{"position":[[103,4]]},"290":{"position":[[22,3],[89,4],[158,3],[259,3],[375,3],[502,3],[621,3],[704,3],[1025,3],[1190,3]]},"304":{"position":[[778,3]]},"352":{"position":[[160,4]]},"364":{"position":[[14,4]]},"526":{"position":[[589,3],[739,3]]},"528":{"position":[[482,3],[632,3]]},"645":{"position":[[98,3],[204,5]]}}}],["app",{"_index":69,"t":{"6":{"position":[[356,3]]},"8":{"position":[[723,3],[761,3]]},"32":{"position":[[71,4]]},"40":{"position":[[160,3],[282,3],[311,4]]},"72":{"position":[[130,3]]},"74":{"position":[[98,3],[207,3],[267,3]]},"76":{"position":[[78,3]]},"82":{"position":[[66,4],[527,4],[729,5]]},"84":{"position":[[349,5],[1691,3]]},"86":{"position":[[261,5]]},"88":{"position":[[252,5]]},"90":{"position":[[299,5]]},"254":{"position":[[252,3]]},"364":{"position":[[591,5]]},"411":{"position":[[187,3],[369,4],[406,3],[504,3]]},"417":{"position":[[1726,4]]}}}],["app%2f2%2fchatroom",{"_index":1337,"t":{"228":{"position":[[786,18]]}}}],["app.css",{"_index":655,"t":{"84":{"position":[[328,11],[1899,7]]}}}],["app.jsx",{"_index":639,"t":{"82":{"position":[[655,7]]},"84":{"position":[[88,7]]}}}],["app/0/a/proto",{"_index":1420,"t":{"254":{"position":[[327,14]]}}}],["app/1/default/proto",{"_index":1758,"t":{"362":{"position":[[601,21]]},"364":{"position":[[756,21]]}}}],["app/1/notifications/proto",{"_index":206,"t":{"14":{"position":[[922,28]]},"360":{"position":[[137,27],[311,27]]}}}],["app/2/chatroom",{"_index":1333,"t":{"228":{"position":[[562,14]]}}}],["appear",{"_index":561,"t":{"66":{"position":[[445,8]]}}}],["appli",{"_index":531,"t":{"64":{"position":[[468,5]]},"107":{"position":[[280,7]]},"198":{"position":[[867,7],[932,7],[1251,5]]},"348":{"position":[[393,7]]},"411":{"position":[[1874,8],[3426,8]]},"423":{"position":[[227,7]]},"429":{"position":[[309,6]]},"449":{"position":[[147,5]]},"565":{"position":[[1717,7]]},"617":{"position":[[656,5]]},"625":{"position":[[587,5]]}}}],["applic",{"_index":25,"t":{"2":{"position":[[346,13]]},"6":{"position":[[51,11],[276,12]]},"8":{"position":[[87,12],[677,11],[997,11],[1086,11],[1345,11]]},"14":{"position":[[709,13]]},"20":{"position":[[32,11],[1132,12]]},"26":{"position":[[364,11]]},"28":{"position":[[134,13]]},"30":{"position":[[166,13],[219,12]]},"42":{"position":[[966,12],[1189,12],[1257,13],[1698,12],[1885,12]]},"78":{"position":[[241,12]]},"80":{"position":[[88,12]]},"82":{"position":[[144,11]]},"84":{"position":[[1837,11]]},"86":{"position":[[24,12]]},"88":{"position":[[27,12]]},"90":{"position":[[131,11],[1438,11]]},"92":{"position":[[103,12]]},"101":{"position":[[176,11],[474,13]]},"105":{"position":[[126,13]]},"115":{"position":[[243,11]]},"117":{"position":[[108,12],[403,12]]},"131":{"position":[[105,12]]},"133":{"position":[[129,12]]},"135":{"position":[[1283,12]]},"157":{"position":[[564,11]]},"159":{"position":[[679,11]]},"246":{"position":[[51,13],[113,11],[177,11]]},"252":{"position":[[99,11],[319,12]]},"254":{"position":[[8,11],[730,11]]},"304":{"position":[[612,12],[1012,11]]},"306":{"position":[[5,12]]},"342":{"position":[[0,12]]},"348":{"position":[[28,11]]},"350":{"position":[[52,11]]},"364":{"position":[[75,11],[405,11],[574,12]]},"370":{"position":[[74,12],[175,12]]},"382":{"position":[[311,11]]},"417":{"position":[[894,12]]},"427":{"position":[[211,10]]},"433":{"position":[[694,10]]},"449":{"position":[[2542,13]]},"457":{"position":[[96,12]]},"469":{"position":[[113,12]]},"483":{"position":[[49,11],[144,12]]},"507":{"position":[[134,13]]},"513":{"position":[[184,11]]},"515":{"position":[[123,11]]},"526":{"position":[[759,12]]},"528":{"position":[[652,12]]},"569":{"position":[[1138,12]]},"617":{"position":[[697,10],[959,10]]},"625":{"position":[[628,10]]},"633":{"position":[[2017,10]]},"637":{"position":[[209,13]]},"643":{"position":[[435,12]]},"647":{"position":[[17,11]]}}}],["application'",{"_index":241,"t":{"22":{"position":[[12,13]]},"42":{"position":[[218,13],[368,13]]}}}],["application/json",{"_index":1329,"t":{"228":{"position":[[432,17],[863,17]]},"274":{"position":[[228,17]]}}}],["applicationinfo",{"_index":1759,"t":{"364":{"position":[[38,15],[312,15]]}}}],["appoint",{"_index":2671,"t":{"641":{"position":[[293,7]]}}}],["appreci",{"_index":590,"t":{"76":{"position":[[15,10]]},"411":{"position":[[2347,11]]}}}],["approach",{"_index":126,"t":{"8":{"position":[[1029,8]]},"198":{"position":[[832,9]]},"254":{"position":[[347,8]]},"298":{"position":[[166,8]]},"370":{"position":[[21,9]]},"411":{"position":[[293,9]]},"423":{"position":[[98,8]]},"431":{"position":[[13,9]]},"445":{"position":[[514,9],[672,10]]},"449":{"position":[[789,9]]},"571":{"position":[[277,8]]},"575":{"position":[[821,10]]},"579":{"position":[[56,10]]}}}],["appropri",{"_index":1428,"t":{"258":{"position":[[52,11]]},"591":{"position":[[784,11]]},"617":{"position":[[806,11]]}}}],["approv",{"_index":608,"t":{"76":{"position":[[516,9]]}}}],["apt",{"_index":897,"t":{"121":{"position":[[197,3]]}}}],["arbitr",{"_index":2622,"t":{"631":{"position":[[102,12]]},"633":{"position":[[260,11],[427,11],[549,11],[1215,11],[1263,11],[1339,11],[1447,8],[1499,11],[1656,11],[1781,11],[1860,12],[1910,10],[1986,12],[2264,11]]}}}],["arch",{"_index":894,"t":{"121":{"position":[[164,4]]}}}],["architectur",{"_index":1780,"t":{"372":{"position":[[33,12]]},"445":{"position":[[733,14],[784,12]]},"563":{"position":[[128,13]]}}}],["archiv",{"_index":1837,"t":{"399":{"position":[[48,9],[229,7]]},"411":{"position":[[754,7],[1757,7]]},"413":{"position":[[473,8]]}}}],["area",{"_index":2670,"t":{"641":{"position":[[240,4]]}}}],["arg",{"_index":1433,"t":{"264":{"position":[[66,8],[189,6]]}}}],["arguabl",{"_index":2508,"t":{"597":{"position":[[1120,8]]}}}],["argument",{"_index":1069,"t":{"170":{"position":[[236,8]]},"174":{"position":[[622,8]]},"176":{"position":[[205,8]]},"178":{"position":[[1323,8],[1467,8],[1580,8],[1774,8]]},"190":{"position":[[238,8]]},"192":{"position":[[259,8]]},"264":{"position":[[211,9]]}}}],["aris",{"_index":2610,"t":{"625":{"position":[[251,7]]},"627":{"position":[[130,7]]},"633":{"position":[[690,7]]}}}],["aros",{"_index":2650,"t":{"633":{"position":[[2110,5]]}}}],["around",{"_index":2363,"t":{"565":{"position":[[871,6]]},"647":{"position":[[117,6]]}}}],["array",{"_index":77,"t":{"6":{"position":[[432,7]]},"54":{"position":[[21,5],[271,5]]}}}],["arriv",{"_index":1663,"t":{"324":{"position":[[898,7]]},"569":{"position":[[1216,8]]}}}],["articl",{"_index":1718,"t":{"340":{"position":[[605,7]]}}}],["as::volume/period@waku",{"_index":668,"t":{"84":{"position":[[1169,8]]}}}],["hackathon",{"_index":407,"t":{"40":{"position":[[419,10]]}}}],["hackenproof",{"_index":2700,"t":{"649":{"position":[[238,11]]}}}],["hammer",{"_index":1970,"t":{"413":{"position":[[869,6],[1455,6],[1562,6],[1833,6]]}}}],["hand",{"_index":1905,"t":{"411":{"position":[[157,5]]},"421":{"position":[[587,4]]},"553":{"position":[[13,5]]}}}],["handl",{"_index":136,"t":{"8":{"position":[[1310,6]]},"26":{"position":[[616,6]]},"32":{"position":[[268,6]]},"58":{"position":[[124,6]]},"68":{"position":[[74,6]]},"117":{"position":[[196,8]]},"131":{"position":[[70,6]]},"135":{"position":[[307,6],[1248,6]]}}}],["handleinputchang",{"_index":660,"t":{"84":{"position":[[522,17]]}}}],["happen",{"_index":282,"t":{"26":{"position":[[633,7]]},"111":{"position":[[1296,6]]},"135":{"position":[[324,7]]},"178":{"position":[[1264,6]]},"411":{"position":[[3400,7]]},"639":{"position":[[39,6]]}}}],["hard",{"_index":1613,"t":{"308":{"position":[[96,5]]}}}],["hardcod",{"_index":814,"t":{"115":{"position":[[325,9]]}}}],["harm",{"_index":2600,"t":{"623":{"position":[[423,8]]}}}],["harmless",{"_index":2617,"t":{"627":{"position":[[35,8]]}}}],["harry'",{"_index":1379,"t":{"242":{"position":[[456,7],[531,7]]}}}],["hash",{"_index":1357,"t":{"240":{"position":[[109,4]]},"250":{"position":[[460,6]]},"254":{"position":[[186,7],[669,4],[802,4]]},"300":{"position":[[139,4],[291,6]]},"459":{"position":[[57,4]]},"491":{"position":[[95,4]]},"597":{"position":[[83,4]]}}}],["have",{"_index":1948,"t":{"413":{"position":[[49,6]]},"579":{"position":[[299,6]]}}}],["haven't",{"_index":2129,"t":{"445":{"position":[[1442,7]]}}}],["hd",{"_index":2178,"t":{"447":{"position":[[824,2],[839,2]]},"449":{"position":[[2600,2]]}}}],["head",{"_index":616,"t":{"76":{"position":[[670,4]]},"286":{"position":[[794,4]]},"635":{"position":[[268,8]]}}}],["header",{"_index":1327,"t":{"228":{"position":[[410,6],[847,6]]},"274":{"position":[[212,6]]},"276":{"position":[[176,6]]}}}],["health",{"_index":1469,"t":{"276":{"position":[[18,6],[68,6]]}}}],["healthi",{"_index":1473,"t":{"276":{"position":[[212,7]]},"535":{"position":[[213,7]]}}}],["heard",{"_index":2629,"t":{"633":{"position":[[495,5]]}}}],["heavi",{"_index":1418,"t":{"254":{"position":[[138,5]]}}}],["height",{"_index":694,"t":{"84":{"position":[[2038,7]]}}}],["hel1.misc.wakudev",{"_index":1971,"t":{"413":{"position":[[1090,18]]}}}],["hel1.misc.wakudev.status.im",{"_index":1917,"t":{"411":{"position":[[960,29],[2032,29]]}}}],["held",{"_index":2602,"t":{"625":{"position":[[15,4]]},"633":{"position":[[1519,4]]},"635":{"position":[[532,4]]}}}],["hello",{"_index":263,"t":{"24":{"position":[[258,7]]},"228":{"position":[[485,6]]}}}],["help",{"_index":173,"t":{"10":{"position":[[335,4]]},"36":{"position":[[349,4]]},"58":{"position":[[59,8],[150,4]]},"115":{"position":[[16,5]]},"127":{"position":[[174,4]]},"228":{"position":[[987,4]]},"238":{"position":[[538,5],[564,4]]},"246":{"position":[[280,5]]},"264":{"position":[[836,4],[1279,4]]},"276":{"position":[[326,4]]},"314":{"position":[[11,4]]},"376":{"position":[[285,5]]},"401":{"position":[[276,4]]},"567":{"position":[[268,5]]},"605":{"position":[[131,5]]},"637":{"position":[[145,4]]},"639":{"position":[[407,4]]},"645":{"position":[[369,4],[788,4]]},"649":{"position":[[253,4]]}}}],["helper",{"_index":913,"t":{"121":{"position":[[479,6],[496,7]]}}}],["henc",{"_index":2190,"t":{"449":{"position":[[1314,5]]},"637":{"position":[[83,6]]}}}],["here",{"_index":514,"t":{"62":{"position":[[94,4]]},"105":{"position":[[179,5]]},"164":{"position":[[376,5]]},"168":{"position":[[0,4]]},"246":{"position":[[0,4]]},"248":{"position":[[85,4]]},"324":{"position":[[0,4]]},"370":{"position":[[288,4]]},"388":{"position":[[250,5],[727,5],[872,5]]},"447":{"position":[[155,4]]},"569":{"position":[[340,5],[1031,5]]}}}],["herein",{"_index":2566,"t":{"617":{"position":[[994,6],[1257,6],[1493,7],[1527,6]]},"619":{"position":[[825,6],[1004,7]]},"633":{"position":[[1422,6]]}}}],["hesit",{"_index":166,"t":{"10":{"position":[[223,8]]}}}],["hex",{"_index":1088,"t":{"174":{"position":[[247,3]]},"178":{"position":[[516,3],[594,3]]},"286":{"position":[[271,3],[359,3],[385,3],[553,3]]},"479":{"position":[[35,3]]}}}],["hexadecim",{"_index":854,"t":{"117":{"position":[[372,11],[666,11],[806,11]]}}}],["hextobyt",{"_index":856,"t":{"117":{"position":[[474,10]]}}}],["hextobytes(privatekeyhex",{"_index":866,"t":{"117":{"position":[[910,26]]}}}],["hextobytes(symmetrickeyhex",{"_index":864,"t":{"117":{"position":[[854,28]]}}}],["hide",{"_index":1406,"t":{"250":{"position":[[624,4]]},"521":{"position":[[240,6]]}}}],["high",{"_index":1002,"t":{"145":{"position":[[1071,4]]},"252":{"position":[[345,4]]},"419":{"position":[[386,4]]},"551":{"position":[[461,4]]},"565":{"position":[[59,4]]},"569":{"position":[[711,4]]},"575":{"position":[[458,4]]},"619":{"position":[[500,4],[1027,4]]}}}],["higher",{"_index":1874,"t":{"407":{"position":[[967,6]]},"409":{"position":[[644,6]]},"417":{"position":[[686,6]]},"565":{"position":[[227,6],[272,6]]}}}],["highli",{"_index":171,"t":{"10":{"position":[[312,6]]},"246":{"position":[[838,6]]},"266":{"position":[[139,6]]}}}],["highlight",{"_index":2667,"t":{"639":{"position":[[456,11]]},"643":{"position":[[233,9]]},"647":{"position":[[252,9]]}}}],["histor",{"_index":103,"t":{"8":{"position":[[357,10]]},"42":{"position":[[537,10],[661,10]]},"147":{"position":[[87,10]]},"155":{"position":[[121,10]]},"166":{"position":[[791,10]]},"238":{"position":[[412,10]]},"244":{"position":[[192,10]]},"284":{"position":[[1513,10],[1708,10]]},"322":{"position":[[195,10]]},"340":{"position":[[456,10]]},"557":{"position":[[587,10]]},"571":{"position":[[423,10]]},"589":{"position":[[44,8]]}}}],["histori",{"_index":1048,"t":{"164":{"position":[[1025,8]]},"399":{"position":[[154,7]]},"591":{"position":[[755,8]]},"593":{"position":[[48,8]]},"605":{"position":[[229,8]]}}}],["historyqueri",{"_index":2484,"t":{"589":{"position":[[104,12]]},"591":{"position":[[847,12]]}}}],["historyrespons",{"_index":2485,"t":{"589":{"position":[[151,15]]},"591":{"position":[[1038,15]]}}}],["hold",{"_index":2616,"t":{"627":{"position":[[27,4]]}}}],["home/.cargo/env",{"_index":907,"t":{"121":{"position":[[313,18]]}}}],["homebrew",{"_index":895,"t":{"121":{"position":[[181,10]]}}}],["hongkong",{"_index":1505,"t":{"284":{"position":[[1779,8]]},"292":{"position":[[570,8]]},"294":{"position":[[498,8]]}}}],["honour",{"_index":2517,"t":{"601":{"position":[[199,7]]}}}],["hood",{"_index":1315,"t":{"224":{"position":[[172,5]]},"340":{"position":[[649,5]]}}}],["hop",{"_index":1214,"t":{"192":{"position":[[581,3],[628,4]]},"553":{"position":[[518,5]]},"563":{"position":[[614,4],[661,4]]},"565":{"position":[[175,4],[242,5],[473,4],[608,4],[644,3],[909,4],[1148,4],[1308,4],[1352,4],[1876,4]]},"569":{"position":[[1368,3],[1953,3]]}}}],["hopr",{"_index":2505,"t":{"597":{"position":[[688,6]]}}}],["host",{"_index":458,"t":{"48":{"position":[[389,4]]},"139":{"position":[[347,4]]},"145":{"position":[[521,4]]},"186":{"position":[[472,4]]},"264":{"position":[[1122,4]]},"457":{"position":[[56,7]]}}}],["host]:[websocket",{"_index":556,"t":{"66":{"position":[[142,16]]}}}],["hour",{"_index":1252,"t":{"198":{"position":[[1368,5]]},"284":{"position":[[698,7],[1268,7]]},"292":{"position":[[509,7],[777,7]]},"591":{"position":[[747,4]]},"593":{"position":[[40,4]]}}}],["http",{"_index":527,"t":{"64":{"position":[[350,8],[612,5]]},"121":{"position":[[256,8],[403,8],[551,8]]},"186":{"position":[[59,4],[136,4],[190,4],[315,4],[520,4]]},"188":{"position":[[198,4]]},"216":{"position":[[65,5]]},"344":{"position":[[17,5]]}}}],["http://127.0.0.1:8645/debug/v1/info",{"_index":1324,"t":{"228":{"position":[[184,37]]},"274":{"position":[[170,37]]}}}],["http://127.0.0.1:8645/debug/v1/vers",{"_index":1323,"t":{"228":{"position":[[110,40]]}}}],["http://127.0.0.1:8645/health",{"_index":1471,"t":{"276":{"position":[[141,30]]}}}],["http://127.0.0.1:8645/relay/v1/auto/messag",{"_index":1326,"t":{"228":{"position":[[359,46]]}}}],["http://127.0.0.1:8645/store/v1/messages?contenttopics=%2fmi",{"_index":1336,"t":{"228":{"position":[[725,60]]}}}],["http://localhost:3000/d/yns_4vfvk/nwaku",{"_index":1319,"t":{"226":{"position":[[6,39]]}}}],["https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.j",{"_index":83,"t":{"6":{"position":[[735,70]]}}}],["https://creativecommons.org/licenses/by/4.0",{"_index":2597,"t":{"621":{"position":[[390,45]]}}}],["https://examples.waku.org",{"_index":402,"t":{"40":{"position":[[336,26]]}}}],["https://examples.waku.org/rln",{"_index":1807,"t":{"386":{"position":[[391,29]]}}}],["https://github.com/spacejam/sl",{"_index":1154,"t":{"178":{"position":[[1091,34]]}}}],["https://github.com/vacp2p/research/issues/148",{"_index":1705,"t":{"334":{"position":[[476,46]]},"388":{"position":[[256,46]]}}}],["https://github.com/waku",{"_index":617,"t":{"76":{"position":[[678,23]]},"105":{"position":[[185,23]]},"123":{"position":[[129,23]]},"218":{"position":[[10,23]]},"262":{"position":[[99,23]]},"388":{"position":[[878,23]]},"399":{"position":[[459,23]]},"403":{"position":[[0,23],[42,23]]},"405":{"position":[[122,23]]},"413":{"position":[[1141,23],[1264,23]]},"443":{"position":[[172,23]]},"445":{"position":[[1080,23],[1169,23],[1321,23]]},"449":{"position":[[181,23],[2830,23]]},"567":{"position":[[962,23]]},"595":{"position":[[21,23],[91,23],[164,23],[235,23]]},"599":{"position":[[31,23],[137,23],[225,23],[321,23]]},"603":{"position":[[70,23],[141,23]]},"607":{"position":[[52,23],[145,23]]},"611":{"position":[[42,23],[198,23],[362,23],[504,23]]}}}],["https://ideas.waku.org",{"_index":375,"t":{"32":{"position":[[1296,23]]}}}],["https://sh.rustup.r",{"_index":905,"t":{"121":{"position":[[280,20],[427,20],[575,20]]}}}],["https://unpkg.com/@waku/sdk@latest/bundle/index.j",{"_index":44,"t":{"4":{"position":[[227,53]]}}}],["https://vac.dev/build",{"_index":1820,"t":{"388":{"position":[[733,24]]}}}],["hub",{"_index":1429,"t":{"260":{"position":[[52,3]]}}}],["huge",{"_index":2421,"t":{"569":{"position":[[2060,4]]}}}],["hundr",{"_index":2613,"t":{"625":{"position":[[537,7]]}}}],["h|m|s|m",{"_index":1236,"t":{"198":{"position":[[529,8]]}}}],["i.",{"_index":1904,"t":{"411":{"position":[[63,4]]},"601":{"position":[[805,5]]}}}],["i13n",{"_index":2426,"t":{"571":{"position":[[176,5],[293,5],[502,5]]},"579":{"position":[[346,4]]},"583":{"position":[[93,4]]},"591":{"position":[[280,4],[1165,4]]}}}],["id",{"_index":1081,"t":{"174":{"position":[[39,2],[52,2],[112,2]]},"178":{"position":[[474,2],[537,2]]},"254":{"position":[[233,3],[628,3]]},"413":{"position":[[702,3]]}}}],["id'",{"_index":1425,"t":{"254":{"position":[[807,4]]}}}],["id=\"messag",{"_index":680,"t":{"84":{"position":[[1479,11]]}}}],["id=1",{"_index":1447,"t":{"264":{"position":[[902,5]]}}}],["idea",{"_index":372,"t":{"32":{"position":[[1230,5]]},"561":{"position":[[537,4]]},"569":{"position":[[593,4],[1653,4]]}}}],["ideal",{"_index":2480,"t":{"587":{"position":[[329,7]]}}}],["ident",{"_index":1141,"t":{"178":{"position":[[491,8],[565,8]]},"330":{"position":[[116,11]]},"521":{"position":[[231,8]]},"559":{"position":[[99,9]]},"597":{"position":[[838,11]]},"601":{"position":[[594,10]]}}}],["identif",{"_index":1689,"t":{"330":{"position":[[311,14]]}}}],["identifi",{"_index":1083,"t":{"174":{"position":[[185,10]]},"250":{"position":[[311,12]]},"254":{"position":[[203,10]]},"330":{"position":[[77,11]]},"332":{"position":[[161,12]]},"338":{"position":[[190,8],[344,12]]},"348":{"position":[[931,12]]},"427":{"position":[[638,11]]},"463":{"position":[[68,8]]},"491":{"position":[[21,10]]},"497":{"position":[[46,10]]},"635":{"position":[[277,11]]},"643":{"position":[[172,8]]}}}],["idl",{"_index":1162,"t":{"178":{"position":[[1387,4]]}}}],["ii",{"_index":1981,"t":{"415":{"position":[[85,3]]},"417":{"position":[[582,3]]},"445":{"position":[[1130,3],[1574,3]]},"561":{"position":[[258,3]]},"563":{"position":[[926,3]]},"633":{"position":[[965,4]]}}}],["illustr",{"_index":1659,"t":{"324":{"position":[[18,12]]}}}],["imag",{"_index":435,"t":{"42":{"position":[[2465,6],[2550,6]]},"232":{"position":[[295,5]]},"260":{"position":[[17,6],[144,6]]},"262":{"position":[[30,5],[157,5],[175,5]]},"264":{"position":[[58,7],[116,5],[129,5]]},"268":{"position":[[857,6]]}}}],["immedi",{"_index":1603,"t":{"304":{"position":[[1075,12]]},"386":{"position":[[203,9]]},"439":{"position":[[185,11]]},"629":{"position":[[217,11]]}}}],["impact",{"_index":1841,"t":{"399":{"position":[[262,6],[343,7]]},"445":{"position":[[1235,6]]},"549":{"position":[[356,6]]},"569":{"position":[[2065,6]]},"599":{"position":[[285,6]]}}}],["implement",{"_index":15,"t":{"2":{"position":[[205,14]]},"32":{"position":[[707,9]]},"38":{"position":[[8,11]]},"97":{"position":[[137,9]]},"384":{"position":[[81,15]]},"386":{"position":[[354,14]]},"431":{"position":[[67,11]]},"477":{"position":[[34,10]]},"517":{"position":[[56,12]]},"523":{"position":[[187,15]]},"555":{"position":[[50,11],[105,11],[165,11]]}}}],["impli",{"_index":2335,"t":{"557":{"position":[[10,7]]},"565":{"position":[[281,7]]},"617":{"position":[[163,8],[1385,7]]},"623":{"position":[[246,5]]}}}],["implic",{"_index":1397,"t":{"248":{"position":[[71,13]]},"547":{"position":[[106,12],[961,12]]}}}],["implicit",{"_index":2463,"t":{"581":{"position":[[287,9]]}}}],["import",{"_index":42,"t":{"4":{"position":[[205,6]]},"6":{"position":[[713,6],[728,6]]},"14":{"position":[[94,6]]},"18":{"position":[[272,6]]},"20":{"position":[[86,6]]},"22":{"position":[[83,6]]},"46":{"position":[[135,6]]},"48":{"position":[[147,6]]},"50":{"position":[[273,6],[318,6],[813,6]]},"52":{"position":[[86,6],[131,6],[178,6]]},"54":{"position":[[123,6]]},"64":{"position":[[181,9]]},"82":{"position":[[182,6],[237,6],[681,6]]},"84":{"position":[[144,6],[189,6],[228,6],[286,6],[321,6]]},"86":{"position":[[208,6]]},"88":{"position":[[194,6]]},"90":{"position":[[223,6]]},"111":{"position":[[162,6],[415,6],[882,6]]},"113":{"position":[[162,6],[570,6],[1051,6]]},"115":{"position":[[563,6],[640,6],[734,6],[2228,6],[2291,6]]},"117":{"position":[[453,6]]},"149":{"position":[[94,6]]},"151":{"position":[[85,6]]},"153":{"position":[[92,6]]},"162":{"position":[[151,6]]},"164":{"position":[[180,6]]},"330":{"position":[[143,9]]},"356":{"position":[[131,6],[303,6]]},"358":{"position":[[7,6],[149,6]]},"360":{"position":[[7,6],[177,6]]},"362":{"position":[[133,6],[291,6],[465,6]]},"364":{"position":[[465,6],[622,6]]},"368":{"position":[[572,6],[686,6]]},"417":{"position":[[444,10]]},"565":{"position":[[139,9],[1614,9]]},"569":{"position":[[346,9]]},"597":{"position":[[861,9]]}}}],["impos",{"_index":522,"t":{"64":{"position":[[213,6]]},"310":{"position":[[517,7]]},"348":{"position":[[902,7]]},"374":{"position":[[245,7]]},"505":{"position":[[164,8]]}}}],["imposs",{"_index":2021,"t":{"419":{"position":[[426,11]]}}}],["improv",{"_index":174,"t":{"10":{"position":[[340,7]]},"240":{"position":[[544,9]]},"254":{"position":[[510,7]]},"314":{"position":[[874,8]]},"445":{"position":[[690,11]]},"526":{"position":[[563,13]]},"528":{"position":[[456,13]]},"645":{"position":[[196,7]]}}}],["in/out",{"_index":2012,"t":{"417":{"position":[[1679,6]]}}}],["incent",{"_index":1819,"t":{"388":{"position":[[682,9]]},"587":{"position":[[704,10],[734,10]]}}}],["incentiv",{"_index":2447,"t":{"577":{"position":[[13,12]]}}}],["incentivis",{"_index":140,"t":{"8":{"position":[[1372,15]]},"44":{"position":[[271,15]]},"342":{"position":[[383,15]]},"386":{"position":[[20,12]]},"388":{"position":[[396,13]]},"392":{"position":[[16,11]]},"571":{"position":[[146,15]]},"575":{"position":[[16,15]]},"587":{"position":[[80,12]]},"591":{"position":[[16,12]]},"609":{"position":[[67,12]]},"611":{"position":[[420,15]]}}}],["incid",{"_index":2697,"t":{"649":{"position":[[126,9]]}}}],["incident",{"_index":2607,"t":{"625":{"position":[[202,11]]}}}],["includ",{"_index":84,"t":{"6":{"position":[[814,7]]},"121":{"position":[[55,9]]},"135":{"position":[[689,8]]},"220":{"position":[[341,7]]},"266":{"position":[[404,8]]},"298":{"position":[[233,9],[591,9]]},"318":{"position":[[305,9]]},"328":{"position":[[360,7]]},"334":{"position":[[392,9]]},"340":{"position":[[223,8],[446,9]]},"382":{"position":[[84,8]]},"394":{"position":[[5,8]]},"457":{"position":[[131,9]]},"463":{"position":[[182,8]]},"475":{"position":[[171,7]]},"503":{"position":[[84,9]]},"515":{"position":[[68,9]]},"583":{"position":[[44,7]]},"613":{"position":[[181,9]]},"617":{"position":[[172,9]]},"619":{"position":[[243,7],[727,9],[1259,9]]},"621":{"position":[[233,9]]},"623":{"position":[[104,9]]},"627":{"position":[[103,9],[210,9]]},"633":{"position":[[74,8],[1873,9]]},"647":{"position":[[98,7]]}}}],["incom",{"_index":727,"t":{"88":{"position":[[129,8]]},"238":{"position":[[163,8]]},"244":{"position":[[141,8]]},"314":{"position":[[666,8]]},"526":{"position":[[455,8]]},"528":{"position":[[348,8]]},"531":{"position":[[157,8]]},"535":{"position":[[255,8]]}}}],["incorpor",{"_index":1641,"t":{"318":{"position":[[104,12]]},"633":{"position":[[1409,12]]}}}],["increas",{"_index":1217,"t":{"192":{"position":[[610,8]]},"252":{"position":[[8,8]]},"298":{"position":[[373,9]]},"551":{"position":[[118,9]]},"553":{"position":[[159,8],[211,8]]},"561":{"position":[[470,10]]},"569":{"position":[[926,10],[1580,9],[2170,8]]},"575":{"position":[[327,9]]}}}],["incur",{"_index":2682,"t":{"643":{"position":[[554,5]]}}}],["indemnifi",{"_index":2615,"t":{"627":{"position":[[10,9]]}}}],["independ",{"_index":2100,"t":{"437":{"position":[[110,11]]},"571":{"position":[[94,11]]}}}],["index",{"_index":672,"t":{"84":{"position":[[1246,6]]},"164":{"position":[[41,5],[793,5]]},"178":{"position":[[318,5],[328,5]]}}}],["indic",{"_index":646,"t":{"82":{"position":[[930,9]]},"133":{"position":[[277,9]]},"324":{"position":[[216,9]]},"380":{"position":[[177,10]]},"409":{"position":[[687,9]]},"411":{"position":[[3664,9]]},"427":{"position":[[418,9]]},"561":{"position":[[505,9]]},"569":{"position":[[225,8]]}}}],["individu",{"_index":2361,"t":{"565":{"position":[[542,10],[714,10],[2016,10]]}}}],["industri",{"_index":2578,"t":{"619":{"position":[[168,8]]}}}],["inf",{"_index":1259,"t":{"202":{"position":[[84,3]]},"206":{"position":[[93,3]]},"208":{"position":[[96,3]]}}}],["info",{"_index":189,"t":{"14":{"position":[[328,4]]},"20":{"position":[[1037,4]]},"22":{"position":[[363,4]]},"44":{"position":[[142,4]]},"66":{"position":[[311,5],[387,5]]},"84":{"position":[[1695,4]]},"90":{"position":[[1262,4]]},"107":{"position":[[170,4]]},"115":{"position":[[176,4]]},"119":{"position":[[239,4]]},"135":{"position":[[1014,4]]},"137":{"position":[[117,4]]},"141":{"position":[[673,4]]},"143":{"position":[[796,4]]},"145":{"position":[[837,4]]},"157":{"position":[[693,4]]},"159":{"position":[[717,4]]},"164":{"position":[[935,4]]},"166":{"position":[[542,4]]},"172":{"position":[[127,5]]},"200":{"position":[[0,4],[104,4],[209,4]]},"216":{"position":[[170,4]]},"228":{"position":[[163,4]]},"230":{"position":[[206,4]]},"234":{"position":[[433,4]]},"236":{"position":[[623,4]]},"250":{"position":[[467,4]]},"254":{"position":[[575,4]]},"258":{"position":[[115,4]]},"264":{"position":[[841,4],[1022,4]]},"266":{"position":[[466,4]]},"274":{"position":[[122,4],[562,4]]},"282":{"position":[[695,4]]},"292":{"position":[[697,4]]},"296":{"position":[[304,4]]},"310":{"position":[[231,4]]},"314":{"position":[[838,4]]},"346":{"position":[[169,4]]},"376":{"position":[[264,4]]},"378":{"position":[[234,4]]},"380":{"position":[[306,4]]}}}],["inform",{"_index":816,"t":{"115":{"position":[[366,11]]},"117":{"position":[[273,11]]},"204":{"position":[[39,11]]},"250":{"position":[[257,12],[324,11]]},"264":{"position":[[740,11]]},"274":{"position":[[91,11]]},"310":{"position":[[325,11]]},"324":{"position":[[875,9]]},"332":{"position":[[174,11]]},"338":{"position":[[357,11]]},"348":{"position":[[1568,11]]},"370":{"position":[[196,8]]},"423":{"position":[[78,6]]},"431":{"position":[[191,11]]},"435":{"position":[[937,11]]},"449":{"position":[[34,8]]},"463":{"position":[[210,11]]},"467":{"position":[[51,11]]},"481":{"position":[[33,11]]},"487":{"position":[[47,11]]},"569":{"position":[[986,11]]},"617":{"position":[[1076,13],[1245,11],[1505,11]]},"619":{"position":[[803,11],[982,11],[1246,12]]}}}],["infrastructur",{"_index":354,"t":{"32":{"position":[[808,15]]},"342":{"position":[[134,15],[301,14]]},"388":{"position":[[777,14]]},"392":{"position":[[153,14]]},"523":{"position":[[552,14]]}}}],["infring",{"_index":2555,"t":{"617":{"position":[[278,12]]}}}],["infura",{"_index":1729,"t":{"344":{"position":[[122,6],[146,6]]}}}],["init",{"_index":919,"t":{"121":{"position":[[645,4]]}}}],["initi",{"_index":1802,"t":{"384":{"position":[[73,7]]},"453":{"position":[[21,7]]},"555":{"position":[[8,7]]},"587":{"position":[[856,7]]},"639":{"position":[[17,7],[144,7]]}}}],["initialis",{"_index":580,"t":{"74":{"position":[[0,10],[191,10]]},"90":{"position":[[143,11]]},"326":{"position":[[5,12]]}}}],["inject",{"_index":2248,"t":{"526":{"position":[[204,9]]},"528":{"position":[[97,9]]},"531":{"position":[[102,9],[127,9]]},"533":{"position":[[252,9]]},"535":{"position":[[77,9],[333,9]]},"559":{"position":[[211,9]]},"605":{"position":[[200,9]]}}}],["innov",{"_index":1571,"t":{"298":{"position":[[155,10]]}}}],["input",{"_index":659,"t":{"84":{"position":[[502,5],[1460,6],[1491,6],[2339,5]]},"86":{"position":[[100,5]]}}}],["inputmessag",{"_index":656,"t":{"84":{"position":[[363,14],[471,12]]},"86":{"position":[[613,12]]}}}],["inputmessage.length",{"_index":721,"t":{"86":{"position":[[445,19]]}}}],["insecur",{"_index":524,"t":{"64":{"position":[[288,8]]},"68":{"position":[[57,8]]}}}],["insert",{"_index":1854,"t":{"407":{"position":[[8,6],[473,7],[1469,6]]},"413":{"position":[[106,6],[445,6],[1416,9],[1523,9],[1617,6],[1658,6],[1793,9]]},"607":{"position":[[129,9]]}}}],["inspir",{"_index":373,"t":{"32":{"position":[[1254,12]]},"583":{"position":[[169,8]]}}}],["instal",{"_index":33,"t":{"4":{"position":[[0,7],[81,7],[175,10]]},"6":{"position":[[501,7],[583,7],[680,10]]},"12":{"position":[[214,12]]},"22":{"position":[[396,12]]},"42":{"position":[[9,7],[142,12],[445,12],[1347,12]]},"50":{"position":[[47,7],[92,7]]},"74":{"position":[[244,9]]},"80":{"position":[[292,7],[399,7]]},"109":{"position":[[0,7],[122,7]]},"121":{"position":[[205,7],[341,7],[606,7]]},"258":{"position":[[17,9]]}}}],["instanc",{"_index":1951,"t":{"413":{"position":[[342,9]]},"579":{"position":[[92,9]]},"601":{"position":[[1018,9]]}}}],["instanceof",{"_index":955,"t":{"135":{"position":[[732,10]]}}}],["instead",{"_index":480,"t":{"48":{"position":[[1485,7]]},"119":{"position":[[230,8]]},"178":{"position":[[1543,7]]},"250":{"position":[[283,7]]},"296":{"position":[[453,8]]},"304":{"position":[[116,7]]},"330":{"position":[[89,7]]},"364":{"position":[[116,8],[180,8],[285,8]]},"366":{"position":[[51,8]]},"368":{"position":[[137,8],[325,7]]},"549":{"position":[[283,8]]},"555":{"position":[[240,8]]}}}],["institut",{"_index":2641,"t":{"633":{"position":[[1275,11]]},"649":{"position":[[50,9]]}}}],["instruct",{"_index":417,"t":{"42":{"position":[[1331,12],[2436,13]]},"258":{"position":[[64,12]]},"284":{"position":[[856,8]]},"302":{"position":[[122,12],[323,12]]},"346":{"position":[[59,12]]},"348":{"position":[[1771,12]]}}}],["instrument",{"_index":2377,"t":{"567":{"position":[[154,10]]}}}],["integ",{"_index":1234,"t":{"198":{"position":[[382,7],[493,7]]},"447":{"position":[[264,8]]}}}],["integr",{"_index":23,"t":{"2":{"position":[[306,9]]},"8":{"position":[[644,9]]},"28":{"position":[[164,9]]},"32":{"position":[[329,9]]},"38":{"position":[[53,9],[314,11]]},"42":{"position":[[1161,9],[1669,9]]},"78":{"position":[[210,9]]},"80":{"position":[[326,11]]},"90":{"position":[[1404,10]]},"109":{"position":[[34,11]]},"115":{"position":[[141,9]]},"314":{"position":[[825,12]]},"336":{"position":[[66,9]]},"507":{"position":[[44,9]]},"517":{"position":[[242,10]]},"521":{"position":[[192,10]]},"643":{"position":[[418,10]]}}}],["intellectu",{"_index":2556,"t":{"617":{"position":[[294,12]]}}}],["intend",{"_index":1825,"t":{"392":{"position":[[5,7]]},"423":{"position":[[66,8]]},"617":{"position":[[1042,8]]}}}],["intention",{"_index":1694,"t":{"334":{"position":[[104,13]]}}}],["inter",{"_index":2417,"t":{"569":{"position":[[1471,5]]}}}],["interact",{"_index":181,"t":{"14":{"position":[[62,8]]},"32":{"position":[[346,12],[520,12]]},"40":{"position":[[87,8]]},"66":{"position":[[56,13]]},"149":{"position":[[62,8]]},"210":{"position":[[478,8],[523,8]]},"212":{"position":[[180,8]]},"214":{"position":[[89,8]]},"228":{"position":[[53,11]]},"266":{"position":[[413,11]]},"274":{"position":[[8,8]]},"290":{"position":[[29,8]]},"304":{"position":[[747,12]]},"316":{"position":[[95,11]]},"324":{"position":[[35,11]]},"326":{"position":[[848,12]]},"344":{"position":[[182,8]]},"429":{"position":[[218,8]]},"485":{"position":[[94,11]]},"526":{"position":[[635,12]]},"528":{"position":[[528,12]]},"593":{"position":[[179,12]]},"637":{"position":[[348,11]]},"639":{"position":[[152,12],[291,12]]}}}],["interconnect",{"_index":2328,"t":{"555":{"position":[[372,14]]}}}],["interest",{"_index":1400,"t":{"250":{"position":[[120,10]]},"302":{"position":[[243,10]]},"427":{"position":[[684,8]]},"495":{"position":[[155,9]]},"497":{"position":[[74,8],[112,10]]},"563":{"position":[[531,10]]}}}],["interfac",{"_index":395,"t":{"40":{"position":[[44,9]]},"84":{"position":[[19,9],[1157,11],[1987,9]]},"88":{"position":[[171,10]]},"210":{"position":[[577,9]]}}}],["intern",{"_index":2593,"t":{"621":{"position":[[87,13]]},"633":{"position":[[1325,13],[1972,13]]}}}],["internal/priv",{"_index":1753,"t":{"352":{"position":[[178,16]]}}}],["internet",{"_index":1991,"t":{"417":{"position":[[541,8]]},"445":{"position":[[114,8]]},"475":{"position":[[97,8],[135,8]]}}}],["interoper",{"_index":59,"t":{"6":{"position":[[190,17]]},"42":{"position":[[314,17]]},"540":{"position":[[25,16]]}}}],["interpret",{"_index":2659,"t":{"635":{"position":[[423,14]]}}}],["introduc",{"_index":1651,"t":{"320":{"position":[[275,10]]},"419":{"position":[[151,11],[481,11]]},"571":{"position":[[447,9]]},"581":{"position":[[12,10],[391,10]]}}}],["introduct",{"_index":2022,"t":{"421":{"position":[[136,12]]}}}],["invalid",{"_index":566,"t":{"68":{"position":[[81,7],[188,10]]},"581":{"position":[[243,8]]},"635":{"position":[[537,7]]}}}],["invest",{"_index":1934,"t":{"411":{"position":[[3177,8]]}}}],["investig",{"_index":568,"t":{"68":{"position":[[230,11]]},"645":{"position":[[462,14],[610,14],[696,11],[802,14]]}}}],["invoc",{"_index":940,"t":{"125":{"position":[[54,10]]}}}],["involv",{"_index":1366,"t":{"240":{"position":[[593,8]]},"306":{"position":[[478,8]]},"348":{"position":[[236,8]]},"370":{"position":[[113,8]]},"542":{"position":[[87,8]]},"565":{"position":[[786,8]]},"575":{"position":[[766,8]]},"597":{"position":[[1045,9]]}}}],["io4qdxtotg86ppck2kvmevcxc2advzwrxxsvnzeaoa0jhshbm5qed69rqz1s1mweeqj3aoklo_7eu9iibcpmveklcqbgmlkgny0ixnly3ayntzrmaeddbhk1gx6y_zv5dvw5qb3dtsommvhtzo1wsorrf2lol2ddwrwgimohxdha3uyaw",{"_index":992,"t":{"143":{"position":[[618,177]]},"208":{"position":[[218,177],[441,177]]}}}],["ip",{"_index":459,"t":{"48":{"position":[[394,4],[1173,2]]},"139":{"position":[[352,4]]},"141":{"position":[[443,3],[669,3],[906,3]]},"145":{"position":[[526,4]]},"176":{"position":[[161,3]]},"190":{"position":[[224,3]]},"192":{"position":[[365,2],[389,2],[439,2],[481,2],[530,2]]},"250":{"position":[[99,2]]},"264":{"position":[[567,3],[632,3]]},"282":{"position":[[778,2]]},"296":{"position":[[103,2]]},"298":{"position":[[243,3]]},"300":{"position":[[513,2]]},"306":{"position":[[259,3]]},"427":{"position":[[534,2],[605,2],[712,2],[818,2]]}}}],["ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamqcsh9v81xoqtwgut3qwkzwbwy1tttqwpr3djhu2tswmn",{"_index":1268,"t":{"202":{"position":[[391,80]]}}}],["ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamubpqufqqje3jiqob5yoiubbya59nb4qqezeitnghea6w",{"_index":1464,"t":{"274":{"position":[[269,82]]}}}],["ip4/0.0.0.0/tcp/60002/ws/p2p/16uiu2hakzjwwgeaxfegnmkfpspc6vgbrqcdtlg5q3gmk2v4pqw7h",{"_index":466,"t":{"48":{"position":[[528,86],[931,86]]},"52":{"position":[[307,86]]}}}],["ip4/0.0.0.0/tcp/60003/ws/p2p/16uiu2hamfba7lgtwy5wvvikdmxvo3cklqkmvvtudu63fe8safeqj",{"_index":467,"t":{"48":{"position":[[615,86],[1018,86]]},"52":{"position":[[394,86]]}}}],["ip4/0.0.0.0/tcp/8000/ws/p2p/16uiu2hamqcsh9v81xoqtwgut3qwkzwbwy1tttqwpr3djhu2tswmn",{"_index":1269,"t":{"202":{"position":[[502,82]]}}}],["ip4/1.2.3.4/tcp/1234/p2p/16uiu2ham",{"_index":737,"t":{"90":{"position":[[1059,40]]},"151":{"position":[[495,40]]}}}],["ipf",{"_index":442,"t":{"42":{"position":[[2640,4]]},"348":{"position":[[970,5],[1036,4]]},"583":{"position":[[81,5]]}}}],["ipt",{"_index":2373,"t":{"565":{"position":[[2005,3]]}}}],["ipv4",{"_index":1130,"t":{"176":{"position":[[294,4]]},"282":{"position":[[18,4],[67,4]]}}}],["ish",{"_index":2302,"t":{"549":{"position":[[29,4],[92,4]]}}}],["isload",{"_index":641,"t":{"82":{"position":[[791,9],[918,11]]},"84":{"position":[[641,9]]}}}],["isn't",{"_index":420,"t":{"42":{"position":[[1737,5]]}}}],["issu",{"_index":168,"t":{"10":{"position":[[243,5]]},"36":{"position":[[264,6]]},"42":{"position":[[2103,6]]},"58":{"position":[[15,6]]},"64":{"position":[[673,6],[909,6]]},"70":{"position":[[322,5],[397,6]]},"135":{"position":[[1097,7]]},"228":{"position":[[902,6]]},"264":{"position":[[1194,6]]},"276":{"position":[[241,6]]},"413":{"position":[[37,6]]},"443":{"position":[[11,5]]},"445":{"position":[[1034,5],[1307,6],[1495,5]]},"547":{"position":[[137,5]]},"563":{"position":[[824,5]]},"601":{"position":[[549,7]]},"611":{"position":[[29,6]]},"641":{"position":[[485,6],[621,7]]},"645":{"position":[[480,7],[880,6],[912,5]]}}}],["it'",{"_index":201,"t":{"14":{"position":[[723,4]]},"42":{"position":[[2510,4]]},"64":{"position":[[176,4]]},"268":{"position":[[190,4]]},"449":{"position":[[802,4]]},"557":{"position":[[462,4]]},"561":{"position":[[230,4]]},"569":{"position":[[740,4],[2255,4]]},"587":{"position":[[875,4]]}}}],["item",{"_index":712,"t":{"84":{"position":[[2313,6]]},"647":{"position":[[262,5]]}}}],["itself",{"_index":1355,"t":{"238":{"position":[[458,7]]},"284":{"position":[[1559,7]]},"407":{"position":[[1359,6]]},"553":{"position":[[273,6]]},"559":{"position":[[255,7]]},"569":{"position":[[1526,7]]},"591":{"position":[[156,6]]}}}],["iu4qbkyj8ovxwz4fialxz_1a8docu2wc",{"_index":1274,"t":{"206":{"position":[[212,32],[445,32]]}}}],["iu4qcqzxzdb_jsymloyor0f5e_95hbiywgo_wgx2riddbmcjzktzmlcr0wmmzv47lgik_tvwww5ming90ris83tismbgmlkgny0gmlwhaaaaacjc2vjcdi1nmsxoqpszztg",{"_index":1466,"t":{"274":{"position":[[371,131]]}}}],["javascript",{"_index":2,"t":{"2":{"position":[[23,10],[151,10]]},"38":{"position":[[227,10]]},"42":{"position":[[70,10],[1453,10],[1722,10]]},"62":{"position":[[161,10]]},"78":{"position":[[23,10]]},"210":{"position":[[594,10]]}}}],["javascript/typescript",{"_index":389,"t":{"38":{"position":[[167,21]]}}}],["jmeter",{"_index":1896,"t":{"409":{"position":[[416,7],[584,6],[787,6]]}}}],["join",{"_index":1462,"t":{"272":{"position":[[3,4]]},"280":{"position":[[3,4]]}}}],["jq",{"_index":900,"t":{"121":{"position":[[240,2]]}}}],["js",{"_index":159,"t":{"10":{"position":[[112,3],[256,2]]},"26":{"position":[[1414,2]]},"76":{"position":[[266,2],[425,2]]},"166":{"position":[[878,2]]},"304":{"position":[[796,2]]},"386":{"position":[[387,3],[421,3]]}}}],["json",{"_index":79,"t":{"6":{"position":[[447,4]]},"42":{"position":[[425,5]]},"172":{"position":[[278,4]]}}}],["judg",{"_index":2630,"t":{"633":{"position":[[506,6]]}}}],["jump",{"_index":2367,"t":{"565":{"position":[[1342,4]]}}}],["juri",{"_index":2632,"t":{"633":{"position":[[615,4]]}}}],["jurisdict",{"_index":2565,"t":{"617":{"position":[[826,13]]},"633":{"position":[[650,14]]}}}],["k",{"_index":564,"t":{"68":{"position":[[50,1],[128,1]]},"252":{"position":[[17,1]]},"254":{"position":[[584,1],[595,1],[771,1],[829,1]]},"601":{"position":[[346,1],[404,1]]}}}],["kademlia'",{"_index":1215,"t":{"192":{"position":[[587,10]]}}}],["kb",{"_index":1861,"t":{"407":{"position":[[293,3]]}}}],["kb/",{"_index":2245,"t":{"526":{"position":[[141,4],[446,4],[480,4]]},"528":{"position":[[34,4],[339,4],[373,4]]},"531":{"position":[[176,6],[217,6]]},"535":{"position":[[274,6],[315,6]]}}}],["keen",{"_index":2663,"t":{"637":{"position":[[107,4]]},"645":{"position":[[361,4]]},"647":{"position":[[55,4],[180,4]]}}}],["keep",{"_index":412,"t":{"42":{"position":[[866,7]]},"92":{"position":[[177,4]]},"113":{"position":[[279,4]]},"125":{"position":[[136,4]]},"178":{"position":[[1348,4],[1372,4]]},"248":{"position":[[113,4]]},"304":{"position":[[1088,4],[1271,4]]},"411":{"position":[[1708,5]]},"445":{"position":[[411,4]]},"547":{"position":[[888,4]]},"601":{"position":[[98,5]]}}}],["kept",{"_index":2646,"t":{"633":{"position":[[1742,4]]}}}],["key",{"_index":513,"t":{"62":{"position":[[89,4],[172,3]]},"111":{"position":[[43,3],[157,4],[258,3],[641,3],[1265,3],[1357,3]]},"113":{"position":[[31,3],[64,3],[157,4],[274,4],[353,3],[374,4],[521,3],[792,3],[996,3],[1440,3]]},"115":{"position":[[313,3],[536,4],[855,3],[935,4],[1292,3],[1360,3],[1587,3],[1655,3],[2045,3],[2134,3],[2388,3],[2815,3],[2896,3],[3078,3]]},"117":{"position":[[27,4],[140,4],[187,3],[269,3],[364,4],[554,4],[658,4],[796,4]]},"141":{"position":[[284,5],[346,3]]},"170":{"position":[[182,4]]},"174":{"position":[[232,3]]},"178":{"position":[[477,3],[507,3],[551,3],[585,3],[837,3],[849,3]]},"196":{"position":[[213,3],[239,3]]},"222":{"position":[[34,3]]},"238":{"position":[[136,3]]},"250":{"position":[[379,5],[456,3]]},"254":{"position":[[244,4]]},"286":{"position":[[26,3],[144,3],[215,4],[258,3],[495,3],[546,3],[629,3],[728,3],[829,3],[846,3],[1015,3]]},"288":{"position":[[461,3],[488,3],[707,3],[734,3],[1058,3],[1197,3]]},"390":{"position":[[118,3]]},"413":{"position":[[624,3],[687,3]]},"479":{"position":[[7,3],[55,3]]},"491":{"position":[[121,4]]},"521":{"position":[[104,3]]},"526":{"position":[[21,3]]}}}],["key={index",{"_index":673,"t":{"84":{"position":[[1263,11]]}}}],["key]@[domain",{"_index":492,"t":{"50":{"position":[[433,12]]},"141":{"position":[[603,12]]}}}],["keystore/keystore.json",{"_index":1310,"t":{"222":{"position":[[314,22]]}}}],["kind",{"_index":1077,"t":{"172":{"position":[[211,4]]},"617":{"position":[[146,5]]}}}],["kit",{"_index":399,"t":{"40":{"position":[[172,3]]}}}],["know",{"_index":195,"t":{"14":{"position":[[570,4]]}}}],["knowledg",{"_index":1745,"t":{"348":{"position":[[1280,9]]},"499":{"position":[[58,9]]},"591":{"position":[[427,9]]},"593":{"position":[[134,10]]}}}],["known",{"_index":1668,"t":{"326":{"position":[[222,5]]},"449":{"position":[[2080,5]]},"591":{"position":[[732,5]]},"633":{"position":[[2160,5]]}}}],["l",{"_index":938,"t":{"123":{"position":[[197,1]]}}}],["laid",{"_index":2084,"t":{"435":{"position":[[240,4]]}}}],["languag",{"_index":386,"t":{"38":{"position":[[78,9]]},"633":{"position":[[1765,8]]}}}],["laptop",{"_index":2111,"t":{"445":{"position":[[88,6]]},"449":{"position":[[600,7]]}}}],["larg",{"_index":1739,"t":{"348":{"position":[[1052,6],[1173,5]]},"388":{"position":[[123,5]]},"538":{"position":[[132,5]]}}}],["larger",{"_index":1577,"t":{"298":{"position":[[567,6]]}}}],["last",{"_index":1061,"t":{"166":{"position":[[710,4]]},"198":{"position":[[691,4]]},"284":{"position":[[1246,4]]},"423":{"position":[[13,4]]},"613":{"position":[[13,4]]}}}],["lastmessag",{"_index":1042,"t":{"164":{"position":[[628,11]]}}}],["late",{"_index":2479,"t":{"587":{"position":[[122,4]]}}}],["latenc",{"_index":1574,"t":{"298":{"position":[[411,8]]},"306":{"position":[[186,8]]},"370":{"position":[[279,8]]},"523":{"position":[[392,7]]},"533":{"position":[[24,7],[111,7],[697,7],[733,7]]},"553":{"position":[[569,7]]},"565":{"position":[[1376,7]]},"567":{"position":[[453,7]]},"569":{"position":[[1482,7]]}}}],["latency=100m",{"_index":2382,"t":{"567":{"position":[[430,14]]}}}],["later",{"_index":1664,"t":{"324":{"position":[[929,5]]},"378":{"position":[[121,6]]},"605":{"position":[[292,6]]}}}],["latest",{"_index":156,"t":{"10":{"position":[[76,6]]},"74":{"position":[[354,6]]},"119":{"position":[[92,6]]},"268":{"position":[[606,6]]},"540":{"position":[[80,6]]},"557":{"position":[[140,6]]}}}],["latitud",{"_index":1858,"t":{"407":{"position":[[241,8]]}}}],["launch",{"_index":1313,"t":{"224":{"position":[[0,6]]}}}],["law",{"_index":2562,"t":{"617":{"position":[[708,4],[976,5]]},"625":{"position":[[639,4]]},"631":{"position":[[6,3],[145,4]]},"633":{"position":[[66,3]]}}}],["lawsuit",{"_index":2652,"t":{"633":{"position":[[2241,7]]}}}],["layer",{"_index":351,"t":{"32":{"position":[[741,5],[824,5],[908,5]]},"328":{"position":[[16,6]]},"330":{"position":[[46,7]]},"346":{"position":[[248,5]]}}}],["lead",{"_index":1508,"t":{"286":{"position":[[50,7]]},"330":{"position":[[283,7]]},"601":{"position":[[722,5]]}}}],["leaf",{"_index":1585,"t":{"300":{"position":[[402,4]]}}}],["leak",{"_index":1748,"t":{"348":{"position":[[1551,4]]}}}],["learn",{"_index":92,"t":{"8":{"position":[[68,5],[189,5],[324,5],[458,5],[592,5],[727,5],[880,5],[1009,5],[1133,5],[1265,5]]},"14":{"position":[[515,5]]},"28":{"position":[[286,5]]},"42":{"position":[[494,5],[628,5]]},"90":{"position":[[1594,5]]},"127":{"position":[[182,5]]},"129":{"position":[[174,5]]},"208":{"position":[[779,5]]},"210":{"position":[[80,5]]},"214":{"position":[[51,5]]},"228":{"position":[[1199,5]]},"240":{"position":[[443,5]]},"244":{"position":[[308,5]]},"264":{"position":[[1457,5]]},"270":{"position":[[178,5]]},"276":{"position":[[519,5]]},"300":{"position":[[537,8]]},"340":{"position":[[533,5]]},"348":{"position":[[121,5]]}}}],["leav",{"_index":2208,"t":{"449":{"position":[[2514,7]]},"555":{"position":[[658,7]]}}}],["led",{"_index":2390,"t":{"567":{"position":[[834,3]]}}}],["legal",{"_index":2052,"t":{"425":{"position":[[212,5]]},"427":{"position":[[184,5]]},"615":{"position":[[152,5]]},"617":{"position":[[431,9],[785,7],[1565,6]]},"625":{"position":[[93,5]]}}}],["legal@free.technolog",{"_index":2104,"t":{"441":{"position":[[89,22]]},"635":{"position":[[902,22]]}}}],["legisl",{"_index":2063,"t":{"427":{"position":[[230,12]]},"433":{"position":[[713,12]]},"435":{"position":[[269,12]]}}}],["legitim",{"_index":2066,"t":{"427":{"position":[[673,10]]}}}],["leobago",{"_index":2136,"t":{"447":{"position":[[175,8]]}}}],["less",{"_index":1218,"t":{"192":{"position":[[623,4]]},"344":{"position":[[263,5]]},"449":{"position":[[437,5],[1085,4],[1803,4]]},"565":{"position":[[237,4],[248,4]]}}}],["let",{"_index":1350,"t":{"236":{"position":[[232,4]]}}}],["let'",{"_index":649,"t":{"84":{"position":[[0,5]]},"288":{"position":[[1303,5]]},"417":{"position":[[14,5]]},"565":{"position":[[0,5]]}}}],["level",{"_index":1070,"t":{"172":{"position":[[35,5],[76,5],[105,7]]},"200":{"position":[[113,6]]},"236":{"position":[[99,5]]},"244":{"position":[[98,5]]},"411":{"position":[[1723,5]]},"433":{"position":[[297,5]]},"455":{"position":[[68,5]]},"526":{"position":[[743,6]]},"528":{"position":[[636,6]]},"565":{"position":[[64,6]]}}}],["leverag",{"_index":2224,"t":{"471":{"position":[[57,9]]},"477":{"position":[[64,9]]},"637":{"position":[[150,8]]}}}],["liabil",{"_index":2101,"t":{"437":{"position":[[179,9]]},"625":{"position":[[73,10],[484,9],[572,9]]}}}],["liabl",{"_index":2601,"t":{"623":{"position":[[498,6]]},"625":{"position":[[20,6]]}}}],["lib",{"_index":915,"t":{"121":{"position":[[533,4]]}}}],["libp2p",{"_index":473,"t":{"48":{"position":[[1285,7]]},"50":{"position":[[623,7],[935,7]]},"52":{"position":[[670,7]]},"58":{"position":[[86,6]]},"60":{"position":[[195,7]]},"62":{"position":[[277,6]]},"107":{"position":[[185,6]]},"145":{"position":[[890,6]]},"174":{"position":[[318,6],[755,6]]},"238":{"position":[[172,6]]},"242":{"position":[[655,6]]},"312":{"position":[[117,6]]},"330":{"position":[[60,6]]},"348":{"position":[[298,6]]},"372":{"position":[[126,6]]},"390":{"position":[[30,7]]},"396":{"position":[[0,6]]},"407":{"position":[[723,8]]},"469":{"position":[[0,6]]},"531":{"position":[[21,6],[150,6],[191,6]]}}}],["libp2p'",{"_index":1826,"t":{"392":{"position":[[75,8]]}}}],["libp2p.getp",{"_index":502,"t":{"54":{"position":[[66,17]]}}}],["libp2p/bootstrap",{"_index":501,"t":{"52":{"position":[[157,20]]}}}],["libpq",{"_index":909,"t":{"121":{"position":[[372,5]]}}}],["libpq.5.dylib",{"_index":922,"t":{"121":{"position":[[678,13]]}}}],["libpq5",{"_index":899,"t":{"121":{"position":[[233,6]]}}}],["libpqisbusi",{"_index":1942,"t":{"411":{"position":[[3641,13]]}}}],["librari",{"_index":890,"t":{"121":{"position":[[130,8]]},"507":{"position":[[16,10]]},"641":{"position":[[47,9]]},"645":{"position":[[392,8]]}}}],["licenc",{"_index":2595,"t":{"621":{"position":[[138,7],[342,8]]}}}],["licens",{"_index":2105,"t":{"441":{"position":[[129,8]]},"621":{"position":[[101,7]]},"635":{"position":[[942,8]]}}}],["light",{"_index":97,"t":{"8":{"position":[[167,5],[231,5],[253,5],[380,5]]},"12":{"position":[[88,5],[126,5]]},"14":{"position":[[47,5],[161,5]]},"20":{"position":[[191,7]]},"24":{"position":[[49,5],[413,5]]},"26":{"position":[[1356,5],[1408,5],[1421,5]]},"82":{"position":[[297,5],[437,5],[604,5],[759,5],[841,5]]},"84":{"position":[[609,5],[1078,5]]},"86":{"position":[[387,5]]},"111":{"position":[[699,5]]},"113":{"position":[[850,5]]},"115":{"position":[[1750,5]]},"131":{"position":[[169,5],[211,5]]},"147":{"position":[[47,5]]},"149":{"position":[[47,5],[161,5]]},"166":{"position":[[816,5]]},"250":{"position":[[23,5]]},"272":{"position":[[527,5]]},"292":{"position":[[25,5]]},"294":{"position":[[25,5],[51,5],[163,5]]},"310":{"position":[[165,5]]},"322":{"position":[[289,5]]},"326":{"position":[[800,5]]},"338":{"position":[[522,5]]},"356":{"position":[[56,5]]},"376":{"position":[[23,5]]},"380":{"position":[[0,5],[321,5]]},"449":{"position":[[723,5],[1573,5],[1689,5]]},"465":{"position":[[34,5]]},"471":{"position":[[2,5]]},"473":{"position":[[0,5],[34,5]]},"489":{"position":[[57,5]]},"547":{"position":[[549,5]]},"585":{"position":[[245,5],[292,5],[455,5],[526,5],[615,5],[677,5],[717,5]]},"589":{"position":[[16,5]]},"597":{"position":[[934,5]]},"611":{"position":[[459,5]]}}}],["lightn",{"_index":2504,"t":{"597":{"position":[[674,10]]}}}],["lightnodeprovid",{"_index":629,"t":{"82":{"position":[[90,17],[246,17],[484,18],[535,20]]}}}],["lightpush",{"_index":495,"t":{"50":{"position":[[520,10]]},"52":{"position":[[550,10]]},"174":{"position":[[1056,10]]},"184":{"position":[[31,9],[54,9],[125,9]]},"198":{"position":[[1140,9]]},"294":{"position":[[81,9],[245,9],[400,9]]},"533":{"position":[[452,9]]},"585":{"position":[[281,10],[990,10]]},"611":{"position":[[475,10]]}}}],["lightpush.send",{"_index":256,"t":{"24":{"position":[[110,16]]}}}],["lightpush=tru",{"_index":1559,"t":{"294":{"position":[[119,14]]}}}],["lightpushnod",{"_index":1194,"t":{"184":{"position":[[85,13]]},"294":{"position":[[191,13]]}}}],["lightpushnode=/dns4/nod",{"_index":1561,"t":{"294":{"position":[[464,24]]}}}],["lightpushnode=[light",{"_index":1560,"t":{"294":{"position":[[309,20]]}}}],["lightpush|filter|px|store|storev2|storev3",{"_index":1232,"t":{"198":{"position":[[321,41]]}}}],["lightweight",{"_index":1396,"t":{"246":{"position":[[924,11]]},"266":{"position":[[11,11]]},"376":{"position":[[149,11]]},"465":{"position":[[158,11]]}}}],["like",{"_index":338,"t":{"32":{"position":[[364,5]]}}}],["limit",{"_index":425,"t":{"42":{"position":[[1784,12]]},"64":{"position":[[228,11]]},"92":{"position":[[143,11]]},"103":{"position":[[72,12]]},"192":{"position":[[392,5],[484,5]]},"198":{"position":[[36,5],[105,5],[684,6],[899,5],[1176,8]]},"222":{"position":[[186,7],[248,6]]},"298":{"position":[[720,7]]},"306":{"position":[[293,7]]},"310":{"position":[[87,7]]},"322":{"position":[[73,7],[347,7]]},"328":{"position":[[314,12]]},"334":{"position":[[418,5]]},"340":{"position":[[281,8]]},"348":{"position":[[1219,8],[1251,8]]},"374":{"position":[[60,5],[153,5]]},"376":{"position":[[245,7]]},"380":{"position":[[57,7]]},"386":{"position":[[90,5],[149,7]]},"394":{"position":[[259,7]]},"399":{"position":[[83,5]]},"407":{"position":[[676,11]]},"415":{"position":[[115,8]]},"417":{"position":[[586,7],[2006,5]]},"419":{"position":[[80,8],[185,5],[243,5],[514,5]]},"421":{"position":[[82,5],[272,8],[457,6],[554,5],[907,6]]},"427":{"position":[[10,5]]},"429":{"position":[[19,7]]},"435":{"position":[[40,5]]},"443":{"position":[[277,5]]},"445":{"position":[[917,8],[994,7],[1396,5]]},"449":{"position":[[2435,7],[2774,5]]},"471":{"position":[[27,7]]},"499":{"position":[[5,5],[93,8]]},"503":{"position":[[9,7]]},"505":{"position":[[63,5],[135,5]]},"513":{"position":[[130,7]]},"519":{"position":[[137,7]]},"523":{"position":[[424,8]]},"555":{"position":[[519,7]]},"561":{"position":[[125,11]]},"607":{"position":[[110,5]]},"617":{"position":[[190,10]]},"625":{"position":[[513,7],[558,10]]},"627":{"position":[[228,10]]},"633":{"position":[[570,8],[2039,12]]},"635":{"position":[[402,6]]},"643":{"position":[[533,11]]}}}],["limit=\"100/1",{"_index":1242,"t":{"198":{"position":[[1043,14]]}}}],["limit=\"filter:8/5m",{"_index":1253,"t":{"198":{"position":[[1381,19]]}}}],["limit=\"lightpush:0/0",{"_index":1244,"t":{"198":{"position":[[1115,22]]}}}],["limit=\"px:10/1h",{"_index":1250,"t":{"198":{"position":[[1304,16]]}}}],["limit=\"store:130/1500m",{"_index":1245,"t":{"198":{"position":[[1192,24]]}}}],["line",{"_index":945,"t":{"127":{"position":[[141,4]]},"170":{"position":[[85,4]]},"210":{"position":[[859,4]]},"230":{"position":[[83,4],[314,4]]},"232":{"position":[[51,4],[272,4]]},"234":{"position":[[510,4]]},"236":{"position":[[699,4]]},"449":{"position":[[832,5]]}}}],["link",{"_index":921,"t":{"121":{"position":[[670,4]]},"250":{"position":[[94,4]]},"330":{"position":[[275,7]]},"332":{"position":[[110,7],[364,6],[502,6]]},"338":{"position":[[407,4],[501,4]]},"437":{"position":[[37,5]]},"526":{"position":[[68,5]]},"569":{"position":[[827,5]]},"587":{"position":[[351,6]]},"617":{"position":[[613,6]]},"623":{"position":[[39,5],[182,7]]}}}],["linkabl",{"_index":1711,"t":{"338":{"position":[[284,8]]}}}],["linux",{"_index":878,"t":{"119":{"position":[[319,5]]},"121":{"position":[[169,5]]},"286":{"position":[[287,6],[462,6]]}}}],["list",{"_index":404,"t":{"40":{"position":[[374,4]]},"48":{"position":[[23,4],[478,4],[881,4]]},"50":{"position":[[204,4],[230,4],[393,4]]},"52":{"position":[[257,4]]},"88":{"position":[[394,4]]},"141":{"position":[[190,4],[366,4],[884,5]]},"157":{"position":[[220,4]]},"159":{"position":[[191,4]]},"190":{"position":[[119,4]]},"264":{"position":[[203,4]]},"298":{"position":[[462,4],[574,4],[745,6],[880,8]]},"306":{"position":[[416,4]]},"571":{"position":[[512,4]]},"591":{"position":[[1096,4]]}}}],["listen",{"_index":237,"t":{"20":{"position":[[1195,6]]},"174":{"position":[[258,6],[296,9],[383,9]]},"186":{"position":[[106,9],[163,9]]},"188":{"position":[[123,9],[188,9]]},"192":{"position":[[122,9]]},"196":{"position":[[114,9]]},"200":{"position":[[63,9]]},"202":{"position":[[40,9],[118,9],[359,9],[474,9]]},"208":{"position":[[668,9]]},"210":{"position":[[1652,9]]},"238":{"position":[[152,6]]},"264":{"position":[[1127,10]]},"274":{"position":[[611,9]]},"288":{"position":[[286,9],[636,9]]},"290":{"position":[[229,9],[348,9],[793,9],[839,9]]},"314":{"position":[[485,9]]},"479":{"position":[[86,9]]}}}],["listenaddress",{"_index":1463,"t":{"274":{"position":[[248,18],[571,15]]}}}],["litig",{"_index":2626,"t":{"633":{"position":[[277,10],[474,10]]}}}],["live",{"_index":2384,"t":{"567":{"position":[[541,4]]},"597":{"position":[[832,5]]},"609":{"position":[[162,4]]},"647":{"position":[[32,5]]}}}],["ln",{"_index":926,"t":{"121":{"position":[[746,2]]}}}],["load",{"_index":364,"t":{"32":{"position":[[991,5]]},"170":{"position":[[43,5]]},"224":{"position":[[144,6]]},"240":{"position":[[268,4]]},"310":{"position":[[536,4]]},"459":{"position":[[129,4]]}}}],["local",{"_index":457,"t":{"48":{"position":[[383,5],[1430,5],[1577,8],[1633,7]]},"62":{"position":[[57,5]]},"64":{"position":[[499,8]]},"117":{"position":[[290,5]]},"139":{"position":[[341,5]]},"145":{"position":[[515,5]]},"262":{"position":[[36,8]]},"264":{"position":[[181,7]]},"288":{"position":[[887,5]]},"407":{"position":[[223,7]]},"411":{"position":[[735,8]]},"557":{"position":[[214,7]]},"575":{"position":[[636,5]]},"603":{"position":[[47,5]]},"617":{"position":[[970,5]]}}}],["localhost",{"_index":533,"t":{"64":{"position":[[516,9]]},"186":{"position":[[629,12]]}}}],["locat",{"_index":447,"t":{"46":{"position":[[90,6]]},"141":{"position":[[379,9]]},"210":{"position":[[1798,6]]},"228":{"position":[[101,8],[175,8],[350,8],[716,8]]},"274":{"position":[[161,8]]},"276":{"position":[[132,8]]},"318":{"position":[[35,8]]},"326":{"position":[[171,6]]},"445":{"position":[[1560,9]]},"453":{"position":[[136,6]]},"487":{"position":[[30,7]]}}}],["lock",{"_index":2467,"t":{"581":{"position":[[448,4]]}}}],["log",{"_index":131,"t":{"8":{"position":[[1186,4]]},"42":{"position":[[2044,4]]},"56":{"position":[[59,4]]},"58":{"position":[[47,4],[140,4]]},"60":{"position":[[16,4],[112,4],[167,4],[246,4]]},"62":{"position":[[14,4],[230,4],[290,4],[321,4]]},"66":{"position":[[435,3]]},"172":{"position":[[31,3],[72,3],[162,3],[219,4]]},"188":{"position":[[238,7],[266,8]]},"200":{"position":[[109,3],[177,4]]},"202":{"position":[[13,3],[73,3]]},"206":{"position":[[13,3],[82,3]]},"208":{"position":[[13,3],[85,3]]},"210":{"position":[[634,4],[693,4],[742,4],[1712,4]]},"224":{"position":[[208,4],[281,4]]},"236":{"position":[[95,3],[179,7]]}}}],["log(1000)/log(6",{"_index":2365,"t":{"565":{"position":[[1029,16]]}}}],["log(total_nodes)/log(d)=5",{"_index":2321,"t":{"553":{"position":[[492,25]]}}}],["logging.logformat.text",{"_index":1076,"t":{"172":{"position":[[173,22]]}}}],["logging.loglevel.info",{"_index":1071,"t":{"172":{"position":[[41,21]]}}}],["logic",{"_index":2226,"t":{"483":{"position":[[91,5]]}}}],["logo",{"_index":2048,"t":{"425":{"position":[[135,5],[238,5],[350,8],[417,5]]},"615":{"position":[[75,5],[179,5],[291,8],[368,5]]}}}],["long",{"_index":320,"t":{"30":{"position":[[297,4]]},"284":{"position":[[278,4]]},"348":{"position":[[804,4],[1059,4]]},"417":{"position":[[233,4]]},"565":{"position":[[1321,4]]},"597":{"position":[[827,4]]},"645":{"position":[[721,4]]}}}],["longer",{"_index":1756,"t":{"362":{"position":[[27,6]]},"553":{"position":[[321,8]]}}}],["look",{"_index":87,"t":{"8":{"position":[[7,4]]},"12":{"position":[[202,4]]},"14":{"position":[[459,4]]},"22":{"position":[[375,4]]},"26":{"position":[[1396,4]]},"32":{"position":[[1161,7]]},"90":{"position":[[1320,4],[1488,4]]},"117":{"position":[[175,4],[1076,4]]},"127":{"position":[[221,4]]},"129":{"position":[[125,4]]},"131":{"position":[[125,4]]},"166":{"position":[[860,4]]},"198":{"position":[[1558,4]]},"202":{"position":[[0,4]]},"206":{"position":[[0,4]]},"208":{"position":[[0,4],[733,4]]},"228":{"position":[[1122,4]]},"238":{"position":[[633,4]]},"240":{"position":[[407,4]]},"244":{"position":[[266,4]]},"264":{"position":[[1408,4]]},"270":{"position":[[243,4]]},"276":{"position":[[470,4]]},"340":{"position":[[634,4]]},"344":{"position":[[82,4],[299,4]]},"346":{"position":[[7,4]]},"413":{"position":[[19,4]]},"619":{"position":[[37,7],[213,7],[549,7]]}}}],["lookup",{"_index":1219,"t":{"192":{"position":[[637,6]]},"300":{"position":[[4,6],[169,6],[320,6]]}}}],["lose",{"_index":1995,"t":{"417":{"position":[[746,6],[1535,6]]}}}],["loss",{"_index":1870,"t":{"407":{"position":[[661,4]]}}}],["lost",{"_index":1869,"t":{"407":{"position":[[612,4],[930,4]]},"625":{"position":[[127,4]]}}}],["lot",{"_index":1365,"t":{"240":{"position":[[569,4]]},"390":{"position":[[51,3]]}}}],["low",{"_index":1573,"t":{"298":{"position":[[407,3],[420,3]]},"306":{"position":[[182,3],[195,3]]},"310":{"position":[[386,3]]},"322":{"position":[[99,3]]},"334":{"position":[[343,3]]},"419":{"position":[[344,3]]},"445":{"position":[[475,4]]},"449":{"position":[[355,3],[546,3]]},"575":{"position":[[559,3]]}}}],["lower",{"_index":2359,"t":{"565":{"position":[[487,5]]},"569":{"position":[[678,5],[1836,6],[2129,5]]}}}],["lowest",{"_index":2206,"t":{"449":{"position":[[2240,6],[2308,6],[2450,6]]}}}],["luckili",{"_index":2325,"t":{"555":{"position":[[132,8]]}}}],["m",{"_index":2354,"t":{"563":{"position":[[210,1],[284,2]]},"565":{"position":[[1859,1]]},"601":{"position":[[297,1],[397,2]]}}}],["machin",{"_index":1321,"t":{"226":{"position":[[137,8]]},"411":{"position":[[936,7],[2008,7]]},"413":{"position":[[1066,7]]}}}],["maco",{"_index":879,"t":{"119":{"position":[[329,6]]},"121":{"position":[[175,5]]}}}],["made",{"_index":1335,"t":{"228":{"position":[[666,4]]},"445":{"position":[[1261,5]]},"617":{"position":[[1057,4]]},"621":{"position":[[33,4]]}}}],["magnitud",{"_index":2205,"t":{"449":{"position":[[2183,9],[3022,9]]}}}],["main",{"_index":1779,"t":{"370":{"position":[[301,4]]},"417":{"position":[[935,4]]},"445":{"position":[[912,4]]},"481":{"position":[[98,4]]},"540":{"position":[[87,4]]},"547":{"position":[[156,4],[579,4]]}}}],["main.jsx",{"_index":628,"t":{"82":{"position":[[7,8]]}}}],["mainli",{"_index":2125,"t":{"445":{"position":[[986,7]]},"567":{"position":[[144,6]]}}}],["maintain",{"_index":342,"t":{"32":{"position":[[414,8]]},"178":{"position":[[1163,8]]},"266":{"position":[[105,8]]},"286":{"position":[[86,8]]},"431":{"position":[[128,8]]},"497":{"position":[[155,8]]},"544":{"position":[[142,8]]},"587":{"position":[[880,10]]},"647":{"position":[[63,8]]}}}],["mainten",{"_index":1608,"t":{"306":{"position":[[374,11]]}}}],["major",{"_index":933,"t":{"123":{"position":[[104,5]]}}}],["make",{"_index":885,"t":{"121":{"position":[[83,5]]},"125":{"position":[[24,4],[49,4],[121,4],[179,4]]},"129":{"position":[[24,4]]},"220":{"position":[[242,4]]},"262":{"position":[[163,4]]},"304":{"position":[[638,4]]},"338":{"position":[[237,6]]},"370":{"position":[[191,4]]},"378":{"position":[[75,6]]},"388":{"position":[[114,6],[153,5],[448,5]]},"401":{"position":[[178,5]]},"409":{"position":[[433,4]]},"413":{"position":[[1462,6],[1569,6],[1840,6]]},"419":{"position":[[399,4]]},"429":{"position":[[138,6]]},"617":{"position":[[367,4],[716,4]]},"633":{"position":[[97,4],[953,7]]}}}],["malici",{"_index":1817,"t":{"388":{"position":[[477,9]]}}}],["manag",{"_index":35,"t":{"4":{"position":[[59,8]]},"6":{"position":[[561,8]]},"8":{"position":[[1232,6],[1278,6]]},"42":{"position":[[2143,6],[2353,6]]},"80":{"position":[[377,8]]},"101":{"position":[[262,10]]},"109":{"position":[[100,8]]},"131":{"position":[[38,6]]},"133":{"position":[[145,6]]},"135":{"position":[[1211,7]]},"178":{"position":[[441,11]]},"457":{"position":[[68,10]]}}}],["mani",{"_index":756,"t":{"95":{"position":[[184,4]]},"334":{"position":[[89,4]]},"372":{"position":[[350,4]]},"419":{"position":[[366,4]]},"495":{"position":[[191,4]]},"501":{"position":[[213,4]]},"581":{"position":[[362,4]]}}}],["manner",{"_index":2356,"t":{"563":{"position":[[429,7]]},"633":{"position":[[388,7]]}}}],["manual",{"_index":445,"t":{"42":{"position":[[2731,8]]},"411":{"position":[[872,6],[1944,6]]}}}],["map",{"_index":1167,"t":{"178":{"position":[[1668,3]]},"264":{"position":[[1060,8]]}}}],["margin",{"_index":690,"t":{"84":{"position":[[1963,7],[2212,6],[2396,6]]}}}],["market",{"_index":356,"t":{"32":{"position":[[851,7]]},"619":{"position":[[181,7],[620,6]]}}}],["marketplac",{"_index":334,"t":{"32":{"position":[[242,13]]}}}],["master",{"_index":931,"t":{"123":{"position":[[70,7]]}}}],["match",{"_index":541,"t":{"64":{"position":[[728,5]]},"324":{"position":[[588,5],[983,8],[1095,5]]},"585":{"position":[[885,5]]},"589":{"position":[[329,7]]}}}],["matrix",{"_index":2434,"t":{"575":{"position":[[54,7]]}}}],["matter",{"_index":2313,"t":{"551":{"position":[[51,6]]},"565":{"position":[[1102,6]]},"617":{"position":[[1475,7]]},"619":{"position":[[437,7],[1123,7]]},"641":{"position":[[330,6]]}}}],["max",{"_index":1106,"t":{"174":{"position":[[710,3],[911,3],[980,3]]},"182":{"position":[[297,3],[400,3]]},"533":{"position":[[709,3]]}}}],["maximum",{"_index":1108,"t":{"174":{"position":[[729,7],[1110,7]]},"182":{"position":[[321,7],[418,7]]},"192":{"position":[[401,7],[492,7]]},"407":{"position":[[0,7],[444,7],[1461,7]]},"417":{"position":[[1033,7]]},"421":{"position":[[182,7],[718,7]]},"443":{"position":[[33,7],[109,7],[239,7]]},"445":{"position":[[1406,7],[1589,7]]},"449":{"position":[[69,7]]},"565":{"position":[[891,7]]},"617":{"position":[[669,7]]},"625":{"position":[[600,7]]}}}],["maxmessages",{"_index":2033,"t":{"421":{"position":[[683,15]]}}}],["mb/gb",{"_index":1486,"t":{"284":{"position":[[543,6]]}}}],["mbp",{"_index":2000,"t":{"417":{"position":[[1220,4],[1423,5],[1696,6]]},"421":{"position":[[1059,4],[1264,4]]},"443":{"position":[[56,4],[289,4]]},"445":{"position":[[960,4],[1484,5],[1610,4]]},"447":{"position":[[93,4],[332,5],[428,4],[489,6],[503,6],[734,6],[755,6],[829,4],[844,4],[859,4]]},"449":{"position":[[1993,4],[2302,5],[2368,5],[2572,5],[2786,4]]}}}],["mean",{"_index":960,"t":{"135":{"position":[[1119,4]]},"198":{"position":[[766,5]]},"304":{"position":[[447,5]]},"324":{"position":[[140,5]]},"332":{"position":[[10,5]]},"409":{"position":[[52,5]]},"421":{"position":[[644,7],[706,7]]},"433":{"position":[[197,5]]},"449":{"position":[[1367,7],[1484,7]]},"551":{"position":[[228,5]]},"563":{"position":[[573,5]]},"613":{"position":[[375,5]]},"633":{"position":[[43,7]]},"635":{"position":[[760,4]]}}}],["meant",{"_index":2195,"t":{"449":{"position":[[1869,5]]}}}],["measur",{"_index":1708,"t":{"336":{"position":[[149,8]]},"409":{"position":[[769,8]]},"427":{"position":[[788,8]]},"431":{"position":[[101,8]]},"533":{"position":[[35,8]]},"535":{"position":[[112,12]]},"563":{"position":[[716,8]]},"565":{"position":[[1406,8]]},"567":{"position":[[182,7],[514,13]]},"609":{"position":[[105,7]]}}}],["mechan",{"_index":350,"t":{"32":{"position":[[682,9]]},"44":{"position":[[198,10]]},"101":{"position":[[416,10]]},"137":{"position":[[184,10]]},"210":{"position":[[1314,10]]},"240":{"position":[[55,9]]},"272":{"position":[[136,11],[363,9],[452,9]]},"280":{"position":[[136,11]]},"318":{"position":[[135,11],[187,10]]},"320":{"position":[[313,9]]},"326":{"position":[[146,9],[961,11]]},"334":{"position":[[226,9]]},"392":{"position":[[28,10]]},"419":{"position":[[89,10]]},"459":{"position":[[27,9]]},"461":{"position":[[34,9]]},"489":{"position":[[34,9]]},"511":{"position":[[25,9]]},"521":{"position":[[117,10]]},"547":{"position":[[53,9]]},"583":{"position":[[185,11]]},"591":{"position":[[1170,10]]},"597":{"position":[[1084,10]]},"601":{"position":[[975,9]]}}}],["media",{"_index":365,"t":{"32":{"position":[[1004,5],[1101,5]]},"42":{"position":[[2536,5],[2603,5]]}}}],["median",{"_index":2140,"t":{"447":{"position":[[287,6],[718,6],[741,6]]},"567":{"position":[[637,6]]}}}],["meet",{"_index":1383,"t":{"244":{"position":[[225,4]]},"449":{"position":[[1208,4],[1544,7],[1608,7]]},"633":{"position":[[305,5]]}}}],["member",{"_index":611,"t":{"76":{"position":[[577,7]]},"348":{"position":[[1631,7]]},"547":{"position":[[906,7]]},"557":{"position":[[257,7],[344,7],[404,7]]}}}],["membership",{"_index":1137,"t":{"178":{"position":[[307,10],[772,10]]},"216":{"position":[[159,10]]},"222":{"position":[[8,10],[283,10],[520,11]]},"224":{"position":[[130,10]]},"344":{"position":[[213,10],[495,11]]},"421":{"position":[[295,11],[478,11]]},"547":{"position":[[367,10],[488,11]]}}}],["memori",{"_index":1493,"t":{"284":{"position":[[897,6]]},"417":{"position":[[1760,7]]},"445":{"position":[[584,7]]},"503":{"position":[[110,7]]},"549":{"position":[[366,6]]},"559":{"position":[[70,6]]}}}],["mempool",{"_index":359,"t":{"32":{"position":[[874,9]]}}}],["menduist",{"_index":2379,"t":{"567":{"position":[[250,9]]}}}],["mention",{"_index":1996,"t":{"417":{"position":[[835,7]]}}}],["merchant",{"_index":2553,"t":{"617":{"position":[[219,16]]}}}],["merg",{"_index":605,"t":{"76":{"position":[[489,5]]},"605":{"position":[[93,5]]}}}],["merkl",{"_index":1151,"t":{"178":{"position":[[1071,6]]}}}],["mesh",{"_index":1360,"t":{"240":{"position":[[384,4]]},"326":{"position":[[368,5],[418,5]]},"535":{"position":[[221,5]]},"567":{"position":[[237,5]]}}}],["messag",{"_index":47,"t":{"6":{"position":[[24,7],[142,7]]},"8":{"position":[[152,8],[219,8],[294,8],[368,8],[449,8],[547,8]]},"12":{"position":[[107,8],[159,8]]},"14":{"position":[[588,9]]},"20":{"position":[[57,7],[235,7],[411,8],[520,7],[569,8],[1082,8],[1173,8]]},"22":{"position":[[26,7],[67,7],[130,7]]},"24":{"position":[[8,8],[83,7],[153,7],[249,8],[296,7],[399,7]]},"26":{"position":[[11,8],[78,7],[278,7],[710,8],[1179,8],[1315,8]]},"28":{"position":[[115,9]]},"30":{"position":[[156,9],[371,10]]},"32":{"position":[[471,7]]},"42":{"position":[[232,7],[382,9],[548,8],[589,8],[672,8],[753,9],[782,7],[879,8],[946,8],[1012,8],[1121,8]]},"76":{"position":[[338,7]]},"84":{"position":[[41,8],[67,9],[417,10],[678,7],[867,7],[1064,7],[1291,9],[1571,11],[1737,7],[1849,7],[2141,8],[2330,8]]},"86":{"position":[[8,8],[373,7],[496,7],[604,8],[647,7]]},"88":{"position":[[11,8],[138,9],[271,8],[313,9],[402,8]]},"90":{"position":[[11,8],[201,9],[337,8],[354,9],[430,8],[472,9],[567,8],[1341,8]]},"107":{"position":[[114,8],[134,7],[444,7]]},"111":{"position":[[51,7],[325,9],[354,7],[383,7],[505,7],[584,7],[660,8],[685,7],[774,8],[815,7],[847,8],[972,7],[1058,8],[1157,8]]},"113":{"position":[[463,9],[489,7],[538,7],[653,7],[732,7],[811,8],[836,7],[925,8],[963,7],[1016,8],[1134,7],[1218,8],[1317,8],[1545,7]]},"115":{"position":[[0,7],[62,9],[102,8],[189,8],[458,7],[487,7],[871,8],[904,7],[990,7],[1145,8],[1235,7],[1311,8],[1376,8],[1445,8],[1527,7],[1606,8],[1671,8],[1727,8],[2190,7],[2404,8],[2465,7],[2553,8],[2717,7],[2786,7],[3014,7],[3206,7],[3264,7]]},"117":{"position":[[51,7],[1014,8]]},"131":{"position":[[154,8]]},"133":{"position":[[93,8],[241,7]]},"135":{"position":[[401,8],[681,7]]},"147":{"position":[[98,8]]},"153":{"position":[[41,8],[75,7],[226,7]]},"155":{"position":[[142,9]]},"157":{"position":[[120,8],[291,7],[380,9],[448,9],[769,8]]},"159":{"position":[[90,8],[262,7],[348,9],[456,8],[530,8],[554,8],[778,8]]},"162":{"position":[[213,8],[312,8]]},"164":{"position":[[62,9],[132,8],[252,8],[461,8],[496,8],[755,8],[771,7]]},"166":{"position":[[57,8],[117,8],[294,8],[591,7],[656,7],[720,8],[802,8]]},"170":{"position":[[202,7]]},"178":{"position":[[1196,7]]},"180":{"position":[[133,7],[170,7],[354,7],[449,7],[556,7]]},"182":{"position":[[137,8]]},"184":{"position":[[148,8]]},"186":{"position":[[262,7]]},"212":{"position":[[240,9]]},"222":{"position":[[127,8],[218,8],[460,8]]},"224":{"position":[[59,9]]},"228":{"position":[[229,7],[598,8]]},"238":{"position":[[332,9],[423,8],[450,7]]},"244":{"position":[[66,8],[150,8],[203,8]]},"246":{"position":[[317,9],[420,7],[632,9]]},"252":{"position":[[172,9],[290,7],[454,7],[490,7],[614,7]]},"254":{"position":[[124,9],[407,8],[550,8]]},"284":{"position":[[10,7],[151,8],[212,7],[283,8],[712,7],[764,8],[904,7],[1030,7],[1092,7],[1221,8],[1319,7],[1365,7],[1524,8],[1551,7],[1675,8],[1719,9]]},"290":{"position":[[506,7],[1201,7]]},"292":{"position":[[265,8],[454,8]]},"294":{"position":[[268,8],[423,8]]},"304":{"position":[[678,8]]},"320":{"position":[[98,8],[150,7],[227,8]]},"322":{"position":[[206,9],[257,8],[312,7]]},"324":{"position":[[157,8],[251,8],[343,9],[444,8],[574,8],[661,7],[769,7],[915,8],[974,8],[1081,8]]},"326":{"position":[[74,7],[460,8]]},"332":{"position":[[270,7],[323,8],[390,9]]},"334":{"position":[[94,9]]},"336":{"position":[[180,7]]},"340":{"position":[[33,9],[95,10],[467,7]]},"348":{"position":[[156,9],[219,8],[550,7],[619,9],[684,8],[866,10],[1020,9],[1387,7],[1497,8],[1586,7],[1696,8]]},"372":{"position":[[89,8],[193,9]]},"374":{"position":[[162,8]]},"376":{"position":[[72,8],[416,9]]},"378":{"position":[[42,8],[206,8],[403,8]]},"380":{"position":[[167,9],[275,8]]},"382":{"position":[[5,7],[51,8],[205,7],[397,7],[506,8]]},"386":{"position":[[170,9]]},"399":{"position":[[58,8],[146,7],[237,8]]},"401":{"position":[[48,7]]},"407":{"position":[[161,8],[271,7],[381,9],[599,8],[653,7],[779,8],[916,8],[950,7],[1031,8]]},"411":{"position":[[219,8],[428,8]]},"413":{"position":[[310,8],[452,7],[1426,8],[1533,8],[1803,8]]},"417":{"position":[[753,8],[814,9],[1250,8],[1542,9]]},"419":{"position":[[272,7],[371,8],[450,8],[535,8]]},"421":{"position":[[90,8],[200,8],[726,7],[830,8],[942,7],[1113,7]]},"445":{"position":[[289,9]]},"455":{"position":[[40,8],[98,7]]},"465":{"position":[[83,8]]},"473":{"position":[[54,8]]},"483":{"position":[[28,7],[97,7],[228,7]]},"493":{"position":[[115,7]]},"495":{"position":[[47,9],[87,8],[131,8]]},"497":{"position":[[189,8]]},"501":{"position":[[98,7]]},"505":{"position":[[144,8]]},"509":{"position":[[56,8],[123,8]]},"515":{"position":[[5,7],[38,8]]},"517":{"position":[[5,7],[181,7]]},"519":{"position":[[58,9]]},"523":{"position":[[384,7]]},"526":{"position":[[179,7],[196,7],[301,7],[579,9],[729,9]]},"528":{"position":[[72,7],[89,7],[194,7],[472,9],[622,9]]},"531":{"position":[[82,8],[119,7]]},"533":{"position":[[4,7],[68,7],[202,8],[226,7],[244,7],[677,7],[713,7]]},"535":{"position":[[69,7],[227,7],[325,7]]},"547":{"position":[[395,7],[722,8],[786,8]]},"551":{"position":[[74,8],[208,7],[267,8],[476,8]]},"553":{"position":[[172,7],[302,7],[413,8]]},"555":{"position":[[473,8]]},"557":{"position":[[304,9]]},"559":{"position":[[180,8]]},"561":{"position":[[77,7],[182,7],[262,7],[318,8],[416,7],[485,7],[558,8]]},"563":{"position":[[86,8],[166,8],[202,7],[339,8],[480,8],[586,7],[681,7],[779,7],[886,7],[1009,7]]},"565":{"position":[[17,7],[187,7],[391,7],[580,7],[683,7],[921,7],[1134,8],[1290,7],[1465,9],[1490,8],[1639,7],[1654,7],[1705,8],[1758,7],[1851,7],[1946,7],[2094,7]]},"567":{"position":[[73,7],[804,8],[855,9]]},"569":{"position":[[31,7],[167,7],[372,8],[783,7],[1062,8],[1207,8],[1518,7],[1554,7],[1599,9],[1683,9],[2179,7]]},"571":{"position":[[434,9]]},"585":{"position":[[863,8],[947,8],[1035,7]]},"589":{"position":[[53,8],[303,7],[316,7],[508,9]]},"593":{"position":[[377,8]]},"605":{"position":[[35,9],[183,9],[215,8]]},"607":{"position":[[121,7]]},"611":{"position":[[265,7],[347,8]]}}}],["message'",{"_index":1737,"t":{"348":{"position":[[750,9]]}}}],["message/payload",{"_index":1019,"t":{"157":{"position":[[540,15]]},"159":{"position":[[655,15]]}}}],["message/proto",{"_index":1395,"t":{"246":{"position":[[752,13]]}}}],["messageindex\\\"\\ndetail",{"_index":1964,"t":{"413":{"position":[[661,25]]}}}],["messageobj",{"_index":276,"t":{"26":{"position":[[334,10],[382,10]]}}}],["messages.map((messag",{"_index":671,"t":{"84":{"position":[[1222,23]]}}}],["messages.push(wakumessag",{"_index":1040,"t":{"164":{"position":[[303,27]]}}}],["messages/minut",{"_index":2331,"t":{"555":{"position":[[487,16]]}}}],["messages[messages.length",{"_index":1043,"t":{"164":{"position":[[642,24]]}}}],["messagespromis",{"_index":1026,"t":{"159":{"position":[[482,16]]}}}],["messagespromises.map(async",{"_index":1029,"t":{"159":{"position":[[584,26]]}}}],["messeng",{"_index":325,"t":{"32":{"position":[[5,11],[1033,11]]}}}],["meta",{"_index":1799,"t":{"382":{"position":[[238,4]]}}}],["metadata",{"_index":1119,"t":{"174":{"position":[[1074,9]]},"244":{"position":[[19,8]]},"515":{"position":[[110,8]]}}}],["metal",{"_index":1914,"t":{"411":{"position":[[944,6],[2016,6]]},"413":{"position":[[1074,6]]}}}],["method",{"_index":192,"t":{"14":{"position":[[444,7],[526,7]]},"42":{"position":[[1066,8],[1492,6]]},"46":{"position":[[56,6],[226,6]]},"74":{"position":[[63,8]]},"86":{"position":[[282,6]]},"101":{"position":[[221,7]]},"107":{"position":[[161,8],[270,6],[471,8]]},"111":{"position":[[1326,7]]},"113":{"position":[[1480,8]]},"115":{"position":[[352,7],[3129,7]]},"117":{"position":[[1060,8]]},"127":{"position":[[341,7]]},"151":{"position":[[28,6]]},"157":{"position":[[73,6],[310,8]]},"159":{"position":[[281,8]]},"174":{"position":[[460,6]]},"198":{"position":[[1589,7]]},"210":{"position":[[776,7],[969,7]]},"230":{"position":[[66,8],[265,6]]},"232":{"position":[[86,8]]},"234":{"position":[[471,6]]},"236":{"position":[[660,6]]},"270":{"position":[[274,7]]},"288":{"position":[[32,6]]},"298":{"position":[[287,6]]},"348":{"position":[[383,6],[577,7]]},"386":{"position":[[131,7],[377,6]]},"453":{"position":[[109,7]]},"481":{"position":[[117,6]]},"483":{"position":[[202,7]]},"517":{"position":[[169,7]]},"583":{"position":[[98,7]]},"599":{"position":[[17,7]]},"633":{"position":[[1602,7]]}}}],["metric",{"_index":1204,"t":{"188":{"position":[[31,7],[63,7],[90,7],[148,7],[163,7],[215,7],[230,7],[258,7]]},"212":{"position":[[258,7]]},"224":{"position":[[85,7]]},"226":{"position":[[75,7]]},"236":{"position":[[171,7]]},"417":{"position":[[1948,6]]},"526":{"position":[[37,7]]},"559":{"position":[[151,7]]},"609":{"position":[[52,7]]}}}],["mgs/epoch",{"_index":2025,"t":{"421":{"position":[[371,9]]}}}],["microsoft",{"_index":1456,"t":{"268":{"position":[[910,9]]}}}],["migrat",{"_index":1182,"t":{"180":{"position":[[567,9],[598,9]]},"302":{"position":[[112,9]]},"304":{"position":[[590,7],[1305,9]]},"346":{"position":[[407,7]]},"350":{"position":[[15,9]]},"352":{"position":[[0,9]]}}}],["million",{"_index":1891,"t":{"409":{"position":[[233,7]]}}}],["min",{"_index":1256,"t":{"198":{"position":[[1477,4]]}}}],["mind",{"_index":748,"t":{"92":{"position":[[185,5]]},"248":{"position":[[121,5]]}}}],["mine",{"_index":2457,"t":{"581":{"position":[[133,5]]}}}],["miner",{"_index":2456,"t":{"581":{"position":[[93,6],[168,6]]},"587":{"position":[[459,6]]}}}],["mini",{"_index":2316,"t":{"551":{"position":[[381,4]]}}}],["minim",{"_index":73,"t":{"6":{"position":[[384,9]]},"571":{"position":[[459,7]]},"645":{"position":[[545,7]]}}}],["minimum",{"_index":875,"t":{"119":{"position":[[246,7]]}}}],["minor",{"_index":2347,"t":{"559":{"position":[[159,5]]},"567":{"position":[[771,5]]}}}],["minu",{"_index":2246,"t":{"526":{"position":[[146,6]]},"528":{"position":[[39,6]]}}}],["minut",{"_index":1187,"t":{"182":{"position":[[182,7]]},"557":{"position":[[422,7]]}}}],["misbehav",{"_index":2440,"t":{"575":{"position":[[274,11]]}}}],["misbehaviour",{"_index":2469,"t":{"581":{"position":[[532,13]]}}}],["miss",{"_index":1009,"t":{"155":{"position":[[135,6]]},"378":{"position":[[199,6]]},"509":{"position":[[116,6]]},"575":{"position":[[580,4]]}}}],["mitig",{"_index":1813,"t":{"388":{"position":[[219,10]]}}}],["mix",{"_index":2261,"t":{"533":{"position":[[368,5],[773,5]]}}}],["mkdir",{"_index":924,"t":{"121":{"position":[[716,5]]}}}],["mobil",{"_index":1644,"t":{"318":{"position":[[315,6]]},"449":{"position":[[1751,7]]},"475":{"position":[[192,6]]}}}],["model",{"_index":1678,"t":{"328":{"position":[[140,6]]},"388":{"position":[[509,5]]},"599":{"position":[[100,5]]}}}],["modern",{"_index":515,"t":{"62":{"position":[[122,6]]}}}],["modif",{"_index":2216,"t":{"449":{"position":[[2957,14]]},"567":{"position":[[777,12]]}}}],["modifi",{"_index":512,"t":{"62":{"position":[[46,6]]},"84":{"position":[[77,6],[1888,6]]},"86":{"position":[[48,6]]},"115":{"position":[[2678,6]]},"298":{"position":[[478,9]]},"306":{"position":[[430,9]]},"439":{"position":[[7,6]]},"567":{"position":[[127,8]]},"621":{"position":[[168,6]]},"629":{"position":[[7,6]]},"635":{"position":[[386,7]]}}}],["modular",{"_index":1640,"t":{"318":{"position":[[81,7]]},"370":{"position":[[13,7]]},"469":{"position":[[12,7]]},"523":{"position":[[462,7]]},"585":{"position":[[49,7]]}}}],["monetari",{"_index":2435,"t":{"575":{"position":[[85,8],[151,8],[192,8]]},"579":{"position":[[337,8]]},"581":{"position":[[54,8],[297,8],[411,8]]},"587":{"position":[[221,8],[289,8],[674,8],[725,8]]}}}],["money",{"_index":2522,"t":{"601":{"position":[[645,6]]}}}],["monitor",{"_index":1292,"t":{"212":{"position":[[317,7]]},"214":{"position":[[76,8]]},"226":{"position":[[46,10]]},"256":{"position":[[132,10]]},"266":{"position":[[93,7]]}}}],["more",{"_index":193,"t":{"14":{"position":[[521,4]]},"42":{"position":[[500,5]]},"90":{"position":[[1600,5]]},"103":{"position":[[91,4]]},"127":{"position":[[188,4]]},"159":{"position":[[45,4]]},"240":{"position":[[449,5]]},"244":{"position":[[314,5]]},"254":{"position":[[459,4]]},"264":{"position":[[726,4]]},"272":{"position":[[85,4]]},"280":{"position":[[85,4]]},"318":{"position":[[361,5]]},"340":{"position":[[539,4]]},"342":{"position":[[420,4]]},"348":{"position":[[1492,4]]},"374":{"position":[[320,4]]},"386":{"position":[[290,4]]},"388":{"position":[[722,4],[810,4]]},"401":{"position":[[295,4]]},"407":{"position":[[1162,4]]},"411":{"position":[[278,4],[1438,4],[2196,4],[2535,4],[2811,4]]},"413":{"position":[[1634,4],[1700,4],[1911,4]]},"449":{"position":[[370,4]]},"493":{"position":[[178,5]]},"526":{"position":[[775,4]]},"528":{"position":[[668,4]]},"565":{"position":[[289,4],[1503,4],[1609,4]]},"569":{"position":[[745,4],[981,4],[2373,4]]},"587":{"position":[[561,4]]},"597":{"position":[[773,4],[807,4],[856,4],[1129,4]]},"599":{"position":[[4,4]]},"601":{"position":[[837,4]]},"603":{"position":[[9,4]]}}}],["moreov",{"_index":2452,"t":{"579":{"position":[[253,9]]},"597":{"position":[[1095,9]]}}}],["mostli",{"_index":1653,"t":{"322":{"position":[[116,6]]},"394":{"position":[[235,6]]},"449":{"position":[[935,6]]},"475":{"position":[[0,6]]}}}],["motiv",{"_index":1452,"t":{"266":{"position":[[246,12]]}}}],["mount",{"_index":1849,"t":{"401":{"position":[[226,7]]},"407":{"position":[[96,8]]}}}],["move",{"_index":1620,"t":{"314":{"position":[[16,4]]}}}],["mpb",{"_index":2199,"t":{"449":{"position":[[2025,5],[2461,5]]}}}],["mpt=ipt_1+ipt_2+ipt_3+ipt_4",{"_index":2372,"t":{"565":{"position":[[1971,27]]}}}],["ms",{"_index":2351,"t":{"561":{"position":[[383,3]]},"569":{"position":[[1113,3],[1233,3],[1318,3]]}}}],["msg",{"_index":1030,"t":{"159":{"position":[[626,3]]}}}],["msg/",{"_index":2254,"t":{"531":{"position":[[226,5]]}}}],["msg/10",{"_index":2257,"t":{"531":{"position":[[246,7]]}}}],["msg/second",{"_index":2040,"t":{"421":{"position":[[1009,10],[1237,10]]}}}],["msg1",{"_index":1661,"t":{"324":{"position":[[382,4],[638,4],[752,5],[859,4],[1054,4]]}}}],["msgs/epoch",{"_index":2027,"t":{"421":{"position":[[394,10],[417,10]]}}}],["msgs/sec",{"_index":1878,"t":{"407":{"position":[[1138,9],[1224,8]]}}}],["mu",{"_index":2399,"t":{"569":{"position":[[304,2]]}}}],["much",{"_index":1879,"t":{"407":{"position":[[1157,4]]},"411":{"position":[[3009,4]]},"419":{"position":[[324,4]]},"553":{"position":[[385,4]]},"579":{"position":[[231,4]]}}}],["multi",{"_index":345,"t":{"32":{"position":[[556,5],[587,5]]},"48":{"position":[[1611,5]]}}}],["multiaddr",{"_index":451,"t":{"48":{"position":[[31,9],[290,13]]},"66":{"position":[[209,9]]},"70":{"position":[[114,9]]},"90":{"position":[[1103,9]]},"139":{"position":[[213,9],[247,9]]},"145":{"position":[[200,9],[340,9]]},"151":{"position":[[539,9]]},"174":{"position":[[559,9],[651,9]]},"176":{"position":[[89,10],[182,10]]},"178":{"position":[[1287,9]]},"182":{"position":[[95,9]]},"184":{"position":[[104,9]]},"194":{"position":[[139,9]]},"282":{"position":[[167,10],[550,9]]},"284":{"position":[[1609,10]]},"286":{"position":[[71,11]]},"292":{"position":[[332,10]]},"294":{"position":[[340,10]]},"296":{"position":[[140,9],[163,9],[206,10],[243,9],[317,9],[436,9]]},"298":{"position":[[257,10]]},"312":{"position":[[68,9],[288,11]]}}}],["multiaddr=[multiaddr",{"_index":1567,"t":{"296":{"position":[[271,20]]}}}],["multiaddress",{"_index":1103,"t":{"174":{"position":[[578,14],[695,14]]},"180":{"position":[[93,12]]}}}],["multimedia",{"_index":369,"t":{"32":{"position":[[1137,10]]}}}],["multipl",{"_index":385,"t":{"38":{"position":[[23,8]]},"137":{"position":[[160,8]]},"139":{"position":[[117,8]]},"141":{"position":[[495,8]]},"143":{"position":[[249,8]]},"198":{"position":[[650,8]]},"252":{"position":[[191,8]]},"254":{"position":[[377,8]]},"268":{"position":[[62,8]]},"272":{"position":[[112,8]]},"280":{"position":[[112,8]]},"314":{"position":[[284,8]]},"322":{"position":[[145,8]]},"326":{"position":[[937,8]]},"407":{"position":[[355,8]]},"445":{"position":[[380,8]]},"555":{"position":[[454,8]]},"563":{"position":[[605,8]]},"565":{"position":[[599,8]]},"589":{"position":[[213,8]]},"593":{"position":[[317,8]]},"605":{"position":[[72,8]]}}}],["multipli",{"_index":2002,"t":{"417":{"position":[[1270,10]]}}}],["mvp",{"_index":2683,"t":{"645":{"position":[[38,3],[334,4]]}}}],["my_private_key.pem",{"_index":1519,"t":{"286":{"position":[[683,18],[747,18]]}}}],["n",{"_index":1331,"t":{"228":{"position":[[483,1]]},"407":{"position":[[105,3]]},"413":{"position":[[951,1]]},"601":{"position":[[228,2],[394,2]]}}}],["n1",{"_index":2370,"t":{"565":{"position":[[1891,2]]}}}],["n5",{"_index":2371,"t":{"565":{"position":[[1909,2]]}}}],["n_1...n_i",{"_index":2355,"t":{"563":{"position":[[249,9]]}}}],["name",{"_index":493,"t":{"50":{"position":[[446,7]]},"64":{"position":[[745,5]]},"141":{"position":[[275,4],[403,4],[431,4],[508,4],[616,5],[640,4],[657,4],[708,4],[1105,4],[1143,4]]},"170":{"position":[[0,4]]},"172":{"position":[[0,4]]},"174":{"position":[[0,4]]},"176":{"position":[[0,4],[110,4],[149,4],[242,4],[258,4]]},"178":{"position":[[0,4]]},"180":{"position":[[0,4]]},"182":{"position":[[0,4]]},"184":{"position":[[0,4]]},"186":{"position":[[0,4]]},"188":{"position":[[0,4]]},"190":{"position":[[0,4],[173,4],[212,4]]},"192":{"position":[[0,4]]},"194":{"position":[[0,4]]},"196":{"position":[[0,4]]},"198":{"position":[[0,4]]},"232":{"position":[[175,5],[301,4]]},"234":{"position":[[78,4]]},"246":{"position":[[125,5],[150,4],[341,5],[360,4]]},"282":{"position":[[34,4],[112,4],[248,5],[287,4],[444,4],[584,5],[744,4],[851,4],[912,4]]},"286":{"position":[[663,4]]},"296":{"position":[[385,4]]},"298":{"position":[[144,5],[341,4],[499,5],[614,5],[684,5]]},"304":{"position":[[395,5]]},"320":{"position":[[22,4]]},"362":{"position":[[0,5]]},"417":{"position":[[119,4]]},"461":{"position":[[116,5]]}}}],["name=[domain",{"_index":1476,"t":{"282":{"position":[[235,12]]}}}],["name=nwakunode.com",{"_index":1477,"t":{"282":{"position":[[371,18]]}}}],["name}/{encod",{"_index":1386,"t":{"246":{"position":[[96,16]]}}}],["name}/{version}/{cont",{"_index":1385,"t":{"246":{"position":[[65,24]]}}}],["nascent",{"_index":2662,"t":{"637":{"position":[[23,7]]}}}],["nat",{"_index":1095,"t":{"174":{"position":[[444,3]]},"264":{"position":[[597,4]]},"296":{"position":[[365,3]]}}}],["nat=ani",{"_index":1439,"t":{"264":{"position":[[604,7]]}}}],["nat=extip:[your",{"_index":1438,"t":{"264":{"position":[[544,15]]}}}],["nativ",{"_index":8,"t":{"2":{"position":[[84,7],[125,6]]},"64":{"position":[[15,6]]},"78":{"position":[[84,7],[125,6]]},"581":{"position":[[47,6],[464,6]]},"587":{"position":[[29,6]]}}}],["natur",{"_index":773,"t":{"101":{"position":[[307,7]]},"633":{"position":[[908,6]]}}}],["nearest",{"_index":2139,"t":{"447":{"position":[[256,7]]}}}],["necessari",{"_index":1301,"t":{"220":{"position":[[251,9]]},"587":{"position":[[814,9]]},"645":{"position":[[436,9],[574,9]]}}}],["need",{"_index":194,"t":{"14":{"position":[[561,5]]},"30":{"position":[[116,4]]},"48":{"position":[[1237,7]]},"64":{"position":[[956,4]]},"86":{"position":[[40,4]]},"88":{"position":[[43,4]]},"90":{"position":[[38,4]]},"95":{"position":[[229,4]]},"117":{"position":[[332,4]]},"121":{"position":[[20,4]]},"222":{"position":[[495,4]]},"254":{"position":[[568,6]]},"266":{"position":[[239,6]]},"298":{"position":[[521,4]]},"304":{"position":[[169,4],[310,4],[629,4]]},"368":{"position":[[527,4]]},"399":{"position":[[435,6]]},"417":{"position":[[1648,5]]},"419":{"position":[[592,5]]},"427":{"position":[[306,4],[403,6]]},"445":{"position":[[243,4]]},"551":{"position":[[284,4]]},"557":{"position":[[544,4]]},"565":{"position":[[2136,4],[2199,4]]},"571":{"position":[[140,5]]},"639":{"position":[[219,5],[424,6]]}}}],["neglig",{"_index":2341,"t":{"557":{"position":[[376,11]]},"625":{"position":[[54,11]]}}}],["negoti",{"_index":1709,"t":{"336":{"position":[[325,11]]},"591":{"position":[[127,11],[489,12]]},"593":{"position":[[211,11],[287,10]]},"595":{"position":[[217,11]]}}}],["neighbor",{"_index":2444,"t":{"575":{"position":[[528,9],[672,10]]}}}],["neighbour",{"_index":1001,"t":{"145":{"position":[[948,12]]}}}],["neighbourhood",{"_index":1617,"t":{"310":{"position":[[365,14]]}}}],["netflix",{"_index":2144,"t":{"447":{"position":[[437,7]]},"449":{"position":[[2119,7]]}}}],["network",{"_index":146,"t":{"8":{"position":[[1472,8],[1598,7]]},"14":{"position":[[85,8],[631,7]]},"16":{"position":[[36,7]]},"18":{"position":[[92,8]]},"20":{"position":[[599,7],[682,7],[748,7],[861,7]]},"24":{"position":[[31,7]]},"26":{"position":[[841,7],[907,7],[1020,7],[1338,7]]},"30":{"position":[[31,7],[320,8]]},"32":{"position":[[983,7]]},"36":{"position":[[84,8]]},"40":{"position":[[110,7]]},"42":{"position":[[900,8],[1422,7],[2495,8]]},"44":{"position":[[113,7],[371,8],[497,7]]},"64":{"position":[[154,7]]},"70":{"position":[[22,10]]},"76":{"position":[[606,7]]},"86":{"position":[[153,7],[671,7]]},"90":{"position":[[974,8],[1253,8]]},"105":{"position":[[99,7]]},"107":{"position":[[314,8]]},"133":{"position":[[71,8]]},"135":{"position":[[1060,7]]},"137":{"position":[[108,8]]},"145":{"position":[[925,7],[1018,7]]},"149":{"position":[[85,8]]},"151":{"position":[[410,8],[689,8]]},"174":{"position":[[199,7],[613,8]]},"178":{"position":[[1619,7],[1651,8]]},"192":{"position":[[250,8]]},"208":{"position":[[831,8]]},"212":{"position":[[212,7]]},"222":{"position":[[50,8],[476,8]]},"228":{"position":[[497,7],[700,8]]},"240":{"position":[[78,8],[336,8]]},"252":{"position":[[40,7]]},"264":{"position":[[883,7]]},"266":{"position":[[387,8]]},"272":{"position":[[17,8]]},"276":{"position":[[454,8]]},"280":{"position":[[17,8]]},"284":{"position":[[44,7]]},"290":{"position":[[61,8]]},"298":{"position":[[354,8]]},"310":{"position":[[222,8],[293,7]]},"312":{"position":[[426,8]]},"314":{"position":[[43,7],[150,7]]},"316":{"position":[[87,7]]},"318":{"position":[[67,8]]},"320":{"position":[[60,8],[167,8],[247,8]]},"324":{"position":[[91,8],[171,7]]},"326":{"position":[[197,8],[446,7]]},"336":{"position":[[353,8]]},"340":{"position":[[9,7],[43,7],[559,8],[577,8]]},"342":{"position":[[82,8],[200,7],[351,8],[467,8]]},"344":{"position":[[548,8]]},"346":{"position":[[108,8],[190,7],[434,7]]},"348":{"position":[[427,8],[704,8],[1348,7]]},"352":{"position":[[43,7],[73,7]]},"354":{"position":[[21,7]]},"356":{"position":[[6,7],[77,7],[416,7]]},"368":{"position":[[243,7],[871,7]]},"372":{"position":[[327,7]]},"374":{"position":[[202,8],[277,7]]},"376":{"position":[[197,8]]},"378":{"position":[[66,8],[435,8]]},"380":{"position":[[297,8],[408,7]]},"382":{"position":[[72,8],[477,7]]},"388":{"position":[[671,7]]},"392":{"position":[[215,8],[298,8]]},"415":{"position":[[35,7]]},"417":{"position":[[1171,8],[1617,7]]},"419":{"position":[[104,7],[646,8]]},"421":{"position":[[233,7],[601,7],[983,8]]},"449":{"position":[[415,7],[443,7],[738,7],[1139,7]]},"453":{"position":[[63,8],[162,8]]},"459":{"position":[[161,7]]},"463":{"position":[[136,8]]},"465":{"position":[[206,8]]},"467":{"position":[[94,8]]},"469":{"position":[[20,7],[141,7]]},"471":{"position":[[101,8]]},"473":{"position":[[76,7]]},"475":{"position":[[153,8]]},"477":{"position":[[83,7]]},"485":{"position":[[58,7]]},"487":{"position":[[89,8]]},"489":{"position":[[122,8]]},"491":{"position":[[54,7]]},"493":{"position":[[64,7]]},"501":{"position":[[190,7]]},"505":{"position":[[201,7]]},"509":{"position":[[72,8],[157,8]]},"511":{"position":[[17,7]]},"513":{"position":[[258,8]]},"515":{"position":[[59,8]]},"517":{"position":[[114,8]]},"519":{"position":[[9,7],[68,7]]},"523":{"position":[[541,7]]},"526":{"position":[[512,7]]},"528":{"position":[[405,7]]},"531":{"position":[[65,7]]},"533":{"position":[[132,7],[289,7]]},"535":{"position":[[44,7],[147,7]]},"538":{"position":[[143,8],[170,7]]},"547":{"position":[[280,7]]},"549":{"position":[[117,7]]},"553":{"position":[[561,7]]},"555":{"position":[[441,7],[600,7]]},"561":{"position":[[102,7],[141,7]]},"565":{"position":[[1066,7]]},"567":{"position":[[481,8]]},"569":{"position":[[109,7]]},"571":{"position":[[68,7]]},"577":{"position":[[40,8]]},"579":{"position":[[23,8]]},"581":{"position":[[80,8]]},"583":{"position":[[35,8]]},"585":{"position":[[125,8],[1056,8]]},"587":{"position":[[106,9],[550,7],[837,7]]},"599":{"position":[[295,7]]},"609":{"position":[[167,8]]}}}],["networkconfig",{"_index":204,"t":{"14":{"position":[[870,14]]},"16":{"position":[[185,14]]},"20":{"position":[[769,13],[958,14],[1021,15]]},"26":{"position":[[928,13]]},"354":{"position":[[83,13]]},"358":{"position":[[231,14]]},"360":{"position":[[259,14]]},"362":{"position":[[373,14],[547,14]]},"364":{"position":[[102,13],[166,13],[233,13],[704,14]]},"366":{"position":[[37,13],[60,13]]},"368":{"position":[[844,13]]}}}],["never",{"_index":2518,"t":{"601":{"position":[[372,5]]}}}],["new",{"_index":157,"t":{"10":{"position":[[83,5],[202,3]]},"22":{"position":[[182,3]]},"24":{"position":[[79,3],[149,3]]},"26":{"position":[[706,3]]},"32":{"position":[[1122,4]]},"74":{"position":[[13,3]]},"84":{"position":[[919,3]]},"86":{"position":[[492,3]]},"90":{"position":[[563,3]]},"135":{"position":[[397,3]]},"166":{"position":[[188,3],[218,3]]},"238":{"position":[[127,3]]},"264":{"position":[[15,3]]},"286":{"position":[[15,3]]},"304":{"position":[[79,3],[1182,3]]},"324":{"position":[[911,3]]},"354":{"position":[[79,3]]},"368":{"position":[[146,3],[361,3]]},"439":{"position":[[148,3]]},"538":{"position":[[52,3]]},"547":{"position":[[613,3],[731,3],[825,3]]},"601":{"position":[[583,3],[764,3]]},"629":{"position":[[174,3]]},"647":{"position":[[206,3],[340,3],[400,3]]}}}],["newer",{"_index":68,"t":{"6":{"position":[[350,5]]},"302":{"position":[[159,5]]}}}],["newli",{"_index":731,"t":{"90":{"position":[[186,5]]},"581":{"position":[[127,5]]}}}],["newseq[protectedshard](0",{"_index":1067,"t":{"170":{"position":[[134,25]]}}}],["next",{"_index":113,"t":{"8":{"position":[[791,4]]},"40":{"position":[[194,4]]},"72":{"position":[[53,4]]},"74":{"position":[[164,5]]},"80":{"position":[[286,5]]},"82":{"position":[[579,5]]},"84":{"position":[[1882,5]]},"135":{"position":[[461,5]]},"164":{"position":[[169,4],[742,4]]},"401":{"position":[[16,4]]},"407":{"position":[[323,4]]},"411":{"position":[[364,4],[815,4],[1887,4]]}}}],["nft",{"_index":333,"t":{"32":{"position":[[238,3],[285,3]]}}}],["nightli",{"_index":1454,"t":{"268":{"position":[[582,7],[667,7]]}}}],["nim",{"_index":1450,"t":{"266":{"position":[[34,3]]},"399":{"position":[[4,3]]},"413":{"position":[[219,3],[1121,3]]}}}],["node",{"_index":100,"t":{"8":{"position":[[237,5],[386,5],[855,5],[908,4],[1317,4],[1367,4],[1426,5],[1496,5],[1615,5]]},"12":{"position":[[94,4]]},"14":{"position":[[53,4],[167,4],[178,4],[301,4],[390,4],[481,5],[547,6],[556,4],[771,4],[815,4]]},"16":{"position":[[98,4],[130,4]]},"18":{"position":[[53,4]]},"36":{"position":[[70,5],[196,4],[237,5],[284,4],[343,5]]},"40":{"position":[[123,4]]},"42":{"position":[[1442,6],[1583,5],[1653,5],[2722,5],[2753,4]]},"44":{"position":[[58,4],[180,4],[214,4],[266,4],[325,5],[395,5],[514,5]]},"46":{"position":[[193,4],[239,4]]},"48":{"position":[[58,4],[205,4],[235,4],[332,4],[718,4],[752,4],[851,4],[1114,4],[1157,5],[1254,4],[1462,5],[1645,4],[1658,4]]},"50":{"position":[[15,4],[225,4],[388,4],[464,4],[561,4],[592,4],[735,4],[873,4],[904,4]]},"52":{"position":[[28,4],[494,4],[591,4],[639,4]]},"54":{"position":[[51,4],[174,4],[303,4]]},"64":{"position":[[1069,4]]},"66":{"position":[[195,4]]},"82":{"position":[[303,4],[443,4],[610,4],[765,4],[778,5],[819,6],[847,4],[901,4],[952,4]]},"84":{"position":[[615,4],[628,5]]},"86":{"position":[[294,4],[343,5]]},"88":{"position":[[362,5]]},"90":{"position":[[401,5],[521,5],[887,5],[937,4],[962,4],[989,4],[1137,4],[1198,4]]},"107":{"position":[[213,4],[221,4]]},"119":{"position":[[52,4]]},"127":{"position":[[255,4],[322,4]]},"129":{"position":[[137,4]]},"131":{"position":[[77,4]]},"135":{"position":[[1255,4]]},"137":{"position":[[56,4],[148,4]]},"139":{"position":[[40,4],[290,4]]},"141":{"position":[[35,5],[126,4],[185,4],[828,4],[879,4]]},"143":{"position":[[28,5],[115,4],[160,5],[205,5],[465,4],[863,4]]},"145":{"position":[[35,5],[126,4],[183,4],[224,4],[405,5],[459,5],[476,5],[555,4],[640,4],[961,6]]},"147":{"position":[[53,4]]},"149":{"position":[[53,4],[167,4],[178,4]]},"151":{"position":[[51,4],[290,5],[352,4],[398,4],[425,4],[573,4],[634,4]]},"155":{"position":[[100,5],[177,5]]},"157":{"position":[[99,5]]},"159":{"position":[[120,5]]},"166":{"position":[[822,4]]},"168":{"position":[[23,4]]},"174":{"position":[[64,4],[84,4],[150,4],[219,4]]},"186":{"position":[[510,4]]},"190":{"position":[[70,5],[114,4]]},"192":{"position":[[73,5],[83,4],[145,4],[180,4],[216,5],[419,5],[510,5]]},"194":{"position":[[129,4]]},"198":{"position":[[1504,4],[1570,4]]},"200":{"position":[[23,5],[160,4],[204,4]]},"202":{"position":[[144,5]]},"204":{"position":[[8,4],[66,4]]},"206":{"position":[[162,5],[410,4]]},"208":{"position":[[168,5],[406,4],[720,5]]},"210":{"position":[[21,5],[124,5],[179,4],[314,5],[349,4],[434,5],[509,5],[553,4],[650,4],[688,4],[808,6],[839,5],[950,4],[1052,4],[1087,4],[1134,4],[1259,4],[1349,6],[1429,5],[1577,5],[1647,4],[1754,4],[1810,4]]},"212":{"position":[[104,4],[198,4],[299,4],[329,5]]},"214":{"position":[[23,4],[105,5]]},"216":{"position":[[204,4],[289,5]]},"222":{"position":[[114,4]]},"224":{"position":[[32,5],[220,4]]},"226":{"position":[[70,4]]},"228":{"position":[[11,4],[684,4],[922,4],[981,5],[1071,4],[1134,4]]},"230":{"position":[[5,5]]},"232":{"position":[[0,4],[234,4]]},"234":{"position":[[0,5],[316,4],[344,4]]},"236":{"position":[[0,5]]},"238":{"position":[[91,4],[131,4],[598,4],[645,4]]},"240":{"position":[[232,6],[305,5],[374,5]]},"242":{"position":[[72,4]]},"256":{"position":[[60,4]]},"258":{"position":[[149,4],[234,5]]},"264":{"position":[[230,4],[866,4],[1214,4],[1273,5],[1373,4],[1420,4]]},"266":{"position":[[64,5],[124,5],[370,4],[434,4],[500,4],[585,5]]},"268":{"position":[[9,5],[93,5],[177,4],[303,4],[387,4],[555,4],[755,4]]},"270":{"position":[[230,5],[255,4],[286,4]]},"272":{"position":[[26,5],[211,5],[333,5],[533,5],[572,4],[657,4]]},"274":{"position":[[38,4],[86,4],[117,4]]},"276":{"position":[[39,4],[63,4],[204,4],[261,4],[320,5],[437,4],[482,4]]},"278":{"position":[[56,4]]},"280":{"position":[[26,5]]},"282":{"position":[[85,4],[333,5],[398,5],[424,5],[494,5],[926,5]]},"284":{"position":[[268,4],[869,4],[1163,4],[1489,4],[1650,4]]},"286":{"position":[[0,5],[1010,4]]},"288":{"position":[[47,5],[221,4],[416,4],[841,4],[1001,4],[1375,5]]},"290":{"position":[[47,4],[176,4],[998,4],[1145,4]]},"292":{"position":[[228,4],[414,4]]},"294":{"position":[[229,4],[381,4]]},"298":{"position":[[39,4],[208,4],[582,5],[752,5]]},"300":{"position":[[151,4],[301,4]]},"302":{"position":[[82,5]]},"304":{"position":[[241,4],[898,4],[1034,5],[1098,4]]},"306":{"position":[[58,4],[170,5],[254,4],[328,5],[411,4]]},"308":{"position":[[61,4],[122,5]]},"310":{"position":[[171,5],[205,5],[301,5],[451,5],[554,6]]},"312":{"position":[[383,6]]},"314":{"position":[[345,6],[416,5],[457,5],[524,6],[608,5]]},"318":{"position":[[50,5]]},"322":{"position":[[336,5]]},"324":{"position":[[287,4],[353,4],[421,4],[522,4],[621,4],[682,4],[692,4],[721,4],[729,4],[807,5],[832,4],[840,4],[867,4],[941,4],[1025,4],[1033,4]]},"326":{"position":[[25,5],[284,4],[736,4]]},"338":{"position":[[164,5],[398,4],[492,4],[528,4]]},"340":{"position":[[439,6]]},"342":{"position":[[330,5],[425,4]]},"344":{"position":[[111,4],[166,4]]},"346":{"position":[[91,4],[133,4]]},"348":{"position":[[145,5],[326,4],[334,4],[1442,5],[1747,5]]},"354":{"position":[[49,4]]},"356":{"position":[[62,5]]},"372":{"position":[[355,5]]},"376":{"position":[[29,5]]},"378":{"position":[[294,4]]},"380":{"position":[[46,5]]},"388":{"position":[[620,4]]},"392":{"position":[[46,6],[261,4]]},"399":{"position":[[13,5],[118,5],[276,5]]},"401":{"position":[[264,4]]},"407":{"position":[[38,4],[109,5],[140,5],[209,5],[364,5],[758,5],[1115,4],[1190,4],[1488,4]]},"409":{"position":[[102,4],[163,4],[265,4],[329,6],[347,4],[493,5],[530,5],[706,4]]},"411":{"position":[[102,4],[684,5],[1234,4]]},"413":{"position":[[100,5],[228,5],[1130,5],[1705,6]]},"417":{"position":[[327,5],[380,4],[707,4],[1154,5],[1329,4],[1888,4]]},"443":{"position":[[154,5]]},"445":{"position":[[69,4],[312,4],[536,5],[834,5],[881,4]]},"449":{"position":[[400,6],[591,5],[642,5],[1197,4],[1501,4],[1534,5],[1598,5]]},"453":{"position":[[46,4]]},"457":{"position":[[124,6]]},"461":{"position":[[146,4]]},"463":{"position":[[9,4],[77,6],[191,4]]},"465":{"position":[[40,5]]},"471":{"position":[[8,4],[75,5]]},"473":{"position":[[40,5]]},"477":{"position":[[2,4]]},"479":{"position":[[2,4],[141,5]]},"485":{"position":[[23,5]]},"487":{"position":[[25,4]]},"489":{"position":[[63,5],[109,5]]},"491":{"position":[[37,4]]},"493":{"position":[[42,5]]},"501":{"position":[[218,5]]},"513":{"position":[[168,4]]},"526":{"position":[[275,6],[333,6],[380,6],[399,4],[549,6]]},"528":{"position":[[168,6],[226,6],[273,6],[292,4],[442,6]]},"531":{"position":[[16,4],[54,4]]},"533":{"position":[[89,6],[343,5],[386,6],[417,6],[489,5],[545,6],[561,5],[596,5],[757,6],[784,6],[830,6]]},"535":{"position":[[59,5],[165,5]]},"547":{"position":[[334,6]]},"549":{"position":[[134,5]]},"551":{"position":[[246,4]]},"553":{"position":[[459,5]]},"555":{"position":[[387,6],[588,4],[651,6]]},"559":{"position":[[25,5]]},"561":{"position":[[43,5]]},"563":{"position":[[148,5],[243,5],[325,4],[441,5],[542,5],[640,6],[760,4],[804,4]]},"565":{"position":[[220,6],[321,5],[337,5],[429,4],[522,5],[780,5],[865,5],[953,5],[1084,5],[1115,4],[1175,6],[1217,5],[1392,6],[1535,5],[1689,4],[1886,4],[2057,4]]},"567":{"position":[[720,5]]},"569":{"position":[[581,4],[633,5],[911,4],[1346,5],[1477,4],[1730,6],[1933,4],[2096,4]]},"571":{"position":[[106,5],[199,4]]},"575":{"position":[[172,4],[217,5],[516,5],[574,5],[645,4],[699,4]]},"585":{"position":[[402,4],[485,4],[591,5],[621,5],[667,4],[683,4]]}}}],["node'",{"_index":1129,"t":{"176":{"position":[[280,6]]},"210":{"position":[[1606,6],[1705,6]]},"274":{"position":[[604,6]]},"282":{"position":[[141,6],[771,6]]},"338":{"position":[[425,6]]},"388":{"position":[[80,6]]},"491":{"position":[[107,6]]},"575":{"position":[[309,6],[384,6]]},"587":{"position":[[367,6]]}}}],["node.dial(multiaddr",{"_index":478,"t":{"48":{"position":[[1370,22]]}}}],["node.filter.createsubscript",{"_index":281,"t":{"26":{"position":[[533,32]]},"135":{"position":[[224,32]]}}}],["node.filter.createsubscription(networkconfig",{"_index":286,"t":{"26":{"position":[[1062,46]]}}}],["node.lightpush.send(eciesencod",{"_index":829,"t":{"115":{"position":[[1952,33]]}}}],["node.lightpush.send(encod",{"_index":268,"t":{"24":{"position":[[430,28]]},"111":{"position":[[716,28]]},"113":{"position":[[867,28]]}}}],["node.lightpush.send(symmetricencod",{"_index":827,"t":{"115":{"position":[[1838,37]]}}}],["node.start",{"_index":186,"t":{"14":{"position":[[242,13]]},"149":{"position":[[242,13]]}}}],["node.stop",{"_index":188,"t":{"14":{"position":[[315,12]]}}}],["node.store.querygenerator([decod",{"_index":1025,"t":{"159":{"position":[[403,37]]},"162":{"position":[[520,35]]},"166":{"position":[[495,35]]}}}],["node.store.querywithorderedcallback([decod",{"_index":795,"t":{"111":{"position":[[1189,46]]},"113":{"position":[[1349,46]]},"157":{"position":[[635,46]]},"162":{"position":[[434,46]]},"164":{"position":[[543,46],[833,46]]},"166":{"position":[[409,46]]}}}],["node.waitforp",{"_index":212,"t":{"18":{"position":[[8,19],[148,20]]},"54":{"position":[[238,20]]},"151":{"position":[[8,19]]}}}],["node.waitforpeers([protocols.lightpush",{"_index":217,"t":{"18":{"position":[[370,39]]}}}],["node.waitforpeers([protocols.stor",{"_index":1004,"t":{"151":{"position":[[171,37]]}}}],["node=/ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamlce6zvqcs6kmqqrbbhyojjfyzgr1q3thtsbykzibqkfr",{"_index":998,"t":{"145":{"position":[[751,85]]}}}],["node=[discv5",{"_index":990,"t":{"143":{"position":[[342,12],[399,12]]}}}],["node=[p",{"_index":995,"t":{"145":{"position":[[329,10]]}}}],["node=enr",{"_index":991,"t":{"143":{"position":[[608,9]]}}}],["node_a",{"_index":1894,"t":{"409":{"position":[[321,7],[671,6]]}}}],["node_b",{"_index":1895,"t":{"409":{"position":[[403,7],[628,6]]}}}],["node_c",{"_index":1897,"t":{"409":{"position":[[499,7]]}}}],["node_d",{"_index":1898,"t":{"409":{"position":[[511,8]]}}}],["node_opt",{"_index":634,"t":{"82":{"position":[[322,12]]}}}],["node_requir",{"_index":494,"t":{"50":{"position":[[488,17],[679,18],[1016,18]]},"52":{"position":[[518,17],[757,18]]}}}],["nodea",{"_index":1888,"t":{"409":{"position":[[84,6]]}}}],["nodeb",{"_index":1890,"t":{"409":{"position":[[145,6]]}}}],["nodec",{"_index":1892,"t":{"409":{"position":[[247,6]]}}}],["nodej",{"_index":124,"t":{"8":{"position":[[990,6],[1079,6]]},"42":{"position":[[1691,6],[1762,6],[1878,6]]},"56":{"position":[[109,6]]},"60":{"position":[[38,7]]},"92":{"position":[[96,6],[258,7]]},"95":{"position":[[54,6],[157,6],[210,7]]},"99":{"position":[[98,6]]},"101":{"position":[[94,7],[169,6],[338,7],[455,6]]},"103":{"position":[[28,6]]},"105":{"position":[[29,6],[119,6]]}}}],["nodekey",{"_index":1084,"t":{"174":{"position":[[207,7]]},"286":{"position":[[157,7]]}}}],["nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8",{"_index":1526,"t":{"286":{"position":[[1050,72]]}}}],["nodekey=[nod",{"_index":1509,"t":{"286":{"position":[[193,13]]}}}],["nodes=1000",{"_index":2389,"t":{"567":{"position":[[698,11]]}}}],["nois",{"_index":415,"t":{"42":{"position":[[1049,5]]},"107":{"position":[[192,5]]},"336":{"position":[[204,5],[278,5]]},"348":{"position":[[305,5]]},"521":{"position":[[5,5],[41,5]]}}}],["non",{"_index":2263,"t":{"533":{"position":[[495,3],[575,3],[804,3]]},"579":{"position":[[333,3]]},"587":{"position":[[585,3]]},"611":{"position":[[333,3]]},"617":{"position":[[274,3]]},"623":{"position":[[419,3]]}}}],["none",{"_index":1097,"t":{"174":{"position":[[527,5]]},"180":{"position":[[332,4]]},"284":{"position":[[600,4]]}}}],["nonetheless",{"_index":2083,"t":{"435":{"position":[[117,12]]}}}],["normal",{"_index":1880,"t":{"407":{"position":[[1176,6],[1513,6]]}}}],["north",{"_index":2146,"t":{"447":{"position":[[542,5]]},"449":{"position":[[2678,5]]}}}],["note",{"_index":521,"t":{"64":{"position":[[194,4]]},"228":{"position":[[299,4],[638,4]]},"230":{"position":[[216,4]]},"264":{"position":[[846,4]]},"330":{"position":[[156,4]]},"368":{"position":[[826,5]]},"390":{"position":[[162,7]]},"421":{"position":[[756,5]]},"445":{"position":[[1156,4]]},"447":{"position":[[212,5]]},"449":{"position":[[1588,4],[2901,5]]},"565":{"position":[[260,4]]},"567":{"position":[[274,4]]},"569":{"position":[[202,4],[356,5],[1693,4]]},"633":{"position":[[520,4]]},"643":{"position":[[317,4]]},"645":{"position":[[339,4],[408,4]]}}}],["noth",{"_index":2348,"t":{"559":{"position":[[232,7]]},"617":{"position":[[1628,7]]},"645":{"position":[[831,7]]}}}],["notic",{"_index":1073,"t":{"172":{"position":[[133,7]]},"401":{"position":[[156,6]]},"411":{"position":[[658,6],[2119,6],[2458,6],[2734,6],[3474,7],[3735,6]]},"439":{"position":[[81,7]]},"565":{"position":[[1182,6]]},"619":{"position":[[1392,6]]},"629":{"position":[[87,7]]},"633":{"position":[[870,6],[1108,6]]}}}],["notif",{"_index":1392,"t":{"246":{"position":[[601,13]]},"252":{"position":[[147,13],[652,12]]}}}],["notificationpayload",{"_index":1415,"t":{"252":{"position":[[462,19],[632,19]]}}}],["novemb",{"_index":1947,"t":{"411":{"position":[[3822,8]]}}}],["now",{"_index":1595,"t":{"304":{"position":[[165,3]]},"312":{"position":[[339,3]]},"356":{"position":[[399,3]]},"364":{"position":[[347,3]]},"366":{"position":[[77,3]]},"368":{"position":[[290,3],[882,3]]},"557":{"position":[[35,3]]},"567":{"position":[[918,5]]}}}],["npm",{"_index":36,"t":{"4":{"position":[[68,3],[77,3]]},"6":{"position":[[570,3],[579,3]]},"42":{"position":[[107,4]]},"50":{"position":[[88,3]]},"74":{"position":[[72,3]]},"80":{"position":[[160,3],[169,3],[386,3],[395,3]]},"109":{"position":[[109,3],[118,3]]}}}],["npx",{"_index":581,"t":{"74":{"position":[[81,3],[334,3]]}}}],["ns1.google.com",{"_index":1444,"t":{"264":{"position":[[680,15]]}}}],["nullifi",{"_index":1703,"t":{"334":{"position":[[424,10]]},"340":{"position":[[290,11]]},"348":{"position":[[1228,10],[1260,9]]},"374":{"position":[[66,10]]},"386":{"position":[[96,10]]},"499":{"position":[[11,10]]},"505":{"position":[[69,10]]},"523":{"position":[[433,10]]}}}],["num",{"_index":1166,"t":{"178":{"position":[[1605,3]]}}}],["number",{"_index":1094,"t":{"174":{"position":[[436,7],[745,6]]},"178":{"position":[[1627,6]]},"182":{"position":[[329,6],[426,6]]},"198":{"position":[[410,6]]},"254":{"position":[[618,6]]},"306":{"position":[[318,6]]},"348":{"position":[[1686,6]]},"388":{"position":[[129,6]]},"407":{"position":[[452,6]]},"411":{"position":[[452,7]]},"445":{"position":[[1474,6]]},"447":{"position":[[228,7]]},"449":{"position":[[131,7],[310,7],[2232,7],[2912,6]]},"551":{"position":[[466,6]]},"553":{"position":[[335,6]]},"557":{"position":[[319,8]]}}}],["numer",{"_index":1735,"t":{"348":{"position":[[103,8]]}}}],["nutshel",{"_index":1814,"t":{"388":{"position":[[308,9]]}}}],["nwaku",{"_index":134,"t":{"8":{"position":[[1226,5]]},"36":{"position":[[155,5]]},"40":{"position":[[66,5]]},"42":{"position":[[1818,5],[2115,5]]},"48":{"position":[[1456,5]]},"56":{"position":[[179,6]]},"64":{"position":[[0,5]]},"66":{"position":[[189,5]]},"70":{"position":[[333,6]]},"97":{"position":[[128,5]]},"103":{"position":[[137,5]]},"105":{"position":[[53,5]]},"119":{"position":[[46,5],[154,6],[289,6],[296,5]]},"121":{"position":[[9,6]]},"123":{"position":[[166,5]]},"125":{"position":[[10,5]]},"127":{"position":[[0,5],[207,6],[249,5],[264,5],[296,5]]},"129":{"position":[[83,5],[197,5]]},"137":{"position":[[50,5],[142,5]]},"139":{"position":[[34,5],[284,5]]},"141":{"position":[[29,5],[728,5],[822,5]]},"143":{"position":[[22,5],[459,5],[857,5]]},"145":{"position":[[29,5],[399,5],[549,5],[634,5],[842,5]]},"174":{"position":[[144,5]]},"200":{"position":[[29,5]]},"202":{"position":[[67,5]]},"204":{"position":[[2,5]]},"206":{"position":[[76,5]]},"208":{"position":[[79,5],[714,5]]},"210":{"position":[[45,5],[173,5],[343,5],[503,5],[547,5],[644,5],[750,6],[802,5],[833,5],[1046,5],[1343,5],[1423,5],[1600,5]]},"212":{"position":[[0,5],[98,5]]},"216":{"position":[[198,5]]},"218":{"position":[[55,5]]},"222":{"position":[[108,5]]},"224":{"position":[[26,5],[156,5],[289,5]]},"228":{"position":[[5,5],[80,5],[157,5],[1065,5],[1222,5]]},"238":{"position":[[85,5]]},"256":{"position":[[54,5],[166,5]]},"258":{"position":[[143,5]]},"260":{"position":[[4,5]]},"262":{"position":[[136,5]]},"264":{"position":[[4,5],[261,5],[1367,5],[1480,5]]},"266":{"position":[[0,5],[130,5],[364,5],[494,5]]},"268":{"position":[[33,5],[47,5],[103,5],[297,5],[332,5],[381,5],[418,5],[549,5],[569,5],[613,5],[769,5],[793,5],[831,5]]},"270":{"position":[[25,5],[224,5]]},"272":{"position":[[97,5],[222,5],[314,5],[411,5],[566,5]]},"274":{"position":[[32,5]]},"276":{"position":[[431,5],[542,5]]},"278":{"position":[[50,5]]},"280":{"position":[[97,5]]},"282":{"position":[[327,5]]},"284":{"position":[[1157,5],[1421,5],[1644,5]]},"286":{"position":[[1023,6]]},"288":{"position":[[101,5],[835,5],[995,5],[1369,5]]},"290":{"position":[[0,5],[992,5],[1139,5]]},"292":{"position":[[10,5],[138,5],[408,5]]},"294":{"position":[[10,5],[152,5],[375,5]]},"296":{"position":[[117,5]]},"302":{"position":[[27,6]]},"346":{"position":[[23,5],[85,5]]},"348":{"position":[[1787,5]]},"399":{"position":[[19,6],[197,5],[282,5]]},"401":{"position":[[34,5],[197,5],[258,5]]},"409":{"position":[[524,5]]},"411":{"position":[[678,5],[795,5],[1798,5],[1818,5],[3222,5],[3371,5]]},"413":{"position":[[1390,5],[1497,5],[1767,5]]},"526":{"position":[[49,5]]},"538":{"position":[[56,5]]},"540":{"position":[[52,5]]},"542":{"position":[[4,5],[196,5]]},"547":{"position":[[328,5]]},"555":{"position":[[366,5]]},"561":{"position":[[37,5]]},"563":{"position":[[941,5]]},"567":{"position":[[103,5],[677,5],[749,5]]}}}],["nwaku'",{"_index":1602,"t":{"304":{"position":[[765,7]]}}}],["nwaku+postgr",{"_index":1852,"t":{"405":{"position":[[89,14]]}}}],["nwaku+sqlit",{"_index":1853,"t":{"405":{"position":[[108,13]]}}}],["nwakunode.com",{"_index":573,"t":{"70":{"position":[[197,13],[255,14]]},"282":{"position":[[292,14]]}}}],["o",{"_index":1442,"t":{"264":{"position":[[656,1]]}}}],["o.myaddr.l.google.com",{"_index":1443,"t":{"264":{"position":[[658,21]]}}}],["object",{"_index":255,"t":{"24":{"position":[[91,6],[161,6]]},"86":{"position":[[504,6]]},"310":{"position":[[12,9]]},"368":{"position":[[453,7]]},"435":{"position":[[831,6]]}}}],["oblig",{"_index":2071,"t":{"433":{"position":[[7,7]]},"617":{"position":[[1222,10]]}}}],["observ",{"_index":2349,"t":{"561":{"position":[[301,7],[399,7]]}}}],["obtain",{"_index":1710,"t":{"338":{"position":[[256,8]]},"344":{"position":[[348,6]]},"346":{"position":[[153,8]]},"388":{"position":[[357,6]]},"411":{"position":[[833,8],[1905,8]]},"413":{"position":[[1036,8]]}}}],["occasion",{"_index":946,"t":{"133":{"position":[[0,13]]},"475":{"position":[[115,12]]}}}],["occur",{"_index":643,"t":{"82":{"position":[[887,6]]},"178":{"position":[[965,5]]},"433":{"position":[[669,5]]}}}],["oceania",{"_index":2169,"t":{"447":{"position":[[657,7]]},"449":{"position":[[2737,7]]}}}],["oct",{"_index":2143,"t":{"447":{"position":[[372,3]]}}}],["off",{"_index":1776,"t":{"370":{"position":[[108,4]]}}}],["offer",{"_index":336,"t":{"32":{"position":[[298,6]]},"240":{"position":[[194,6]]},"316":{"position":[[43,6]]},"328":{"position":[[23,5]]},"336":{"position":[[227,5]]},"419":{"position":[[318,5],[566,6]]},"617":{"position":[[1685,5],[1725,5]]}}}],["offic",{"_index":2050,"t":{"425":{"position":[[190,6]]},"615":{"position":[[130,6]]}}}],["offlin",{"_index":1654,"t":{"322":{"position":[[123,7]]},"378":{"position":[[156,7]]},"475":{"position":[[7,7],[64,7]]},"509":{"position":[[90,7]]}}}],["offline/resourc",{"_index":1831,"t":{"394":{"position":[[242,16]]}}}],["old",{"_index":1586,"t":{"302":{"position":[[45,3]]}}}],["older",{"_index":67,"t":{"6":{"position":[[340,5]]},"304":{"position":[[1109,5]]}}}],["oldest",{"_index":1032,"t":{"159":{"position":[[771,6]]},"162":{"position":[[132,6],[305,6]]}}}],["omit",{"_index":979,"t":{"141":{"position":[[685,4]]},"164":{"position":[[947,4]]},"284":{"position":[[645,4],[926,4]]},"288":{"position":[[309,4]]},"290":{"position":[[278,4],[394,4],[528,4]]},"292":{"position":[[709,4]]},"569":{"position":[[409,8]]}}}],["on",{"_index":145,"t":{"8":{"position":[[1446,4]]},"44":{"position":[[345,4]]},"174":{"position":[[514,3]]},"198":{"position":[[522,3],[696,3]]},"230":{"position":[[286,3]]},"268":{"position":[[245,4]]},"302":{"position":[[361,4]]},"380":{"position":[[202,3]]},"409":{"position":[[91,3],[152,3],[254,3],[336,3]]},"413":{"position":[[61,3]]},"417":{"position":[[301,3],[956,3],[1015,3]]},"445":{"position":[[147,3]]},"449":{"position":[[1497,3]]},"495":{"position":[[184,3]]},"547":{"position":[[346,3]]},"555":{"position":[[400,3]]},"565":{"position":[[123,3],[846,3]]},"585":{"position":[[451,3]]},"625":{"position":[[532,4]]},"633":{"position":[[1652,3],[2085,3]]},"641":{"position":[[301,3]]}}}],["onboard",{"_index":2694,"t":{"647":{"position":[[328,7]]}}}],["onc",{"_index":1239,"t":{"198":{"position":[[631,5]]},"270":{"position":[[0,4]]},"326":{"position":[[246,4]]},"453":{"position":[[72,4]]},"526":{"position":[[678,4]]},"528":{"position":[[571,4]]},"557":{"position":[[477,5]]},"569":{"position":[[2329,4]]},"647":{"position":[[0,4]]}}}],["onchain",{"_index":1138,"t":{"178":{"position":[[341,7]]},"555":{"position":[[264,7]]}}}],["onchange={handleinputchang",{"_index":682,"t":{"84":{"position":[[1519,28]]}}}],["onclick={sendmessage}>send.example.com",{"_index":1583,"t":{"300":{"position":[[218,17]]}}}],["round",{"_index":2138,"t":{"447":{"position":[[241,7]]}}}],["rout",{"_index":196,"t":{"14":{"position":[[582,5]]},"143":{"position":[[181,7],[509,7],[905,7]]},"192":{"position":[[452,7],[543,7]]},"314":{"position":[[172,8]]},"324":{"position":[[149,7]]},"346":{"position":[[240,7]]},"511":{"position":[[114,8]]},"563":{"position":[[21,7],[79,6]]}}}],["row",{"_index":1872,"t":{"407":{"position":[[814,4]]},"409":{"position":[[241,5]]},"419":{"position":[[464,5]]}}}],["rule",{"_index":536,"t":{"64":{"position":[[587,5]]},"314":{"position":[[110,5]]},"348":{"position":[[922,5]]},"493":{"position":[[23,5]]},"633":{"position":[[1316,5],[1386,5],[1963,5]]},"637":{"position":[[290,5]]}}}],["run",{"_index":123,"t":{"8":{"position":[[971,3],[1486,7]]},"14":{"position":[[293,7]]},"36":{"position":[[64,3],[151,3],[231,3],[271,7]]},"42":{"position":[[1810,7]]},"44":{"position":[[385,7]]},"48":{"position":[[1569,7],[1641,3]]},"90":{"position":[[914,7]]},"103":{"position":[[129,7]]},"125":{"position":[[117,3]]},"127":{"position":[[68,3],[199,7],[243,3],[260,3],[292,3]]},"129":{"position":[[0,3]]},"151":{"position":[[329,7]]},"174":{"position":[[72,7]]},"178":{"position":[[897,4],[956,3]]},"200":{"position":[[152,7]]},"210":{"position":[[10,3],[41,3],[118,3],[167,3],[304,7],[333,7],[413,7],[495,7],[539,7],[655,7],[1064,8]]},"212":{"position":[[109,7]]},"214":{"position":[[71,4]]},"216":{"position":[[188,7],[268,7]]},"222":{"position":[[366,7]]},"224":{"position":[[247,7]]},"228":{"position":[[909,7]]},"232":{"position":[[221,7],[329,3]]},"234":{"position":[[303,7],[385,3]]},"236":{"position":[[552,3]]},"238":{"position":[[522,3]]},"256":{"position":[[48,3],[162,3]]},"258":{"position":[[133,7],[213,7]]},"264":{"position":[[0,3],[44,3],[257,3],[312,3],[794,3],[805,3],[856,7],[985,3],[1201,7]]},"266":{"position":[[49,7],[116,7],[484,7],[564,7]]},"268":{"position":[[3,3],[83,7],[99,3],[171,3],[241,3],[291,3],[328,3],[375,3],[414,3],[823,3]]},"270":{"position":[[39,3],[81,3],[127,3]]},"274":{"position":[[24,7]]},"276":{"position":[[248,7]]},"302":{"position":[[34,7],[183,7],[295,7]]},"304":{"position":[[232,3],[888,7]]},"306":{"position":[[164,3]]},"342":{"position":[[320,3]]},"346":{"position":[[19,3],[75,7]]},"348":{"position":[[134,3]]},"392":{"position":[[42,3],[255,3]]},"394":{"position":[[150,3]]},"407":{"position":[[215,7]]},"409":{"position":[[536,7]]},"411":{"position":[[690,3],[845,7],[1917,7]]},"413":{"position":[[1113,7]]},"417":{"position":[[321,3],[364,3],[518,3],[1882,3]]},"443":{"position":[[138,3]]},"445":{"position":[[58,3],[327,7],[603,3],[828,3],[875,3]]},"449":{"position":[[386,3],[577,3],[652,3]]},"540":{"position":[[119,3]]},"547":{"position":[[233,7]]},"561":{"position":[[49,7]]},"567":{"position":[[284,7]]},"571":{"position":[[112,7]]},"585":{"position":[[407,7],[490,7]]},"601":{"position":[[618,7]]}}}],["runstmt",{"_index":1959,"t":{"413":{"position":[[526,8]]}}}],["rustup",{"_index":888,"t":{"121":{"position":[[100,7],[638,6]]}}}],["s",{"_index":914,"t":{"121":{"position":[[505,1],[750,1]]},"533":{"position":[[705,3],[741,3]]}}}],["sa",{"_index":2107,"t":{"441":{"position":[[150,3]]},"635":{"position":[[963,3]]}}}],["sacrific",{"_index":754,"t":{"95":{"position":[[146,10]]}}}],["safeti",{"_index":2070,"t":{"431":{"position":[[141,6]]}}}],["same",{"_index":456,"t":{"48":{"position":[[378,4]]},"139":{"position":[[336,4]]},"145":{"position":[[510,4]]},"192":{"position":[[434,4],[525,4]]},"198":{"position":[[670,4]]},"330":{"position":[[244,4]]},"411":{"position":[[703,4],[1718,4]]},"413":{"position":[[260,4],[326,4],[1745,4]]},"433":{"position":[[512,4]]},"449":{"position":[[1276,5],[1417,5],[3008,4]]},"497":{"position":[[130,4]]},"559":{"position":[[0,4]]}}}],["sampl",{"_index":371,"t":{"32":{"position":[[1223,6]]},"240":{"position":[[255,8],[487,8]]},"310":{"position":[[439,8]]}}}],["sandbox",{"_index":1913,"t":{"411":{"position":[[928,7],[2000,7]]},"413":{"position":[[1058,7]]}}}],["saniti",{"_index":2287,"t":{"542":{"position":[[164,6]]}}}],["save",{"_index":329,"t":{"32":{"position":[[173,4],[313,8]]},"222":{"position":[[298,5]]}}}],["scaffold",{"_index":110,"t":{"8":{"position":[[689,8]]},"40":{"position":[[248,8]]}}}],["scalabl",{"_index":362,"t":{"32":{"position":[[961,12]]},"298":{"position":[[728,12]]},"306":{"position":[[301,12]]},"340":{"position":[[126,8],[302,11]]},"346":{"position":[[472,12]]},"370":{"position":[[262,12]]},"445":{"position":[[1289,12]]},"467":{"position":[[42,8]]},"519":{"position":[[36,8]]}}}],["scale",{"_index":1783,"t":{"372":{"position":[[311,6]]},"449":{"position":[[761,5]]},"501":{"position":[[174,6]]},"544":{"position":[[187,6]]},"569":{"position":[[1746,5]]},"587":{"position":[[827,5]]},"641":{"position":[[268,9]]}}}],["scenario",{"_index":1655,"t":{"322":{"position":[[131,9]]},"407":{"position":[[27,8]]},"409":{"position":[[75,8]]},"411":{"position":[[990,8],[1309,8],[1484,8],[1735,8],[2062,8],[2398,8],[2674,8]]}}}],["scene",{"_index":311,"t":{"28":{"position":[[366,7]]}}}],["sceneri",{"_index":1949,"t":{"413":{"position":[[171,7]]}}}],["scheme",{"_index":1475,"t":{"282":{"position":[[195,7]]}}}],["scope",{"_index":1827,"t":{"392":{"position":[[84,6]]}}}],["score",{"_index":1697,"t":{"334":{"position":[[218,7],[268,6],[347,7]]},"549":{"position":[[208,7]]},"555":{"position":[[313,8]]},"575":{"position":[[622,6],[658,6],[719,7]]}}}],["screaming_snake_cas",{"_index":1345,"t":{"234":{"position":[[137,20]]}}}],["script",{"_index":85,"t":{"6":{"position":[[837,6],[848,7]]},"407":{"position":[[328,6]]}}}],["sdk",{"_index":4,"t":{"2":{"position":[[39,3],[167,3]]},"38":{"position":[[32,5],[189,3],[243,3]]},"42":{"position":[[81,3],[1225,3],[1464,3],[1733,3]]},"78":{"position":[[39,3]]},"210":{"position":[[610,4]]},"348":{"position":[[112,4]]},"507":{"position":[[0,4]]}}}],["seamless",{"_index":343,"t":{"32":{"position":[[462,8]]},"38":{"position":[[305,8]]}}}],["seamlessli",{"_index":22,"t":{"2":{"position":[[295,10]]},"8":{"position":[[633,10]]},"101":{"position":[[80,10]]}}}],["second",{"_index":1189,"t":{"182":{"position":[[253,8]]},"234":{"position":[[450,6]]},"284":{"position":[[400,8],[1257,7]]},"292":{"position":[[498,7],[766,7]]},"413":{"position":[[1484,7],[1591,7],[1862,7]]},"419":{"position":[[288,8],[552,8]]},"421":{"position":[[107,8],[674,8]]},"547":{"position":[[412,7]]},"549":{"position":[[39,6],[103,8],[189,8]]},"551":{"position":[[183,7],[489,7]]},"553":{"position":[[108,7],[595,7]]},"555":{"position":[[538,8]]},"559":{"position":[[193,7]]},"567":{"position":[[1025,7],[1065,7]]},"569":{"position":[[861,7],[1423,7]]}}}],["secp256k1",{"_index":1510,"t":{"286":{"position":[[240,9],[668,9]]},"479":{"position":[[16,9]]}}}],["secreci",{"_index":2237,"t":{"521":{"position":[[218,8]]}}}],["secret",{"_index":1142,"t":{"178":{"position":[[500,6]]},"220":{"position":[[353,7]]}}}],["section",{"_index":306,"t":{"28":{"position":[[292,8]]},"210":{"position":[[1769,7]]},"635":{"position":[[289,8]]}}}],["secur",{"_index":304,"t":{"28":{"position":[[247,8]]},"30":{"position":[[245,6]]},"32":{"position":[[654,8]]},"64":{"position":[[63,6],[260,6],[327,6]]},"113":{"position":[[284,6]]},"117":{"position":[[237,6]]},"145":{"position":[[1005,8]]},"196":{"position":[[139,6],[167,6],[206,6],[222,6],[278,6],[295,6]]},"226":{"position":[[235,9]]},"282":{"position":[[453,6],[676,6]]},"288":{"position":[[362,6],[386,6],[454,6],[471,6],[508,6],[526,6],[666,6],[700,6],[758,6],[1019,6],[1156,6],[1190,6],[1232,6]]},"314":{"position":[[531,6],[574,6],[716,9]]},"328":{"position":[[52,8],[97,8],[131,8],[290,8],[342,8]]},"336":{"position":[[140,8],[310,6]]},"372":{"position":[[225,6]]},"427":{"position":[[779,8]]},"431":{"position":[[36,8],[92,8]]},"477":{"position":[[101,6]]},"481":{"position":[[65,6],[135,9]]},"501":{"position":[[66,6]]},"507":{"position":[[70,7]]},"513":{"position":[[29,7]]},"517":{"position":[[69,6]]},"521":{"position":[[97,6]]},"523":{"position":[[488,6]]},"617":{"position":[[1764,9]]},"649":{"position":[[8,8],[117,8],[299,7]]}}}],["security@free.technolog",{"_index":2698,"t":{"649":{"position":[[140,25]]}}}],["see",{"_index":944,"t":{"127":{"position":[[119,3]]},"238":{"position":[[469,3]]},"256":{"position":[[154,3]]},"411":{"position":[[1121,3]]},"413":{"position":[[384,3]]},"449":{"position":[[2826,3]]},"533":{"position":[[632,3]]},"555":{"position":[[358,3],[554,3],[642,4]]},"561":{"position":[[581,3]]},"565":{"position":[[348,3],[483,3]]},"567":{"position":[[416,4],[528,3]]},"569":{"position":[[1270,3],[1541,3]]},"585":{"position":[[696,4]]},"591":{"position":[[618,4]]},"595":{"position":[[17,3],[87,3],[160,3],[231,3]]},"599":{"position":[[27,3],[133,3],[221,3],[317,3]]},"603":{"position":[[66,3],[137,3]]},"607":{"position":[[48,3],[141,3]]},"611":{"position":[[38,3],[194,3],[358,3],[500,3]]}}}],["seek",{"_index":152,"t":{"10":{"position":[[34,4]]},"70":{"position":[[349,7]]},"326":{"position":[[303,4],[741,5]]},"633":{"position":[[989,8]]}}}],["seem",{"_index":2312,"t":{"551":{"position":[[0,5],[333,5]]},"553":{"position":[[140,5],[202,5],[342,5]]}}}],["seen",{"_index":1062,"t":{"166":{"position":[[715,4]]}}}],["select",{"_index":584,"t":{"74":{"position":[[170,6]]},"242":{"position":[[577,7]]},"244":{"position":[[118,11]]},"264":{"position":[[92,8]]},"266":{"position":[[182,6]]},"340":{"position":[[372,9]]},"376":{"position":[[38,11]]},"413":{"position":[[917,6],[964,6],[1472,7],[1579,7],[1850,7]]},"455":{"position":[[88,9]]},"465":{"position":[[49,11]]},"601":{"position":[[864,7]]}}}],["sell",{"_index":2573,"t":{"617":{"position":[[1701,5],[1741,4]]}}}],["semi",{"_index":2502,"t":{"597":{"position":[[556,4]]}}}],["send",{"_index":95,"t":{"8":{"position":[[135,4],[202,4]]},"12":{"position":[[102,4]]},"20":{"position":[[1065,4]]},"24":{"position":[[3,4],[390,4]]},"42":{"position":[[2460,4]]},"84":{"position":[[33,7],[1055,4],[2418,5]]},"86":{"position":[[3,4],[364,4]]},"111":{"position":[[310,4],[374,4],[676,4]]},"113":{"position":[[448,4],[529,4],[827,4],[1522,7]]},"115":{"position":[[1705,4]]},"131":{"position":[[137,4]]},"194":{"position":[[152,4]]},"212":{"position":[[223,4]]},"222":{"position":[[122,4],[452,7]]},"228":{"position":[[222,4]]},"246":{"position":[[619,4]]},"304":{"position":[[670,7]]},"326":{"position":[[82,8]]},"348":{"position":[[197,7],[1487,4]]},"372":{"position":[[64,7]]},"380":{"position":[[159,7]]},"419":{"position":[[441,4]]},"473":{"position":[[49,4]]},"493":{"position":[[123,8]]},"495":{"position":[[82,4]]},"501":{"position":[[106,7]]},"551":{"position":[[260,4]]},"557":{"position":[[299,4]]},"569":{"position":[[656,7]]},"585":{"position":[[743,5]]},"589":{"position":[[96,5],[143,5],[454,4]]},"591":{"position":[[839,5],[1030,5]]},"601":{"position":[[791,5]]},"611":{"position":[[325,7]]},"633":{"position":[[852,4]]}}}],["send/rec",{"_index":2113,"t":{"445":{"position":[[276,12]]}}}],["sender",{"_index":261,"t":{"24":{"position":[[232,7]]},"111":{"position":[[401,6]]},"113":{"position":[[394,6],[556,6]]},"115":{"position":[[547,8],[976,6]]},"382":{"position":[[426,7]]},"555":{"position":[[223,6]]},"565":{"position":[[1552,6]]},"569":{"position":[[574,6]]},"611":{"position":[[273,8]]}}}],["sendmessag",{"_index":664,"t":{"84":{"position":[[1095,11]]},"86":{"position":[[59,13],[404,11]]}}}],["sens",{"_index":1848,"t":{"401":{"position":[[184,5]]}}}],["sent",{"_index":291,"t":{"26":{"position":[[1297,4]]},"107":{"position":[[300,4]]},"115":{"position":[[3046,4]]},"228":{"position":[[607,4]]},"324":{"position":[[672,4]]},"348":{"position":[[413,4]]},"382":{"position":[[232,5]]},"417":{"position":[[1265,4]]},"421":{"position":[[221,4],[843,4]]},"569":{"position":[[381,4],[851,4]]}}}],["separ",{"_index":1249,"t":{"198":{"position":[[1285,11]]},"437":{"position":[[97,8]]},"481":{"position":[[55,9]]},"591":{"position":[[530,8]]},"597":{"position":[[45,8]]}}}],["sepolia",{"_index":1293,"t":{"216":{"position":[[57,7],[92,7],[115,7]]},"344":{"position":[[9,7],[103,7],[246,7],[278,7],[320,7],[355,7],[400,7],[437,7]]},"346":{"position":[[125,7]]},"547":{"position":[[473,7]]},"557":{"position":[[95,8]]}}}],["sequenti",{"_index":1013,"t":{"155":{"position":[[234,13]]}}}],["serial",{"_index":718,"t":{"86":{"position":[[85,9]]}}}],["serialis",{"_index":265,"t":{"24":{"position":[[282,9]]},"86":{"position":[[633,9]]},"246":{"position":[[440,13]]}}}],["serialisedmessag",{"_index":266,"t":{"24":{"position":[[325,17],[470,18]]}}}],["serious",{"_index":2068,"t":{"431":{"position":[[45,9]]},"649":{"position":[[17,9]]}}}],["serv",{"_index":532,"t":{"64":{"position":[[492,6]]},"82":{"position":[[28,6]]},"182":{"position":[[310,5],[348,5]]},"198":{"position":[[1339,5]]},"272":{"position":[[684,7]]},"284":{"position":[[30,5],[163,5]]},"288":{"position":[[110,5]]},"292":{"position":[[19,5]]},"294":{"position":[[19,5]]},"314":{"position":[[705,5]]},"316":{"position":[[130,5]]},"324":{"position":[[128,6],[294,6]]},"483":{"position":[[67,7]]},"497":{"position":[[33,6]]}}}],["server",{"_index":484,"t":{"48":{"position":[[1559,6]]},"141":{"position":[[408,6],[436,6],[513,8],[662,6],[713,6],[769,7]]},"145":{"position":[[427,6],[541,7]]},"176":{"position":[[115,6],[154,6]]},"186":{"position":[[64,7],[141,6],[195,6],[525,7]]},"188":{"position":[[39,6],[71,7],[98,6],[156,6],[171,6],[223,6]]},"190":{"position":[[178,6],[217,6],[312,6]]},"242":{"position":[[94,7]]},"264":{"position":[[1163,9]]},"290":{"position":[[162,6],[263,7],[379,7],[786,6],[832,6],[1029,6]]},"296":{"position":[[27,6]]},"312":{"position":[[87,7]]},"318":{"position":[[348,8]]},"445":{"position":[[726,6]]},"533":{"position":[[443,8],[474,8]]},"571":{"position":[[394,6]]},"585":{"position":[[339,6],[390,6],[427,6],[545,6],[764,7],[778,6],[842,6],[922,6],[1005,6]]},"589":{"position":[[124,7],[136,6],[432,6]]},"591":{"position":[[867,6],[917,6],[1023,6]]},"593":{"position":[[102,6],[172,6]]},"597":{"position":[[127,6],[761,7],[1189,7]]},"601":{"position":[[36,6],[142,7],[192,6],[246,6],[475,6],[587,6],[699,7],[768,7],[874,6],[1063,6],[1135,7]]},"605":{"position":[[81,7],[149,7]]},"611":{"position":[[184,7]]}}}],["server'",{"_index":1565,"t":{"296":{"position":[[94,8]]},"591":{"position":[[810,8]]},"597":{"position":[[260,8],[913,8]]},"601":{"position":[[117,8],[314,8],[946,8]]}}}],["server=8.8.4.4",{"_index":987,"t":{"141":{"position":[[1148,14]]}}}],["server=8.8.8.8",{"_index":986,"t":{"141":{"position":[[1110,14]]}}}],["server=[dn",{"_index":978,"t":{"141":{"position":[[645,11]]}}}],["servic",{"_index":1109,"t":{"174":{"position":[[780,7],[854,7],[1023,7]]},"268":{"position":[[873,7],[938,9]]},"314":{"position":[[449,7],[600,7]]},"328":{"position":[[39,8]]},"338":{"position":[[93,8],[248,7]]},"340":{"position":[[406,8]]},"342":{"position":[[451,8]]},"388":{"position":[[10,7],[87,7],[344,7],[414,7],[656,7],[708,8]]},"392":{"position":[[207,7]]},"409":{"position":[[66,8]]},"417":{"position":[[881,8]]},"449":{"position":[[1912,9],[2086,9]]},"471":{"position":[[67,7]]},"599":{"position":[[111,7],[199,7]]},"625":{"position":[[176,9]]}}}],["set",{"_index":177,"t":{"12":{"position":[[75,7]]},"14":{"position":[[372,3]]},"42":{"position":[[1618,7],[2740,3]]},"44":{"position":[[161,3]]},"48":{"position":[[3,3]]},"60":{"position":[[55,3]]},"80":{"position":[[7,3]]},"82":{"position":[[79,3],[289,3]]},"172":{"position":[[63,4]]},"180":{"position":[[325,3]]},"198":{"position":[[229,8],[270,3],[603,3],[659,3],[736,4],[859,7],[905,7],[1017,8],[1093,3]]},"210":{"position":[[1561,7]]},"226":{"position":[[191,7]]},"234":{"position":[[169,3]]},"240":{"position":[[366,4]]},"244":{"position":[[36,3]]},"264":{"position":[[927,3]]},"282":{"position":[[8,3]]},"284":{"position":[[581,3],[812,7]]},"314":{"position":[[632,3]]},"322":{"position":[[16,3]]},"348":{"position":[[1644,3]]},"354":{"position":[[29,8]]},"407":{"position":[[751,3]]},"417":{"position":[[1025,3],[1143,3],[1625,4],[1778,3]]},"443":{"position":[[25,3]]},"449":{"position":[[1147,4],[2565,3],[2926,3]]},"493":{"position":[[16,3]]},"565":{"position":[[166,4]]},"585":{"position":[[893,3]]},"609":{"position":[[136,9]]},"633":{"position":[[888,7]]},"637":{"position":[[313,3]]}}}],["setinputmessag",{"_index":657,"t":{"84":{"position":[[378,16]]},"86":{"position":[[851,20]]}}}],["setinputmessage(e.target.valu",{"_index":662,"t":{"84":{"position":[[551,32]]}}}],["setmessag",{"_index":658,"t":{"84":{"position":[[428,12]]}}}],["setmessages(allmessages.map((wakumessag",{"_index":736,"t":{"90":{"position":[[652,41]]}}}],["setmessages(filtermessages.map((wakumessag",{"_index":729,"t":{"88":{"position":[[429,44]]}}}],["setup",{"_index":483,"t":{"48":{"position":[[1520,5]]},"212":{"position":[[47,5]]},"256":{"position":[[119,5]]},"563":{"position":[[983,5]]}}}],["sever",{"_index":1398,"t":{"248":{"position":[[94,7]]},"368":{"position":[[0,7]]},"413":{"position":[[87,7]]},"561":{"position":[[447,8]]},"635":{"position":[[581,9]]}}}],["sh",{"_index":906,"t":{"121":{"position":[[303,2],[450,2],[598,2]]}}}],["shadow",{"_index":2375,"t":{"567":{"position":[[6,6],[871,6]]},"569":{"position":[[2212,6],[2334,6]]}}}],["shall",{"_index":2567,"t":{"617":{"position":[[1264,5]]},"627":{"position":[[4,5]]},"633":{"position":[[841,5]]}}}],["shape",{"_index":1676,"t":{"328":{"position":[[77,7]]}}}],["shard",{"_index":199,"t":{"14":{"position":[[670,7],[786,8]]},"16":{"position":[[78,9],[115,8],[216,7]]},"20":{"position":[[801,7]]},"26":{"position":[[960,7]]},"170":{"position":[[128,5],[160,6]]},"178":{"position":[[1516,5],[1551,5],[1557,5],[1609,6],[1637,6],[1690,6]]},"304":{"position":[[95,5],[401,8],[526,8],[852,8],[987,8],[1232,8]]},"340":{"position":[[317,8],[366,5]]},"352":{"position":[[102,8],[116,8]]},"354":{"position":[[125,8],[142,9]]},"356":{"position":[[469,7]]},"358":{"position":[[116,7],[262,7]]},"362":{"position":[[72,8],[89,8],[281,9],[404,7],[455,9]]},"364":{"position":[[259,8],[276,8],[378,9]]},"368":{"position":[[902,7]]},"415":{"position":[[75,5]]},"417":{"position":[[418,6]]},"421":{"position":[[1226,7],[1252,6],[1273,6]]},"443":{"position":[[76,5],[304,6]]},"445":{"position":[[151,6],[389,7],[462,5],[1428,6]]},"449":{"position":[[114,6],[2801,6]]},"463":{"position":[[248,7]]}}}],["shard:pubkey",{"_index":1068,"t":{"170":{"position":[[222,13]]}}}],["shard:public_key",{"_index":1596,"t":{"304":{"position":[[187,16]]}}}],["shard=\"4:your_public_key",{"_index":1598,"t":{"304":{"position":[[361,25]]}}}],["shardinfo",{"_index":1755,"t":{"358":{"position":[[89,10]]},"360":{"position":[[89,10]]},"364":{"position":[[125,9],[547,10]]},"366":{"position":[[168,10]]},"368":{"position":[[443,9]]}}}],["shardinfotopubsubtop",{"_index":1766,"t":{"368":{"position":[[266,23]]}}}],["shardingparam",{"_index":1761,"t":{"366":{"position":[[0,14]]}}}],["share",{"_index":233,"t":{"20":{"position":[[1096,6]]},"32":{"position":[[1148,8]]},"42":{"position":[[2654,7]]},"111":{"position":[[36,6],[1388,6]]},"113":{"position":[[1421,5]]},"220":{"position":[[415,6]]},"250":{"position":[[44,5]]},"252":{"position":[[209,5]]},"340":{"position":[[22,6]]},"342":{"position":[[127,6]]},"346":{"position":[[233,6],[365,6]]},"390":{"position":[[43,5]]},"413":{"position":[[1680,6]]},"577":{"position":[[65,8]]},"579":{"position":[[15,7],[269,5]]},"583":{"position":[[145,7]]},"587":{"position":[[98,7]]}}}],["shift",{"_index":1093,"t":{"174":{"position":[[404,5],[418,5]]}}}],["shift=1",{"_index":997,"t":{"145":{"position":[[725,7]]}}}],["short",{"_index":323,"t":{"30":{"position":[[343,6]]},"264":{"position":[[649,6]]},"322":{"position":[[369,5]]},"348":{"position":[[992,6]]},"380":{"position":[[79,5]]}}}],["shorten",{"_index":2425,"t":{"571":{"position":[[162,10]]}}}],["shouldn't",{"_index":2197,"t":{"449":{"position":[[1928,9]]},"553":{"position":[[363,9]]}}}],["show",{"_index":505,"t":{"58":{"position":[[135,4]]},"409":{"position":[[759,5]]},"411":{"position":[[325,5],[1213,5]]},"413":{"position":[[161,5],[1368,5]]},"447":{"position":[[21,5]]},"569":{"position":[[21,5],[79,7],[429,4]]}}}],["shown",{"_index":2202,"t":{"449":{"position":[[2099,5]]},"567":{"position":[[599,5]]},"569":{"position":[[324,6]]}}}],["sia",{"_index":2471,"t":{"583":{"position":[[66,4]]}}}],["side",{"_index":759,"t":{"97":{"position":[[32,4]]},"194":{"position":[[97,6],[226,5]]},"585":{"position":[[434,4],[507,4]]}}}],["sign",{"_index":106,"t":{"8":{"position":[[439,4],[537,4]]},"42":{"position":[[941,4],[1111,4]]},"107":{"position":[[104,4]]},"115":{"position":[[8,7],[181,7],[478,4],[863,7],[912,7],[1139,5],[1368,7],[1439,5],[1663,7],[2396,7],[2547,5],[3035,6],[3218,6],[3280,6]]},"117":{"position":[[59,7],[1002,6]]},"141":{"position":[[355,6]]},"517":{"position":[[161,7]]}}}],["signatur",{"_index":344,"t":{"32":{"position":[[533,9],[562,9],[593,9],[629,10]]},"115":{"position":[[87,9],[2020,9],[2725,9],[2794,9],[2826,9],[2906,9]]},"336":{"position":[[122,11],[266,11]]}}}],["signaturepublickey",{"_index":831,"t":{"115":{"position":[[2049,20],[2859,18],[2947,18]]}}}],["signifi",{"_index":1801,"t":{"382":{"position":[[364,10]]},"388":{"position":[[18,9]]}}}],["signific",{"_index":80,"t":{"6":{"position":[[463,11]]},"567":{"position":[[319,11]]}}}],["significantli",{"_index":1058,"t":{"166":{"position":[[569,13]]}}}],["sigprivkey",{"_index":817,"t":{"115":{"position":[[406,10],[1320,11],[1615,11],[2644,11]]}}}],["similar",{"_index":1925,"t":{"411":{"position":[[1629,7]]},"413":{"position":[[1883,7]]},"417":{"position":[[1977,7]]},"425":{"position":[[373,7]]},"569":{"position":[[1873,7]]},"597":{"position":[[648,8]]},"615":{"position":[[324,7]]}}}],["similarli",{"_index":1713,"t":{"338":{"position":[[468,10]]}}}],["simpl",{"_index":852,"t":{"117":{"position":[[339,6]]},"212":{"position":[[161,6]]},"597":{"position":[[753,7]]}}}],["simpler",{"_index":751,"t":{"95":{"position":[[70,7]]},"597":{"position":[[1006,7]]}}}],["simplest",{"_index":1279,"t":{"210":{"position":[[90,8]]},"268":{"position":[[199,8]]},"575":{"position":[[752,8]]},"591":{"position":[[248,8]]}}}],["simpli",{"_index":1846,"t":{"401":{"position":[[0,6]]}}}],["simplic",{"_index":767,"t":{"99":{"position":[[134,10]]}}}],["simplifi",{"_index":1754,"t":{"354":{"position":[[63,11]]},"457":{"position":[[41,10]]},"591":{"position":[[355,10],[607,10]]},"593":{"position":[[150,10]]}}}],["simul",{"_index":1863,"t":{"407":{"position":[[346,8]]},"523":{"position":[[31,11]]},"533":{"position":[[173,10]]},"538":{"position":[[123,8]]},"544":{"position":[[158,9],[270,10],[286,9]]},"547":{"position":[[241,11],[264,10]]},"549":{"position":[[323,11]]},"551":{"position":[[100,10]]},"555":{"position":[[339,11]]},"559":{"position":[[5,10]]},"561":{"position":[[585,10]]},"563":{"position":[[947,10]]},"565":{"position":[[2204,12]]},"567":{"position":[[13,10],[64,8],[297,10],[402,10],[738,10],[927,8]]},"569":{"position":[[66,12],[393,11],[1709,11],[2270,9]]},"609":{"position":[[126,9]]}}}],["simultan",{"_index":500,"t":{"52":{"position":[[70,15]]},"137":{"position":[[195,15]]},"407":{"position":[[170,14],[788,15]]}}}],["singl",{"_index":789,"t":{"111":{"position":[[28,7]]},"252":{"position":[[394,6]]},"254":{"position":[[27,6],[703,6]]},"399":{"position":[[291,6]]},"411":{"position":[[3231,6]]},"413":{"position":[[65,6]]},"417":{"position":[[411,6]]},"445":{"position":[[455,6]]},"544":{"position":[[194,6]]}}}],["site",{"_index":2099,"t":{"437":{"position":[[86,5]]},"617":{"position":[[607,5]]}}}],["site.thes",{"_index":2561,"t":{"617":{"position":[[628,10]]}}}],["sixti",{"_index":2637,"t":{"633":{"position":[[1062,5]]}}}],["size",{"_index":72,"t":{"6":{"position":[[378,5]]},"42":{"position":[[415,4]]},"180":{"position":[[286,4]]},"284":{"position":[[503,4]]},"417":{"position":[[1288,5]]},"421":{"position":[[662,4],[734,4],[1121,4]]},"526":{"position":[[187,4]]},"528":{"position":[[80,4]]},"533":{"position":[[234,5]]},"535":{"position":[[235,4]]},"551":{"position":[[62,4]]},"553":{"position":[[180,5]]},"561":{"position":[[85,6],[270,4],[493,5]]},"565":{"position":[[1453,4],[1647,6]]},"569":{"position":[[175,6],[791,6],[1250,4]]},"593":{"position":[[356,4]]}}}],["size:10gb",{"_index":1488,"t":{"284":{"position":[[570,10]]}}}],["size:512mb",{"_index":1487,"t":{"284":{"position":[[556,10]]}}}],["size:{new",{"_index":674,"t":{"84":{"position":[[1301,10]]}}}],["spawn",{"_index":1908,"t":{"411":{"position":[[564,5]]}}}],["special",{"_index":416,"t":{"42":{"position":[[1213,11]]},"264":{"position":[[919,7]]},"625":{"position":[[193,8]]}}}],["specialis",{"_index":1637,"t":{"316":{"position":[[136,11]]}}}],["specif",{"_index":208,"t":{"16":{"position":[[27,8]]},"18":{"position":[[345,8]]},"90":{"position":[[849,8],[953,8]]},"111":{"position":[[1417,8]]},"119":{"position":[[124,8]]},"123":{"position":[[208,8]]},"151":{"position":[[383,8]]},"198":{"position":[[91,8]]},"240":{"position":[[426,13]]},"244":{"position":[[230,8],[291,13]]},"246":{"position":[[351,8]]},"252":{"position":[[124,8]]},"260":{"position":[[154,8]]},"318":{"position":[[263,8]]},"326":{"position":[[709,8],[762,8]]},"348":{"position":[[913,8]]},"376":{"position":[[63,8]]},"382":{"position":[[323,8]]},"427":{"position":[[144,8]]},"433":{"position":[[429,8]]},"445":{"position":[[1465,8]]},"455":{"position":[[140,8]]},"463":{"position":[[32,13]]},"465":{"position":[[74,8]]},"515":{"position":[[135,8]]},"533":{"position":[[613,8]]},"540":{"position":[[176,8]]},"565":{"position":[[2085,8],[2161,8]]},"619":{"position":[[1290,9]]},"635":{"position":[[828,8]]},"639":{"position":[[364,8]]},"641":{"position":[[204,8]]}}}],["specifi",{"_index":215,"t":{"18":{"position":[[207,7]]},"20":{"position":[[395,7]]},"90":{"position":[[1155,9]]},"151":{"position":[[222,7],[591,9]]},"157":{"position":[[242,7]]},"159":{"position":[[213,7]]},"162":{"position":[[25,9]]},"164":{"position":[[18,9]]},"166":{"position":[[22,9]]},"172":{"position":[[196,9]]},"174":{"position":[[452,7]]},"186":{"position":[[397,9],[453,7]]},"232":{"position":[[95,7]]},"236":{"position":[[241,7],[349,7]]},"238":{"position":[[60,10]]},"296":{"position":[[185,10]]},"364":{"position":[[392,7]]},"382":{"position":[[13,9],[454,10]]},"443":{"position":[[222,7]]},"483":{"position":[[210,9]]},"521":{"position":[[16,9]]},"589":{"position":[[232,9]]}}}],["speed",{"_index":2207,"t":{"449":{"position":[[2264,5],[2330,5]]},"567":{"position":[[644,6]]}}}],["speedtest",{"_index":2141,"t":{"447":{"position":[[349,9]]}}}],["spend",{"_index":2225,"t":{"475":{"position":[[39,5]]},"551":{"position":[[292,5]]}}}],["split",{"_index":2446,"t":{"577":{"position":[[7,5]]},"589":{"position":[[202,5]]},"597":{"position":[[1019,9]]}}}],["spread",{"_index":1976,"t":{"413":{"position":[[1639,6]]}}}],["sqlalchemi",{"_index":1490,"t":{"284":{"position":[[780,10]]}}}],["sqlite",{"_index":1180,"t":{"180":{"position":[[527,6]]},"399":{"position":[[219,6],[326,6]]},"407":{"position":[[491,6],[573,6],[866,6],[1425,6]]},"409":{"position":[[189,7],[215,6],[721,6]]},"411":{"position":[[762,6],[1134,6],[1227,6],[1460,6],[1688,6],[1765,6],[2993,6],[3413,6]]}}}],["sqlite://store.sqlite3",{"_index":1177,"t":{"180":{"position":[[369,22]]},"284":{"position":[[963,23]]}}}],["src/app.css",{"_index":689,"t":{"84":{"position":[[1943,11]]}}}],["src/app.jsx",{"_index":640,"t":{"82":{"position":[[669,11]]},"84":{"position":[[132,11]]},"86":{"position":[[196,11]]},"88":{"position":[[182,11]]},"90":{"position":[[211,11]]}}}],["src/main.jsx",{"_index":633,"t":{"82":{"position":[[224,12]]}}}],["src=\"https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js\">{message.message}/ ","s":"Message structure","u":"/guides/js-waku/","h":"#message-structure","p":15},{"i":22,"t":"Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using @waku/sdk: Guide Description Send and Receive Messages Using Light Push and Filter Learn how to send and receive messages on light nodes using the Light Push and Filter protocols Retrieve Messages Using Store Protocol Learn how to retrieve and filter historical messages on light nodes using the Store protocol Encrypt, Decrypt, and Sign Your Messages Learn how to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages Build React DApps Using @waku/react Learn how to use the @waku/react package seamlessly integrate @waku/sdk into a React application Scaffold DApps Using @waku/create-app Learn how to use the @waku/create-app package to bootstrap your next @waku/sdk project from various example templates Bootstrap Nodes and Discover Peers Learn how to bootstrap your node using Static Peers and discover peers using DNS Discovery Run @waku/sdk in a NodeJS Application Learn our suggested approach for using the @waku/sdk package within a NodeJS application Debug Your Waku DApp and WebSocket Learn how to troubleshoot your Waku DApp using debug logs and check WebSocket connections in nwaku Manage Your Filter Subscriptions Learn how to manage filter subscriptions and handle node disconnections in your application tip Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.","s":"Getting started","u":"/guides/js-waku/","h":"#getting-started","p":15},{"i":24,"t":"To engage in general discussions, seek assistance, or stay updated with the latest news, visit the #support and #js-waku-contribute channels on the Waku Discord. If you discover bugs or want to suggest new features, do not hesitate to open an issue in the js-waku repository. Your feedback and contributions are highly valued and will help improve the @waku/sdk package.","s":"Get help and report issues","u":"/guides/js-waku/","h":"#get-help-and-report-issues","p":15},{"i":26,"t":"This guide provides detailed steps to start using the @waku/sdk package by setting up a Light Node to send messages using the Light Push protocol, and receive messages using the Filter protocol. Have a look at the installation guide for steps on adding @waku/sdk to your project.","s":"Send and Receive Messages Using Light Push and Filter","u":"/guides/js-waku/light-send-receive","h":"","p":25},{"i":28,"t":"Use the createLightNode() function to create a Light Node and interact with the Waku Network: import { createLightNode } from \"@waku/sdk\"; // Create and start a Light Node const node = await createLightNode({ defaultBootstrap: true }); await node.start(); // Use the stop() function to stop a running node // await node.stop(); info When the defaultBootstrap parameter is set to true, your node will be bootstrapped using the default bootstrap method. Have a look at the Bootstrap Nodes and Discover Peers guide to learn more methods to bootstrap nodes. A node needs to know how to route messages. By default, it will use The Waku Network configuration ({ clusterId: 1, shards: [0,1,2,3,4,5,6,7] }). For most applications, it's recommended to use autosharding: // Create node with auto sharding (recommended) const node = await createLightNode({ defaultBootstrap: true, networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"], }, });","s":"Create a light node","u":"/guides/js-waku/light-send-receive","h":"#create-a-light-node","p":25},{"i":30,"t":"If your project requires a specific network configuration, you can use static sharding: // Create node with static sharding const node = await createLightNode({ defaultBootstrap: true, networkConfig: { clusterId: 1, shards: [0, 1, 2, 3], }, });","s":"Alternative network configuration","u":"/guides/js-waku/light-send-receive","h":"#alternative-network-configuration","p":25},{"i":32,"t":"Use the node.waitForPeers() function to wait for the node to connect with peers on the Waku Network: // Wait for a successful peer connection await node.waitForPeers(); The protocols parameter allows you to specify the protocols that the remote peers should have enabled: import { Protocols } from \"@waku/sdk\"; // Wait for peer connections with specific protocols await node.waitForPeers([Protocols.LightPush, Protocols.Filter]);","s":"Connect to remote peers","u":"/guides/js-waku/light-send-receive","h":"#connect-to-remote-peers","p":25},{"i":34,"t":"Choose a content topic for your application and create a message encoder and decoder: import { createEncoder, createDecoder } from \"@waku/sdk\"; // Choose a content topic const contentTopic = \"/light-guide/1/message/proto\"; // Create a message encoder and decoder const encoder = createEncoder({ contentTopic }); const decoder = createDecoder(contentTopic); The ephemeral parameter allows you to specify whether messages should NOT be stored by Store peers: const encoder = createEncoder({ contentTopic: contentTopic, // message content topic ephemeral: true, // allows messages NOT be stored on the network }); The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your encoder and decoder: // Create the network config const networkConfig = { clusterId: 3, shards: [1, 2] }; // Create encoder and decoder with custom network config const encoder = createEncoder({ contentTopic: contentTopic, pubsubTopicShardInfo: networkConfig, }); const decoder = createDecoder(contentTopic, networkConfig); info In this example, users send and receive messages on a shared content topic. However, real applications may have users broadcasting messages while others listen or only have 1:1 exchanges. Waku supports all these use cases.","s":"Choose a content topic","u":"/guides/js-waku/light-send-receive","h":"#choose-a-content-topic","p":25},{"i":36,"t":"Create your application's message structure using Protobuf's valid message fields: import protobuf from \"protobufjs\"; // Create a message structure using Protobuf const DataPacket = new protobuf.Type(\"DataPacket\") .add(new protobuf.Field(\"timestamp\", 1, \"uint64\")) .add(new protobuf.Field(\"sender\", 2, \"string\")) .add(new protobuf.Field(\"message\", 3, \"string\")); info Have a look at the Protobuf installation guide for adding the protobufjs package to your project.","s":"Create a message structure","u":"/guides/js-waku/light-send-receive","h":"#create-a-message-structure","p":25},{"i":38,"t":"To send messages over the Waku Network using the Light Push protocol, create a new message object and use the lightPush.send() function: // Create a new message object const protoMessage = DataPacket.create({ timestamp: Date.now(), sender: \"Alice\", message: \"Hello, World!\", }); // Serialise the message using Protobuf const serialisedMessage = DataPacket.encode(protoMessage).finish(); // Send the message using Light Push await node.lightPush.send(encoder, { payload: serialisedMessage, });","s":"Send messages using light push","u":"/guides/js-waku/light-send-receive","h":"#send-messages-using-light-push","p":25},{"i":40,"t":"To receive messages using the Filter protocol, create a callback function for message processing, then use the filter.subscribe() function to subscribe to a content topic: // Create the callback function const callback = (wakuMessage) => { // Check if there is a payload on the message if (!wakuMessage.payload) return; // Render the messageObj as desired in your application const messageObj = DataPacket.decode(wakuMessage.payload); console.log(messageObj); }; // Create a Filter subscription const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] }); if (error) { // handle errors if happens throw Error(error); } // Subscribe to content topics and process new messages await subscription.subscribe([decoder], callback); The pubsubTopicShardInfo parameter allows you to configure a different network configuration for your Filter subscription: // Create the network config const networkConfig = { clusterId: 3, shards: [1, 2] }; // Create Filter subscription with custom network config const subscription = await node.filter.createSubscription(networkConfig); You can use the subscription.unsubscribe() function to stop receiving messages from a content topic: await subscription.unsubscribe([contentTopic]); Congratulations! You have successfully sent and received messages over the Waku Network using the Light Push and Filter protocols. Have a look at the light-js and light-chat examples for working demos.","s":"Receive messages using filter","u":"/guides/js-waku/light-send-receive","h":"#receive-messages-using-filter","p":25},{"i":42,"t":"How do I install the @waku/sdk package in my project? You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started. Why should I use Protocol Buffers for my application's message structure when using Waku? Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the installation guide and Protobuf documentation to learn more. What are the steps to retrieve historical messages on Waku? Check out the Retrieve Messages Using Store Protocol guide to learn how to retrieve and filter historical messages using the Store protocol. How can I prevent Store peers from storing my messages? When creating your message encoder, you can configure the ephemeral option to prevent Store peers from keeping your messages on the Waku Network. How can I encrypt, decrypt, and sign messages in my Waku application? You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the Encrypt, Decrypt, and Sign Your Messages guide to get started. How do I integrate Waku into a React application? Waku has a specialized SDK designed for building React applications. Check out the Build React DApps Using @waku/react guide for instructions on installation and usage. How can I bootstrap and discover peers in the Waku Network for browser nodes? The JavaScript SDK has a default bootstrap method that can be configured with Static Peers and DNS Discovery. Check out the Bootstrap Nodes and Discover Peers guide for setting up peer discovery for your node. How can I integrate Waku into a NodeJS application? Though the JavaScript SDK isn't directly usable in NodeJS due to certain limitations, we recommend running nwaku in a Docker container and consuming its REST API in a NodeJS application. How can I debug my Waku DApp and check WebSocket connections? Check out the Debug Your Waku DApp and WebSocket guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets. How can I manage unexpected disconnections of my Filter subscription from Waku? We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the Manage Your Filter Subscriptions guide for a detailed explanation and step-by-step instructions. How can I send images and videos on the Waku Network? While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like IPFS and then sharing the corresponding URL via Waku. How can I connect to my own node? To manually set your own node as a starting point use Configure static peers.","s":"JavaScript SDK FAQ","u":"/guides/js-waku/faq","h":"","p":41},{"i":44,"t":"This guide provides detailed steps to bootstrap your your node using Static Peers and discover peers in the Waku Network using DNS Discovery. info If you do not set up a bootstrap node or discovery mechanism, your node will not connect to any remote peer. tip Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node.","s":"Bootstrap Nodes and Discover Peers","u":"/guides/js-waku/configure-discovery","h":"","p":43},{"i":46,"t":"The @waku/sdk package provides a built-in bootstrapping method that uses DNS Discovery to locate peers from the waku v2.prod ENR tree. import { createLightNode } from \"@waku/sdk\"; // Bootstrap node using the default bootstrap method const node = await createLightNode({ defaultBootstrap: true });","s":"Default bootstrap method","u":"/guides/js-waku/configure-discovery","h":"#default-bootstrap-method","p":43},{"i":48,"t":"To set static peers, a list of multiaddr to bootstrap the node should be passed to the bootstrapPeers parameter of the createLightNode() function: import { createLightNode } from \"@waku/sdk\"; // Bootstrap node using static peers const node = await createLightNode({ bootstrapPeers: [\"[PEER MULTIADDR]\"], }); For example, consider a node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003 with WebSocket enabled: // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; // Bootstrap node using the static peers const node = await createLightNode({ bootstrapPeers: peers, }); Alternatively, you can dial a particular node like this: // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; const node = await createLightNode(); // In case nodes are using IP address and / or `ws` protocol - additional configuration is needed: /* const node = await createLightNode({ libp2p: { filterMultiaddrs: false, }, }); */ const promises = peers.map(multiaddr => node.dial(multiaddr)); await Promise.all(promises); tip For local development using a nwaku node, use a ws address instead of wss. Remember that this setup is functional only when your web server is running locally. You can check how to get multi address of your locally run node in Find node address.","s":"Configure static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-static-peers","p":43},{"i":50,"t":"To bootstrap a node using DNS Discovery, first install the @waku/dns-discovery package: npm install @waku/dns-discovery yarn add @waku/dns-discovery Then, use the wakuDnsDiscovery() function to provide a list of URLs for DNS node list in the format enrtree://@: import { createLightNode } from \"@waku/sdk\"; import { wakuDnsDiscovery } from \"@waku/dns-discovery\"; // Define DNS node list const enrTree = \"enrtree://[PUBLIC KEY]@[DOMAIN NAME]\"; // Define node requirements const NODE_REQUIREMENTS = { store: 3, lightPush: 3, filter: 3, }; // Bootstrap node using DNS Discovery const node = await createLightNode({ libp2p: { peerDiscovery: [ wakuDnsDiscovery( [enrTree], NODE_REQUIREMENTS, ), ], }, }); For example, consider a node that uses the waku v2.prod and waku v2.test ENR trees for DNS Discovery: import { enrTree } from \"@waku/dns-discovery\"; // Bootstrap node using DNS Discovery const node = await createLightNode({ libp2p: { peerDiscovery: [ wakuDnsDiscovery( [enrTree[\"PROD\"], enrTree[\"TEST\"]], NODE_REQUIREMENTS, ), ], }, });","s":"Configure DNS discovery","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery","p":43},{"i":52,"t":"You can also bootstrap your node using DNS Discovery and Static Peers simultaneously: import { createLightNode } from \"@waku/sdk\"; import { bootstrap } from \"@libp2p/bootstrap\"; import { enrTree, wakuDnsDiscovery } from \"@waku/dns-discovery\"; // Define the list of static peers to bootstrap const peers = [ \"/ip4/0.0.0.0/tcp/60002/ws/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H\", \"/ip4/0.0.0.0/tcp/60003/ws/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ\", ]; // Define node requirements const NODE_REQUIREMENTS = { store: 3, lightPush: 3, filter: 3, }; // Bootstrap node using DNS Discovery and static peers const node = await createLightNode({ libp2p: { bootstrapPeers: peers, peerDiscovery: [ wakuDnsDiscovery( [enrTree[\"PROD\"]], NODE_REQUIREMENTS, ), ], }, });","s":"Configure DNS discovery and static peers","u":"/guides/js-waku/configure-discovery","h":"#configure-dns-discovery-and-static-peers","p":43},{"i":54,"t":"You can retrieve the array of peers connected to a node using the libp2p.getPeers() function within the @waku/sdk package: import { createLightNode } from \"@waku/sdk\"; const node = await createLightNode({ defaultBootstrap: true }); await node.waitForPeers(); // Retrieve array of peers connected to the node console.log(node.libp2p.getPeers());","s":"Retrieving connected peers","u":"/guides/js-waku/configure-discovery","h":"#retrieving-connected-peers","p":43},{"i":56,"t":"This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in nwaku.","s":"Debug Your Waku DApp and WebSocket","u":"/guides/js-waku/debug-waku-dapp","h":"","p":55},{"i":58,"t":"When resolving issues in your Waku DApp, debug logs can be helpful. The @waku/sdk and libp2p packages use the debug tool to handle and show logs that help you debug effectively.","s":"Enabling debug logs","u":"/guides/js-waku/debug-waku-dapp","h":"#enabling-debug-logs","p":55},{"i":60,"t":"To enable debug logs for @waku/sdk on NodeJS, you must set the DEBUG environment variable. To only enable debug logs for @waku/sdk: export DEBUG=waku* To enable debug logs for both @waku/sdk and libp2p: export DEBUG=waku*,libp2p* To enable debug logs for all components: export DEBUG=*","s":"NodeJS environments","u":"/guides/js-waku/debug-waku-dapp","h":"#nodejs-environments","p":55},{"i":62,"t":"To view debug logs in your browser's console, modify the local storage and add the debug key. Here are guides for various modern browsers: Google Chrome Firefox JavaScript KEY VALUE DESCRIPTION debug waku* Enables @waku/sdk debug logs debug waku*,libp2p* Enables @waku/sdk and libp2p debug logs debug * Enables all debug logs","s":"Browser environments","u":"/guides/js-waku/debug-waku-dapp","h":"#browser-environments","p":55},{"i":64,"t":"Nwaku provides native support for WebSocket (ws) and WebSocket Secure (wss) protocols. These are the only transports supported for connecting to the Waku Network via browsers. It's important to note that browsers impose certain limitations on WebSocket usage: Secure Context Requirement: Insecure subroutines are prohibited in secure contexts. On an https:// webpage, only wss connections are permitted, while ws connections are not allowed. This restriction does not apply if the webpage is served locally, like on localhost or 127.0.0.1. Certificate Validation: Certificate validation rules are consistent for https and wss connections. Certificates must not be expired, issued by a recognized Certificate Authority (CA), and match the domain name, among other criteria. User Feedback on Errors: Web browsers do not display errors related to subroutines to the user. If a WebSocket connection encounters an issue, users won't be alerted directly; you'll need to check the browser's console for error details. If you encounter difficulties when connecting to a remote node using wss, follow these steps:","s":"Checking WebSocket setup","u":"/guides/js-waku/debug-waku-dapp","h":"#checking-websocket-setup","p":55},{"i":66,"t":"Attempt to connect using websocat, a tool for WebSocket interactions. Test the WebSocket port using the command: websocat -v wss://[WEBSOCKET HOST]:[WEBSOCKET PORT] For example, consider a nwaku node with the multiaddr as /dns4/nwakunode.com/tcp/1234/wss/p2p/16...: $ websocat -v wss://nwakunode.com:1234 # ... [INFO websocat::ws_client_peer] Connected to ws The connection works if the [INFO websocat::ws_client_peer] Connected to ws log entry appears. If not, check that the certificate is valid","s":"Try Websocat for connection","u":"/guides/js-waku/debug-waku-dapp","h":"#try-websocat-for-connection","p":55},{"i":68,"t":"Verify the certificate's validity by passing the -k or --insecure flag to handle invalid certificates in websocat: websocat -v -k wss://nwakunode.com:1234 If this works, the certificate's invalidity is the problem, and you should investigate the cause of the error if not, check if the WebSocket port is accessible.","s":"Check certificate validity","u":"/guides/js-waku/debug-waku-dapp","h":"#check-certificate-validity","p":55},{"i":70,"t":"Use telnet or another networking tool to verify if the WebSocket port is open and accessible. For example, if the multiaddr is /dns4/nwakunode.com/tcp/1234/wss/p2p/16..., use the command: $ telnet nwakunode.com 1234 Trying 123.123.123.123... Connected to nwakunode.com. # ... If the connection succeeds, there might be an issue with nwaku. Consider seeking support on the Waku Discord or raise an issue. If the connection fails, ensure that the WebSocket port is open.","s":"Check WebSocket port accessibility","u":"/guides/js-waku/debug-waku-dapp","h":"#check-websocket-port-accessibility","p":55},{"i":72,"t":"While the @waku/sdk package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using @waku/sdk in NodeJS.","s":"Run @waku/sdk in a NodeJS Application","u":"/guides/js-waku/run-waku-nodejs","h":"","p":71},{"i":75,"t":"@waku/sdk prioritises browser compatibility, avoiding NodeJS APIs for simpler bundling. This design choice enhances browser API compatibility but sacrifices NodeJS optimisation. While many browser APIs work in NodeJS, they might need better optimisation.","s":"API compatibility","u":"/guides/js-waku/run-waku-nodejs","h":"#api-compatibility","p":71},{"i":77,"t":"@waku/sdk focuses on the client side of the Request/Response protocol. We'll have to replicate all the functionalities added to nwaku to implement extra features.","s":"Protocol implementation","u":"/guides/js-waku/run-waku-nodejs","h":"#protocol-implementation","p":71},{"i":79,"t":"@waku/sdk aims to provide optimal default for the browser, striking a balance between browser and NodeJS compatibility while ensuring simplicity will add complexity.","s":"Codebase complexity","u":"/guides/js-waku/run-waku-nodejs","h":"#codebase-complexity","p":71},{"i":81,"t":"Certain features in @waku/sdk are tailored for browsers and might not translate seamlessly to NodeJS. For example, only WebSocket is supported in the browser, whereas a NodeJS application can benefit from using transport methods like TCP. @waku/sdk default peer management caters to the browser's ephemeral nature, which is different for NodeJS. This is why DNS Discovery and Peer Exchange are the default discovery mechanisms for the browser but not for NodeJS and desktop applications.","s":"Browser-specific protocols","u":"/guides/js-waku/run-waku-nodejs","h":"#browser-specific-protocols","p":71},{"i":83,"t":"Before using @waku/sdk in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend running nwaku in a Docker container and consuming its REST API.","s":"Recommendations","u":"/guides/js-waku/run-waku-nodejs","h":"#recommendations","p":71},{"i":85,"t":"There are plans to release a NodeJS package based on nwaku to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: https://github.com/waku-org/nwaku/issues/1332.","s":"Future developments","u":"/guides/js-waku/run-waku-nodejs","h":"#future-developments","p":71},{"i":87,"t":"This guide provides detailed steps to manage Filter subscriptions and handle node disconnections in your application. Have a look at the Send and Receive Messages Using Light Push and Filter guide for using the Light Push and Filter protocols.","s":"Manage Your Filter Subscriptions","u":"/guides/js-waku/manage-filter","h":"","p":86},{"i":89,"t":"Occasionally, your Filter subscriptions might disconnect from the Waku Network, resulting in messages not being received by your application. To manage your subscriptions, periodically ping peers to check for an active connection. The error message \"peer has no subscriptions\" indicates a failed ping due to disconnection. You can stop the pings if the disconnection/unsubscription is deliberate.","s":"Overview","u":"/guides/js-waku/manage-filter","h":"#overview","p":86},{"i":91,"t":"The @waku/sdk package provides a Filter.ping() function to ping subscriptions and check for an active connection. To begin, create a Filter subscription: // Create a Filter subscription const { error, subscription } = await node.filter.createSubscription({ contentTopics: [contentTopic] }); if (error) { // handle errors if happens throw Error(error); } // Subscribe to content topics and process new messages await subscription.subscribe([decoder], callback); Next, create a function to ping and reinitiate the subscription: const pingAndReinitiateSubscription = async () => { try { // Ping the subscription await subscription.ping(); } catch (error) { if ( // Check if the error message includes \"peer has no subscriptions\" error instanceof Error && error.message.includes(\"peer has no subscriptions\") ) { // Reinitiate the subscription if the ping fails await subscription.subscribe([decoder], callback); } else { throw error; } } }; // Periodically ping the subscription await pingAndReinitiateSubscription(); info Pings will fail when there are temporary network degradations or reachability issues. This does not mean that the underlying connection has been closed. Congratulations! You have successfully managed your Filter subscriptions to handle node disconnections in your application.","s":"Pinging filter subscriptions","u":"/guides/js-waku/manage-filter","h":"#pinging-filter-subscriptions","p":86},{"i":93,"t":"This guide provides detailed steps to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages using Waku message payload encryption methods. info Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to freely use custom protocols or Waku message payload encryption methods.","s":"Encrypt, Decrypt, and Sign Your Messages","u":"/guides/js-waku/message-encryption","h":"","p":92},{"i":95,"t":"Install the required packages for integrating @waku/message-encryption using your preferred package manager: NPM Yarn npm install @waku/message-encryption @waku/utils yarn add @waku/message-encryption @waku/utils","s":"Installation","u":"/guides/js-waku/message-encryption","h":"#installation","p":92},{"i":97,"t":"Symmetric encryption uses a single, shared key for message encryption and decryption. Use the generateSymmetricKey() function to generate a random symmetric key: import { generateSymmetricKey } from \"@waku/message-encryption\"; // Generate a random symmetric key const symmetricKey = generateSymmetricKey(); To send encrypted messages, create a Symmetric message encoder and send the message as usual: Sender client import { createEncoder } from \"@waku/message-encryption/symmetric\"; // Create a symmetric message encoder const encoder = createEncoder({ contentTopic: contentTopic, // message content topic symKey: symmetricKey, // symmetric key for encrypting messages }); // Send the message using Light Push await node.lightPush.send(encoder, { payload }); To decrypt the messages you receive, create a symmetric message decoder and process the messages as usual: Receiver client import { createDecoder } from \"@waku/message-encryption/symmetric\"; // Create a symmetric message decoder const decoder = createDecoder(contentTopic, symmetricKey); // Receive messages from a Filter subscription await subscription.subscribe([decoder], callback); // Retrieve messages from Store peers await node.store.queryWithOrderedCallback([decoder], callback); tip The symmetric key exchange between users can happen through an out-of-band method. For example, where the key is embedded within the URL shared by a user to access a specific resource.","s":"Symmetric encryption","u":"/guides/js-waku/message-encryption","h":"#symmetric-encryption","p":92},{"i":99,"t":"ECIES encryption uses a public key for encryption and a private key for decryption. Use the generatePrivateKey() function to generate a random ECDSA private key: import { generatePrivateKey, getPublicKey } from \"@waku/message-encryption\"; // Generate a random ECDSA private key, keep secure const privateKey = generatePrivateKey(); // Generate a public key from the private key, provide to the sender const publicKey = getPublicKey(privateKey); To send encrypted messages, create an ECIES message encoder with the public key and send the message as usual: Sender client import { createEncoder } from \"@waku/message-encryption/ecies\"; // Create an ECIES message encoder const encoder = createEncoder({ contentTopic: contentTopic, // message content topic publicKey: publicKey, // ECIES public key for encrypting messages }); // Send the message using Light Push await node.lightPush.send(encoder, { payload }); To decrypt the messages you receive, create an ECIES message decoder with the private key and process the messages as usual: Receiver client import { createDecoder } from \"@waku/message-encryption/ecies\"; // Create an ECIES message decoder const decoder = createDecoder(contentTopic, privateKey); // Receive messages from a Filter subscription await subscription.subscribe([decoder], callback); // Retrieve messages from Store peers await node.store.queryWithOrderedCallback([decoder], callback); tip Users can share their public key through broadcasting or out-of-band methods, such as embedding it in a URL or sending an unencrypted message on another content topic for others to retrieve.","s":"ECIES encryption","u":"/guides/js-waku/message-encryption","h":"#ecies-encryption","p":92},{"i":101,"t":"Message signing helps in proving the authenticity of received messages. By attaching a signature to a message, you can verify its origin and integrity with absolute certainty. info Signing messages is only possible when encrypted, but if your application does not require encryption, you can generate a symmetric key through hardcoded or deterministic methods using information available to all users. The sigPrivKey parameter allows the Symmetric and ECIES message encoders to sign the message before encryption using an ECDSA private key: Alice (sender) client import { generatePrivateKey, getPublicKey } from \"@waku/message-encryption\"; import { createEncoder as createSymmetricEncoder } from \"@waku/message-encryption/symmetric\"; import { createEncoder as createECIESEncoder } from \"@waku/message-encryption/ecies\"; // Generate a random ECDSA private key for signing messages // ECIES encryption and message signing both use ECDSA keys // For this example, we'll call the sender of the message Alice const alicePrivateKey = generatePrivateKey(); const alicePublicKey = getPublicKey(alicePrivateKey); // Create a symmetric encoder that signs messages const symmetricEncoder = createSymmetricEncoder({ contentTopic: contentTopic, // message content topic symKey: symmetricKey, // symmetric key for encrypting messages sigPrivKey: alicePrivateKey, // private key for signing messages before encryption }); // Create an ECIES encoder that signs messages const ECIESEncoder = createECIESEncoder({ contentTopic: contentTopic, // message content topic publicKey: publicKey, // ECIES public key for encrypting messages sigPrivKey: alicePrivateKey, // private key for signing messages before encryption }); // Send and receive your messages as usual with Light Push and Filter await subscription.subscribe([symmetricEncoder], callback); await node.lightPush.send(symmetricEncoder, { payload }); await subscription.subscribe([ECIESEncoder], callback); await node.lightPush.send(ECIESEncoder, { payload }); You can extract the signature and its public key (signaturePublicKey) from the DecodedMessage and compare it with the expected public key or use the verifySignature() function to verify the message origin: Bob (receiver) client import { generatePrivateKey } from \"@waku/message-encryption\"; import { createEncoder } from \"@waku/message-encryption/symmetric\"; // Generate a random private key for signing messages // For this example, we'll call the receiver of the message Bob const bobPrivateKey = generatePrivateKey(); // Create an encoder that signs messages const encoder = createEncoder({ contentTopic: contentTopic, symKey: symmetricKey, sigPrivKey: bobPrivateKey, }); // Modify the callback function to verify message signature const callback = (wakuMessage) => { // Extract the message signature and public key of the signature // You can compare the signaturePublicKey with Alice public key const signature = wakuMessage.signature; const signaturePublicKey = wakuMessage.signaturePublicKey; // Verify the message was actually signed and sent by Alice // Alice's public key can be gotten from broadcasting or out-of-band methods if (wakuMessage.verifySignature(alicePublicKey)) { console.log(\"This message was signed by Alice\"); } else { console.log(\"This message was NOT signed by Alice\"); } }; await subscription.subscribe([encoder], callback);","s":"Signing encrypted messages","u":"/guides/js-waku/message-encryption","h":"#signing-encrypted-messages","p":92},{"i":103,"t":"We used randomly generated keys for encryption and message signing in the provided examples, but real-world applications require consistent keys among client restarts. Have a look at the Key Pair Handling example, which demonstrates the secure storage and retrieval of key information from local storage using Subtle Crypto. If you need a simple way to store your keys in hexadecimal format across your application, you can use the @waku/utils package: import { bytesToHex, hexToBytes } from \"@waku/utils/bytes\"; // Generate random symmetric and private keys const symmetricKey = generateSymmetricKey(); const privateKey = generatePrivateKey(); // Store the keys in hexadecimal format const symmetricKeyHex = bytesToHex(symmetricKey); const privateKeyHex = bytesToHex(privateKey); // Restore the keys from hexadecimal format const restoredSymmetricKey = hexToBytes(symmetricKeyHex); const restoredPrivateKey = hexToBytes(privateKeyHex); Congratulations! You have successfully encrypted, decrypted, and signed your messages using Symmetric and ECIES encryption methods. Have a look at the eth-pm example for a working demo.","s":"Storing encryption keys","u":"/guides/js-waku/message-encryption","h":"#storing-encryption-keys","p":92},{"i":105,"t":"Waku nodes can be configured using a combination of the following methods: Command line options and flags Environment variables TOML configuration files (currently the only supported format) Default values info Take note of the precedence order: Each configuration method overrides the one below it (e.g., command line options override environment variables and configuration files).","s":"Node Configuration Methods","u":"/guides/nwaku/config-methods","h":"","p":104},{"i":107,"t":"Node configuration is primarily done using command line options, which override other methods. Specify configuration options by providing them in this format after the binary name: ./build/wakunode2 --tcp-port=65000 When running your node with Docker, provide the command line options after the image name in this format: docker run wakuorg/nwaku --tcp-port=65000","s":"Command line options","u":"/guides/nwaku/config-methods","h":"#command-line-options","p":104},{"i":109,"t":"Nodes can be configured using environment variables by prefixing the variable name with WAKUNODE2_ and using the configuration option in SCREAMING_SNAKE_CASE format. To set the tcp-port configuration, the wakunode2 binary should be called in this format: WAKUNODE2_TCP_PORT=65000 ./build/wakunode2 When running your node with Docker, start the node using the -e command option: docker run -e \"WAKUNODE2_TCP_PORT=65000\" wakuorg/nwaku info This is the second configuration method in order of precedence. Command Line Options override environment variables.","s":"Environment variables","u":"/guides/nwaku/config-methods","h":"#environment-variables","p":104},{"i":111,"t":"Nodes can be configured using a configuration file following the TOML format: TOML Config File log-level = \"DEBUG\" tcp-port = 65000 topic = [\"/waku/2/default-waku/proto\"] metrics-logging = false The config-file configuration option lets you specify the configuration file path: ./build/wakunode2 --config-file=[TOML CONFIGURATION FILE] You can also specify the configuration file via environment variables: # Using environment variables WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE] ./build/wakunode2 # Using environment variables with Docker docker run -e \"WAKUNODE2_CONFIG_FILE=[TOML CONFIGURATION FILE]\" wakuorg/nwaku info This is the third configuration method in order of precedence. Command Line Options and Environment Variables override configuration files.","s":"Configuration files","u":"/guides/nwaku/config-methods","h":"#configuration-files","p":104},{"i":113,"t":"The default configuration is used when no other options are specified. By default, a nwaku node does the following: Generate a new Node Key and PeerID. Listen for incoming libp2p connections on the default TCP port (60000). Subscribe to the default Pub/Sub topic (/waku/2/default-waku/proto). Enable the Relay protocol for relaying messages. Enable the Store protocol as a client, allowing it to query peers for historical messages but not store any message itself. To see the default values of all configuration options, run wakunode2 --help: ./build/wakunode2 --help tip To explore the available node configuration options, have a look at the Node Configuration Options guide.","s":"Default configuration values","u":"/guides/nwaku/config-methods","h":"#default-configuration-values","p":104},{"i":115,"t":"This guide provides detailed steps to bootstrap your next @waku/sdk project from various example templates using the @waku/create-app package.","s":"Scaffold DApps Using @waku/create-app","u":"/guides/js-waku/use-waku-create-app","h":"","p":114},{"i":117,"t":"Initialise a new @waku/sdk template using any of the following methods: NPM Yarn npx @waku/create-app [PROJECT DIRECTORY] yarn create @waku/app [PROJECT DIRECTORY] Next, select a template to initialise your app from: tip If you have previously installed @waku/create-app globally, we recommend uninstalling the package to ensure that npx always uses the latest version.","s":"Usage","u":"/guides/js-waku/use-waku-create-app","h":"#usage","p":114},{"i":119,"t":"We welcome and appreciate the contributions of templates for the @waku/create-app package. To contribute a template, please follow these steps: Create the template, ensuring it is user-friendly and thoroughly tested. Place the template in the examples folder in the js-waku-examples repository's root. Commit your changes with a detailed message and push them to your forked repository. Finally, submit a pull request to the js-waku-examples repository. Our team will carefully review and merge your submission upon approval. Waku also provides bounties to encourage community members to contribute to the network and earn rewards. To participate in the bounty program, head to https://github.com/waku-org/bounties.","s":"Contributing new templates","u":"/guides/js-waku/use-waku-create-app","h":"#contributing-new-templates","p":114},{"i":121,"t":"This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the Store protocol.","s":"Retrieve Messages Using Store Protocol","u":"/guides/js-waku/store-retrieve-messages","h":"","p":120},{"i":123,"t":"Use the createLightNode() function to create a Light Node and interact with the Waku Network: import { createLightNode } from \"@waku/sdk\"; // Create and start a Light Node const node = await createLightNode({ defaultBootstrap: true }); await node.start();","s":"Create a light node","u":"/guides/js-waku/store-retrieve-messages","h":"#create-a-light-node","p":120},{"i":125,"t":"Use the node.waitForPeers() method to wait for the node to connect with Store peers: import { Protocols } from \"@waku/sdk\"; // Wait for a successful peer connection await node.waitForPeers([Protocols.Store]); You can also specify a dedicated Store peer to use for queries when creating the node. This is particularly useful when running your own Store node or when you want to use a specific Store node in the network: const node = await createLightNode({ defaultBootstrap: true, store: { peer: \"/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm...\" // multiaddr or PeerId of your Store node } }); If the specified Store peer is not available, the node will fall back to using random Store peers in the network.","s":"Connect to store peers","u":"/guides/js-waku/store-retrieve-messages","h":"#connect-to-store-peers","p":120},{"i":127,"t":"Choose a content topic for filtering the messages to retrieve and create a message decoder: import { createDecoder } from \"@waku/sdk\"; // Choose a content topic const contentTopic = \"/store-guide/1/message/proto\"; // Create a message decoder const decoder = createDecoder(contentTopic);","s":"Choose a content topic","u":"/guides/js-waku/store-retrieve-messages","h":"#choose-a-content-topic","p":120},{"i":129,"t":"@waku/sdk provides the queryWithOrderedCallback() and queryGenerator() functions for querying Store nodes and retrieving historical or missed messages. The responses from Store nodes are paginated and require you to process each page sequentially.","s":"Retrieve messages","u":"/guides/js-waku/store-retrieve-messages","h":"#retrieve-messages","p":120},{"i":131,"t":"The store.queryWithOrderedCallback() function provides a straightforward method for querying Store nodes and processing messages in chronological order through a callback function. It accepts these parameters: decoders: List of decoders that specify the content topic to query for and their message decryption methods. callback: The callback function for processing the retrieved messages. options (optional): Query options to filter the retrieved messages. // Create the callback function const callback = (wakuMessage) => { // Render the message/payload in your application console.log(wakuMessage); }; // Query the Store peer await node.store.queryWithOrderedCallback([decoder], callback); info The queryWithOrderedCallback() function always returns the most recent messages in a page first.","s":"queryWithOrderedCallback","u":"/guides/js-waku/store-retrieve-messages","h":"#querywithorderedcallback","p":120},{"i":133,"t":"The store.queryGenerator() function provides more control and flexibility over processing messages retrieved from Store nodes through Async Generators. It accepts these parameters: decoders: List of decoders that specify the content topic to query for and their message decryption methods. options (optional): Query options to filter the retrieved messages. // Create the store query const storeQuery = node.store.queryGenerator([decoder]); // Process the messages for await (const messagesPromises of storeQuery) { // Fulfil the messages promises const messages = await Promise.all( messagesPromises.map(async (p) => { const msg = await p; // Render the message/payload in your application console.log(msg); }) ); } info The queryGenerator() function always returns the oldest messages in a page first.","s":"queryGenerator","u":"/guides/js-waku/store-retrieve-messages","h":"#querygenerator","p":120},{"i":136,"t":"The pageDirection option specifies the direction in which pages are retrieved: BACKWARD (default): Most recent page first. FORWARD: Oldest page first. import { PageDirection } from \"@waku/sdk\"; // Retrieve recent messages first const queryOptions = { pageDirection: PageDirection.BACKWARD, }; // Retrieve oldest messages first const queryOptions = { pageDirection: PageDirection.FORWARD, }; // Query the Store peer with options await node.store.queryWithOrderedCallback([decoder], callback, options); const storeQuery = node.store.queryGenerator([decoder, options]);","s":"pageDirection","u":"/guides/js-waku/store-retrieve-messages","h":"#pagedirection","p":120},{"i":138,"t":"The cursor option specifies the starting index for retrieving messages. For example, consider a query that retrieves the first page messages and then continues with the next page: import { waku } from \"@waku/sdk\"; // Create the callback function const messages = []; const callback = (wakuMessage) => { messages.push(wakuMessage); // Return \"true\" to stop retrieving pages // Here, it retrieves only the first page return true; }; // Retrieve the first page of messages // This retrieves all the messages if \"return true\" is not present await node.store.queryWithOrderedCallback([decoder], callback); // Create the cursor const lastMessage = messages[messages.length - 1]; const cursor = await waku.createCursor(lastMessage); // Retrieve the next page of messages // The message at the cursor index is excluded from the result await node.store.queryWithOrderedCallback([decoder], callback, { cursor: cursor, }); console.log(messages); info If you omit the cursor option, the query will start from the beginning or end of the history, depending on the page direction.","s":"cursor","u":"/guides/js-waku/store-retrieve-messages","h":"#cursor","p":120},{"i":140,"t":"The timeFilter option specifies a time frame to retrieve messages from. For example, consider a query that retrieves messages from the previous week: // Get the time frame const endTime = new Date(); const startTime = new Date(); startTime.setDate(endTime.getDate() - 7); // Retrieve a week of messages const queryOptions = { timeFilter: { startTime, endTime, }, }; // Query the Store peer with options await node.store.queryWithOrderedCallback([decoder], callback, options); const storeQuery = node.store.queryGenerator([decoder, options]); info The timeFilter option significantly reduces message retrieval performance. To optimise it, consider resuming message retrieval using a cursor that starts from the last seen message. Congratulations! You have successfully retrieved and filtered historical messages on a Light Node using the Store protocol. Have a look at the store-js and store-reactjs-chat examples for working demos.","s":"timeFilter","u":"/guides/js-waku/store-retrieve-messages","h":"#timefilter","p":120},{"i":142,"t":"This guide provides detailed steps to build a nwaku node from the source code to access the latest development version or a specific commit or release of nwaku. For your convenience, you may want to download a pre-compiled binary instead. info A minimum of 2GB of RAM is required to build nwaku. Nwaku is available for Linux and macOS, with experimental Windows support.","s":"Build Nwaku from Source","u":"/guides/nwaku/build-source","h":"","p":141},{"i":144,"t":"To build nwaku, you need the standard developer tools, including a C compiler, GNU Make, Bash, Git, Rustup, and PostgreSQL client library. Debian and Ubuntu Fedora Arch Linux MacOS (Homebrew) sudo apt-get install build-essential git libpq5 jq curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source \"$HOME/.cargo/env\" sudo dnf install @development-tools git libpq-devel which curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Using your favoured AUR helper sudo [AUR HELPER] -S base-devel git postgresql-libs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh brew install cmake git postgresql@15 rustup-init # Create a symbolic link to libpq.5.dylib in /usr/local/lib/ sudo mkdir -p /usr/local/lib/ sudo ln -s /opt/homebrew/opt/postgresql@15/lib/libpq.5.dylib /usr/local/lib/libpq.dylib","s":"Prerequisites","u":"/guides/nwaku/build-source","h":"#prerequisites","p":141},{"i":146,"t":"Get the source code from the GitHub repository. The default branch is master, the release candidate for major updates. git clone https://github.com/waku-org/nwaku cd nwaku tip You can use git tag -l to check specific version tags.","s":"Clone the repository","u":"/guides/nwaku/build-source","h":"#clone-the-repository","p":141},{"i":148,"t":"Build the nwaku binary: make wakunode2 The first make invocation updates to all Git submodules. After each git pull, run make update to keep the submodules updated in the future. make update","s":"Build the binary","u":"/guides/nwaku/build-source","h":"#build-the-binary","p":141},{"i":150,"t":"Nwaku will create the wakunode2 binary in the ./build/ directory. # Run with default configuration ./build/wakunode2 # See available command line options ./build/wakunode2 --help To learn more about running nwaku, have a look at these guides: Run a Nwaku Node Run Nwaku in a Docker Container Run Nwaku with Docker Compose Node Configuration Methods","s":"Run the binary","u":"/guides/nwaku/build-source","h":"#run-the-binary","p":141},{"i":152,"t":"Run the tests for Waku: make test Congratulations! You have successfully built the nwaku binary from the source code. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Run test suite","u":"/guides/nwaku/build-source","h":"#run-test-suite","p":141},{"i":154,"t":"How can I run a Waku node? Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source. What are the system requirements for running a node? We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient. How can I interact with my running nwaku node? You can interact with a running nwaku node using the REST API interface or the JavaScript Waku SDK. How can I view the logs of a nwaku node running in Docker? To check your node logs in Docker, use the command: \"docker-compose logs -f nwaku\" What configuration methods are available for nwaku nodes? You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the Node Configuration Methods guide to understand their usage and priority. How can I configure my nwaku node before running? Check out the Node Configuration Options guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the Node Configuration Examples guide. What peer discovery mechanisms are available for nwaku nodes, and how can I configure them? You can configure peer discovery for nwaku nodes through options like Static Peers, DNS Discovery, DiscV5, and Peer Exchange. Check out the Configure Peer Discovery guide for setting up your node. How do I find my nwaku node's addresses for peer discovery? The node listening and ENR addresses can be found through the node's logs and REST API. Check out the Find the node addresses section to understand how to locate your node addresses.","s":"Nwaku FAQ","u":"/guides/nwaku/faq","h":"","p":153},{"i":156,"t":"caution Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future. The @waku/react package provides components and UI adapters to integrate @waku/sdk into React applications effortlessly. This guide provides detailed steps for using @waku/react in your project.","s":"Build React DApps Using @waku/react","u":"/guides/js-waku/use-waku-react","h":"","p":155},{"i":158,"t":"First, set up a project using any production-grade React framework or an existing React application. For this guide, we will create a boilerplate using ViteJS: NPM Yarn npm create vite@latest [PROJECT DIRECTORY] -- --template react yarn create vite [PROJECT DIRECTORY] --template react Next, install the required packages for integrating @waku/sdk using your preferred package manager: NPM Yarn npm install @waku/react @waku/sdk protobufjs yarn add @waku/react @waku/sdk protobufjs","s":"Install the dependencies","u":"/guides/js-waku/use-waku-react","h":"#install-the-dependencies","p":155},{"i":160,"t":"In the main.jsx file, which serves as the entry point for a React app, we will set up the LightNodeProvider context provider to wrap the entire application within the Waku provider. Import the following on top of your file: src/main.jsx import { LightNodeProvider } from \"@waku/react\"; // Set the Light Node options const NODE_OPTIONS = { defaultBootstrap: true }; ReactDOM.createRoot(document.getElementById('root')).render( // Use the Light Node context provider , ) Next, create and start a Light Node using the useWaku() function within the App.jsx file: src/App.jsx import { useWaku } from \"@waku/react\"; function App() { // Create and start a Light Node const { node, error, isLoading } = useWaku(); // \"node\" is the created Light Node // \"error\" captures any error that occurs during node creation // \"isLoading\" indicates whether the node is still being created }","s":"Initialise the Waku provider","u":"/guides/js-waku/use-waku-react","h":"#initialise-the-waku-provider","p":155},{"i":162,"t":"Let's build a user interface for sending messages and viewing past messages, modify the App.jsx file with the following code block: src/App.jsx import { useState, useEffect } from 'react'; import { useWaku } from \"@waku/react\"; import { createEncoder, createDecoder } from \"@waku/sdk\"; import protobuf from 'protobufjs'; import './App.css' function App() { const [inputMessage, setInputMessage] = useState(\"\"); const [messages, setMessages] = useState([]); // Update the inputMessage state as the user input changes const handleInputChange = (e) => { setInputMessage(e.target.value); }; // Create and start a Light Node const { node, error, isLoading } = useWaku(); // Create a message encoder and decoder const contentTopic = \"/waku-react-guide/1/chat/proto\"; const encoder = createEncoder({ contentTopic }); const decoder = createDecoder(contentTopic); // Create a message structure using Protobuf const DataPacket = new protobuf.Type(\"DataPacket\") .add(new protobuf.Field(\"timestamp\", 1, \"uint64\")) .add(new protobuf.Field(\"message\", 2, \"string\")); // Send the message using Light Push const sendMessage = async () => {} return ( <>

    Waku React Demo

    {messages.map((message, index) => (
    {new Date(message.timestamp).toUTCString()}
    {message.message}
    ))}
    ) } export default App info In the code above, we also created a message encoder and decoder using the createEncoder() and createDecoder() functions, along with the application message structure with Protobuf. Next, modify the App.css file with the following code block: src/App.css #root { margin: 0 auto; } .chat-interface { display: flex; flex-direction: column; height: 100vh; border: 1px solid #ccc; } .chat-body { flex-grow: 1; overflow-y: auto; padding: 10px; } .message-text { background-color: #f1f1f1; color: #000; padding: 10px; margin-bottom: 10px; } .chat-footer { display: flex; padding: 10px; background-color: #f1f1f1; align-items: center; } #message-input { flex-grow: 1; border-radius: 4px; padding: 10px; margin-right: 10px; } .send-button { background-color: #007bff; border-radius: 4px; }","s":"Build the application interface","u":"/guides/js-waku/use-waku-react","h":"#build-the-application-interface","p":155},{"i":164,"t":"To send messages in our application, we need to modify the sendMessage() function to serialize user input into our Protobuf structure and push it to the network using the useLightPush() function: src/App.jsx import { useLightPush } from \"@waku/react\"; function App() { // Bind push method to a node and encoder const { push } = useLightPush({ node, encoder }); // Send the message using Light Push const sendMessage = async () => { if (!push || inputMessage.length === 0) return; // Create a new message object const timestamp = Date.now(); const protoMessage = DataPacket.create({ timestamp: timestamp, message: inputMessage }); // Serialise the message and push to the network const payload = DataPacket.encode(protoMessage).finish(); const { recipients, errors } = await push({ payload, timestamp }); // Check for errors if (errors.length === 0) { setInputMessage(\"\"); console.log(\"MESSAGE PUSHED\"); } else { console.log(errors); } }; }","s":"Send messages using light push","u":"/guides/js-waku/use-waku-react","h":"#send-messages-using-light-push","p":155},{"i":166,"t":"To display messages in our application, we need to use the useFilterMessages() function to create a Filter subscription, receive incoming messages, and render them in our interface: src/App.jsx import { useFilterMessages } from \"@waku/react\"; function App() { // Receive messages from Filter subscription const { messages: filterMessages } = useFilterMessages({ node, decoder }); // Render the list of messages useEffect(() => { setMessages(filterMessages.map((wakuMessage) => { if (!wakuMessage.payload) return; return DataPacket.decode(wakuMessage.payload); })); }, [filterMessages]); }","s":"Receive messages using filter","u":"/guides/js-waku/use-waku-react","h":"#receive-messages-using-filter","p":155},{"i":168,"t":"To display messages from the past, we need to retrieve them from the Store protocol using the useStoreMessages() function when our application initialises and then render them alongside newly received messages: src/App.jsx import { useFilterMessages, useStoreMessages } from \"@waku/react\"; function App() { // Query Store peers for past messages const { messages: storeMessages } = useStoreMessages({ node, decoder }); // Receive messages from Filter subscription const { messages: filterMessages } = useFilterMessages({ node, decoder }); // Render both past and new messages useEffect(() => { const allMessages = storeMessages.concat(filterMessages); setMessages(allMessages.map((wakuMessage) => { if (!wakuMessage.payload) return; return DataPacket.decode(wakuMessage.payload); })); }, [filterMessages, storeMessages]); } You can also configure a specific Store peer when creating the node, which is useful when running your own Store node or using a specific node in the network: const node = await createLightNode({ defaultBootstrap: true, store: { peer: \"/ip4/1.2.3.4/tcp/1234/p2p/16Uiu2HAm...\" // multiaddr or PeerId of your Store node } }); If the specified Store peer is not available, the node will fall back to using random Store peers in the network. info To explore the available Store query options, have a look at the Retrieve Messages Using Store Protocol guide. tip You have successfully integrated @waku/sdk into a React application using the @waku/react package. Have a look at the web-chat example for a working demo and the Building a Tic-Tac-Toe Game with Waku tutorial to learn more.","s":"Retrieve messages using store","u":"/guides/js-waku/use-waku-react","h":"#retrieve-messages-using-store","p":155},{"i":170,"t":"This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.","s":"Run Nwaku in a Docker Container","u":"/guides/nwaku/run-docker","h":"","p":169},{"i":172,"t":"Ensure Docker is installed on your system using the appropriate instructions provided in the Docker documentation. info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Prerequisites","u":"/guides/nwaku/run-docker","h":"#prerequisites","p":169},{"i":174,"t":"The Nwaku Docker images are available on the Docker Hub public registry under the wakuorg/nwaku repository. Please visit wakuorg/nwaku/tags for images of specific releases.","s":"Get Docker image","u":"/guides/nwaku/run-docker","h":"#get-docker-image","p":169},{"i":176,"t":"You can also build the Docker image locally: # Clone the repository git clone --recurse-submodules https://github.com/waku-org/nwaku cd nwaku # Build docker image make docker-image","s":"Build Docker image","u":"/guides/nwaku/run-docker","h":"#build-docker-image","p":169},{"i":178,"t":"Run nwaku in a new Docker container: docker run [OPTIONS] [IMAGE] [ARG...] OPTIONS are your selected Docker options IMAGE is the image and tag you pulled from the registry or built locally ARG... is the list of arguments for your node configuration options Run nwaku using the most typical configuration: docker run -i -t -p 60000:60000 -p 9000:9000/udp wakuorg/nwaku:v0.32.0 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \\ --discv5-discovery=true \\ --nat=extip:[YOUR PUBLIC IP] # or, if you are behind a nat: --nat=any To find your public IP, use: dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'\"' '{ print $2}' For more detailed information about all possible configurations, please run docker run -t wakuorg/nwaku:v0.32.0 --help info Note that running a node in The Waku Network (--cluster-id=1) requires a special set of configurations and therefore, it is recommended to run in this case with docker compose info We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers). tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully built and started a nwaku node in a Docker container. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Run Docker container","u":"/guides/nwaku/run-docker","h":"#run-docker-container","p":169},{"i":180,"t":"This guide provides detailed steps to configure a nwaku node to discover and connect with peers in the Waku Network. info You can configure a nwaku node to use multiple peer discovery mechanisms simultaneously.","s":"Configure Peer Discovery","u":"/guides/nwaku/configure-discovery","h":"","p":179},{"i":182,"t":"You can provide static peers to a nwaku node during startup using the staticnode configuration option. To connect to multiple peers on startup, repeat the staticnode option: ./build/wakunode2 \\ --staticnode=[PEER MULTIADDR 1] \\ --staticnode=[PEER MULTIADDR 2] For example, consider a nwaku node that connects to two static peers on the same local host (IP: 0.0.0.0) using TCP ports 60002 and 60003: ./build/wakunode2 \\ --staticnode=/ip4/0.0.0.0/tcp/60002/p2p/16Uiu2HAkzjwwgEAXfeGNMKFPSpc6vGBRqCdTLG5q3Gmk2v4pQw7H \\ --staticnode=/ip4/0.0.0.0/tcp/60003/p2p/16Uiu2HAmFBA7LGtwY5WVVikdmXVo3cKLqkmvVtuDu63fe8safeQJ","s":"Configure static peers","u":"/guides/nwaku/configure-discovery","h":"#configure-static-peers","p":179},{"i":184,"t":"To enable DNS Discovery in a nwaku node, use the following configuration options: dns-discovery: Enables DNS Discovery on the node (disabled by default). dns-discovery-url: URL for DNS node list in the format enrtree://@ where is the fully qualified domain name and is the base32 encoding of the compressed 32-byte public key that signed the list at that location. dns-discovery-name-server (optional): DNS name server IPs to query. You can repeat this option to provide multiple DNS name servers. ./build/wakunode2 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://[PUBLIC KEY]@[DOMAIN NAME] \\ --dns-discovery-name-server=[DNS NAME SERVER IP] info If you omit the dns-discovery-name-server option, nwaku will attempt to use the CloudFlare servers 1.1.1.1 and 1.0.0.1. For example, consider a nwaku node that enables DNS Discovery, connects to a DNS node list, and queries the IPs 8.8.8.8 and 8.8.4.4: ./build/wakunode2 \\ --dns-discovery=true \\ --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \\ --dns-discovery-name-server=8.8.8.8 \\ --dns-discovery-name-server=8.8.4.4","s":"Configure DNS discovery","u":"/guides/nwaku/configure-discovery","h":"#configure-dns-discovery","p":179},{"i":186,"t":"To enable Discv5 in a nwaku node, use the following configuration options: discv5-discovery: Enables Discv5 on the node (disabled by default). discv5-bootstrap-node: ENR for Discv5 routing table bootstrap node. You can repeat this option to provide multiple bootstrap entries. ./build/wakunode2 \\ --discv5-discovery=true \\ --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 1] \\ --discv5-bootstrap-node=[DISCV5 ENR BOOTSTRAP ENTRY 2] For example, consider a nwaku node that enables Discv5 and bootstraps its routing table using a static ENR: ./build/wakunode2 \\ --discv5-discovery=true \\ --discv5-bootstrap-node=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw info When Discv5 is enabled and used with DNS Discovery, the nwaku node will attempt to bootstrap the Discv5 routing table by extracting ENRs from peers discovered through DNS.","s":"Configure Discv5","u":"/guides/nwaku/configure-discovery","h":"#configure-discv5","p":179},{"i":188,"t":"To enable Peer Exchange in a nwaku node, use the following configuration options: peer-exchange: Enables Peer Exchange on the node as a responder (disabled by default). peer-exchange-node (optional): Multiaddr for bootstrap node with the peer exchange protocol enabled. ./build/wakunode2 \\ --peer-exchange=true \\ --peer-exchange-node=[PEER MULTIADDR WITH EXCHANGE ENABLED] For example, consider two nwaku nodes configured as a server (peer exchange responder node) and client (node using peer exchange) on the same local host (IP: 0.0.0.0): Server: Nwaku Node with Peer Exchange Enabled ./build/wakunode2 --peer-exchange=true Client: Nwaku Node Bootstrapping with Peer Exchange ./build/wakunode2 \\ --tcp-port=30305 \\ --ports-shift=1 \\ --peer-exchange-node=/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmLCe6zVqCS6KMqqRbbhyoJjfYZGr1Q3thTSbyKzibQkFR info nwaku provides a relay-peer-exchange option via libp2p for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.","s":"Configure peer exchange","u":"/guides/nwaku/configure-discovery","h":"#configure-peer-exchange","p":179},{"i":190,"t":"info When starting the node, nwaku will display all the public listening and discovery addresses at the INFO log level. You can find the addresses of a running node through its logs or by calling the Get node info endpoint of the REST API.","s":"Find Your Node Address","u":"/guides/nwaku/find-node-address","h":"","p":189},{"i":192,"t":"Look for the log entry that begins with Listening on, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 Listening on topics=\"waku node\" tid=1623445 file=waku_node.nim:922 full=[/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn][/ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn] # Listening TCP transport address /ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn # Listening WebSocket address /ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn","s":"Listening addresses","u":"/guides/nwaku/find-node-address","h":"#listening-addresses","p":189},{"i":194,"t":"A nwaku node can encode its addressing information in an Ethereum Node Record (ENR).","s":"Discoverable ENR addresses","u":"/guides/nwaku/find-node-address","h":"#discoverable-enr-addresses","p":189},{"i":196,"t":"Look for the log entry that begins with DNS: discoverable ENR, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 DNS: discoverable ENR topics=\"waku node\" tid=1623445 file=waku_node.nim:923 enr=enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB # ENR the node addresses are encoded in enr:-Iu4QBKYj8Ovxwz4fIalxZ_1a8dOCU2WC-1LQrcBCCb4Np93f9-UuSZXn3vagJL1S3k3hwRYfOp3JSbW7_VqwtqMIeMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOrmyV59dAzY4ZKrvrj32VOoZbLby8dCKFnXnqhIdQ0NYN0Y3CC6mCFd2FrdTIB","s":"ENR for DNS discovery","u":"/guides/nwaku/find-node-address","h":"#enr-for-dns-discovery","p":189},{"i":198,"t":"Look for the log entry that begins with Discv5: discoverable ENR, for example: Nwaku Log Output INF 2023-06-15 16:09:54.448+01:00 Discv5: discoverable ENR topics=\"waku node\" tid=1623445 file=waku_node.nim:924 enr=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw # ENR the node addresses are encoded in enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7EU9iIBcPMVeKlCQBgmlkgnY0iXNlY3AyNTZrMaEDdBHK1Gx6y_zv5DVw5Qb3DtSOMmVHTZO1WSORrF2loL2DdWRwgiMohXdha3UyAw Congratulations! You have successfully found the listening and discoverable addresses for your nwaku node. Have a look at the Configure Peer Discovery guide to learn how to discover and connect with peers in the network.","s":"ENR for Discv5","u":"/guides/nwaku/find-node-address","h":"#enr-for-discv5","p":189},{"i":200,"t":"Here are the available node configuration options, along with their default values and descriptions:","s":"Node Configuration Options","u":"/guides/nwaku/config-options","h":"","p":199},{"i":202,"t":"Name Default Value Description config-file Loads configuration from a TOML file (cmd-line parameters take precedence) protected-shard newSeq[ProtectedShard](0) Shards and its public keys to be used for message validation, shard:pubkey. Argument may be repeated","s":"Application-level config","u":"/guides/nwaku/config-options","h":"#application-level-config","p":199},{"i":204,"t":"Name Default Value Description log-level logging.LogLevel.INFO Sets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL log-format logging.LogFormat.TEXT Specifies what kind of logs should be written to stdout. Supported formats: TEXT, JSON","s":"Log config","u":"/guides/nwaku/config-options","h":"#log-config","p":199},{"i":206,"t":"Name Default Value Description cluster-id 0 Cluster id that the node is running in. Node in a different cluster id is disconnected agent-string nwaku Node agent string which is used as identifier in network nodekey P2P node private key as 64-char hex string listen-address defaultListenAddress() Listening address for LibP2P (and Discovery v5, if enabled) traffic tcp-port 60000 TCP listening port ports-shift 0 Add a shift to all port numbers nat any Specify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip: ext-multiaddr External multiaddresses to advertise to the network. Argument may be repeated ext-multiaddr-only false Only announce external multiaddresses max-connections 50 Maximum allowed number of libp2p connections relay-service-ratio \"60:40\" This percentage ratio represents the relay peers to service peers. For example, 60:40, tells that 60% of the max-connections will be used for relay protocol and the other 40% of max-connections will be reserved for other service protocols (e.g., filter, lightpush, store, metadata, etc.) peer-store-capacity Maximum stored peers in the peerstore peer-persistence false Enable peer persistence","s":"General node config","u":"/guides/nwaku/config-options","h":"#general-node-config","p":199},{"i":208,"t":"Name Default Value Description dns-addrs true Enable resolution of dnsaddr, dns4 or dns6 multiaddrs dns-addrs-name-server [\"1.1.1.1\", \"1.0.0.1\"] DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated dns4-domain-name The domain name resolving to the node's public IPv4 address","s":"DNS addrs config","u":"/guides/nwaku/config-options","h":"#dns-addrs-config","p":199},{"i":210,"t":"Name Default Value Description relay true Enable relay protocol: true|false relay-peer-exchange false Enable gossipsub peer exchange in relay protocol: true|false rln-relay false Enable spam protection through rln-relay: true|false rln-relay-cred-path The path for persisting rln-relay credential rln-relay-membership-index The index of the onchain commitment to use rln-relay-dynamic false Enable waku-rln-relay with on-chain dynamic group management: true|false rln-relay-id-key Rln relay identity secret key as a Hex string rln-relay-id-commitment-key Rln relay identity commitment key as a Hex string rln-relay-eth-client-address ws://localhost:8540/ WebSocket address of an Ethereum testnet client e.g., ws://localhost:8540/ rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet rln-relay-eth-private-key Private key for broadcasting transactions execute false Runs the registration function on-chain. By default, a dry-run will occur rln-relay-cred-password Password for encrypting RLN credentials rln-relay-tree-path Path to the RLN merkle tree sled db (https://github.com/spacejam/sled) rln-relay-bandwidth-threshold 0 # to maintain backwards compatibility Message rate in bytes/sec after which verification of proofs should happen staticnode Peer multiaddr to directly connect with. Argument may be repeated keep-alive false Enable keep-alive for idle connections: true|false pubsub-topic Default pubsub topic to subscribe to. Argument may be repeated. Deprecated! Please use shard and/or content-topic instead shard Shard to subscribe to. Argument may be repeated num-shards-in-network Number of shards in the network. Used to map content topics to shards when using autosharding content-topic Default content topic to subscribe to. Argument may be repeated reliability false Enable experimental reliability protocol true|false","s":"Relay config","u":"/guides/nwaku/config-options","h":"#relay-config","p":199},{"i":212,"t":"Name Default Value Description store false Enable/disable waku store protocol storenode Peer multiaddress to query for storage store-message-retention-policy time:172800 Message store retention policy. Time retention policy: time:. Capacity retention policy: capacity:. Size retention policy: size:. Set to none to disable store-message-db-url sqlite://store.sqlite3 The database connection URL for persistent storage store-message-db-vacuum false Enable database vacuuming at start. Only supported by SQLite database engine store-message-db-migration true Enable database migration at start","s":"Store and message store config","u":"/guides/nwaku/config-options","h":"#store-and-message-store-config","p":199},{"i":214,"t":"Name Default Value Description filter false Enable filter protocol: true|false filternode Peer multiaddr to request content filtering of messages filter-subscription-timeout 300 # 5 minutes Timeout for filter subscription without ping or refresh it, in seconds. Only for v2 filter protocol filter-max-peers-to-serve 1000 Maximum number of peers to serve at a time. Only for v2 filter protocol filter-max-criteria 1000 Maximum number of pubsub and content topic combinations per peer at a time. Only for v2 filter protocol","s":"Filter config","u":"/guides/nwaku/config-options","h":"#filter-config","p":199},{"i":216,"t":"Name Default Value Description lightpush false Enable lightpush protocol: true|false lightpushnode Peer multiaddr to request lightpush of published messages","s":"Light push config","u":"/guides/nwaku/config-options","h":"#light-push-config","p":199},{"i":218,"t":"Name Default Value Description rest false Enable Waku REST HTTP server: true|false rest-address 127.0.0.1 Listening address of the REST HTTP server rest-port 8645 Listening port of the REST HTTP server rest-relay-cache-capacity 30 Capacity of the Relay REST API message cache rest-admin false Enable access to REST HTTP Admin API: true|false rest-allow-origin Allow cross-origin requests from the specified origin. When using the REST API in a browser, specify the origin host to get a valid response from the node REST HTTP server. This option may be repeated and can contain wildcards (?,*) for defining URLs and ports such as localhost:*, 127.0.0.1:8080, or allow any website with *","s":"REST HTTP config","u":"/guides/nwaku/config-options","h":"#rest-http-config","p":199},{"i":220,"t":"Name Default Value Description metrics-server false Enable the metrics server: true|false metrics-server-address 127.0.0.1 Listening address of the metrics server metrics-server-port 8008 Listening HTTP port of the metrics server metrics-logging true Enable metrics logging: true|false","s":"Metrics config","u":"/guides/nwaku/config-options","h":"#metrics-config","p":199},{"i":222,"t":"Name Default Value Description dns-discovery false Enable discovering nodes via DNS dns-discovery-url URL for DNS node list in format 'enrtree://@' dns-discovery-name-server [\"1.1.1.1\", \"1.0.0.1\"] DNS name server IPs to query. Argument may be repeated rendezvous true Enable waku rendezvous discovery server","s":"DNS discovery config","u":"/guides/nwaku/config-options","h":"#dns-discovery-config","p":199},{"i":224,"t":"Name Default Value Description discv5-discovery false Enable discovering nodes via Node Discovery v5 discv5-udp-port 9000 Listening UDP port for Node Discovery v5 discv5-bootstrap-node Text-encoded ENR for bootstrap node. Used when connecting to the network. Argument may be repeated discv5-enr-auto-update false Discovery can automatically update its ENR with the IP address discv5-table-ip-limit 10 Maximum amount of nodes with the same IP in discv5 routing tables discv5-bucket-ip-limit 2 Maximum amount of nodes with the same IP in discv5 routing table buckets discv5-bits-per-hop 1 Kademlia's b variable, increase for less hops per lookup","s":"Discv5 config","u":"/guides/nwaku/config-options","h":"#discv5-config","p":199},{"i":226,"t":"Name Default Value Description peer-exchange false Enable waku peer exchange protocol (responder side): true|false peer-exchange-node Peer multiaddr to send peer exchange requests to. (enables peer exchange protocol requester side)","s":"Waku peer exchange config","u":"/guides/nwaku/config-options","h":"#waku-peer-exchange-config","p":199},{"i":228,"t":"Name Default Value Description websocket-support false Enable websocket: true|false websocket-port 8000 WebSocket listening port websocket-secure-support false Enable secure websocket: true|false websocket-secure-key-path Secure websocket key path: '/path/to/key.txt' websocket-secure-cert-path Secure websocket Certificate path: '/path/to/cert.txt'","s":"WebSocket config","u":"/guides/nwaku/config-options","h":"#websocket-config","p":199},{"i":230,"t":"Name Default Value Description rate-limit This is a repeatable option. Each can describe a specific rate limit configuration for a particular protocol. Formatted as::volume/period - if protocol is not given, settings will be taken as default for un-set protocols. Ex: 80/2s -Supported protocols are: lightpush|filter|px|store|storev2|storev3 -volume must be an integer value, representing number of requests over the period of time allowed. -period\\ must be an integer with defined unit as one of h|m|s|ms - storev2 and storev3 takes precedence over store which can easy set both store protocols at once. - In case of multiple set of the same protocol limit, last one will take place. - if config is not set, - which is the default - means unlimited requests are allowed. -filter has a bit different approach. It has a default setting applied if not overridden. Rate limit setting for filter will be applied per subscriber-peers, not globally - it must be considered when changing the setting. Examples: --rate-limit=\"100/1s\" - default for all protocols if not set otherwise. --rate-limit=\"lightpush:0/0s\" - lightpush protocol will not be rate-limited. --rate-limit=\"store:130/1500ms\" - both store-v3 and store-v2 will apply 130 request per each 1500ms separately. --rate-limit=\"px:10/1h\" PeerExchange will serve only 10 requests every hour. --rate-limit=\"filter:8/5m\" - will allow 8 subs/unsubs/ping requests for each subscriber within every 5 min. tip To configure your node using the provided configuration options, have a look at the Node Configuration Methods guide.","s":"Non-relay, request-response protocol DOS protection configuration","u":"/guides/nwaku/config-options","h":"#non-relay-request-response-protocol-dos-protection-configuration","p":199},{"i":232,"t":"Nwaku is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the protocols they want to support based on their needs, motivations, and available resources. This guide provides detailed steps to download, build, configure, and connect a nwaku node to the Waku Network. It also includes interacting with the node and finding its addresses. info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Run a Nwaku Node","u":"/guides/nwaku/run-node","h":"","p":231},{"i":234,"t":"To run a node, you must have the nwaku binary. Nwaku provides multiple options for running a node: Run nwaku in Docker (recommended)​ We recommend using Docker Compose to run a node because it's the simplest and fastest way to configure and run one: Description Documentation Docker Compose Run a nwaku node with Docker Compose Run Nwaku with Docker Compose Docker Container Run a nwaku node in a Docker Container Run Nwaku in a Docker Container Download the binary​ Description Documentation Precompiled Binary Download a precompiled binary of the nwaku node Download Nwaku Binary Nightly Release Try the latest nwaku updates without compiling the binaries Download Nightly Release Build the binary​ Description Documentation Build from Source Build the node from the nwaku source code Build Nwaku from Source tip You can run the nwaku binaries and Docker images on cloud service providers like Google Cloud, Microsoft Azure, Amazon Web Services, and DigitalOcean.","s":"Get the node binary","u":"/guides/nwaku/run-node","h":"#get-the-node-binary","p":231},{"i":236,"t":"Once you have gotten the nwaku binary, run it using the default configuration: # Run the Docker Compose docker-compose up -d # Run the standalone binary ./build/wakunode2 tip To learn how to customise the configuration of a nwaku node, have a look at the Node Configuration Methods and Node Configuration Examples guides.","s":"Run the node","u":"/guides/nwaku/run-node","h":"#run-the-node","p":231},{"i":238,"t":"To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms: Description Documentation Static Peers Configure the bootstrap nodes that nwaku should establish connections upon startup Configure Static Peers DNS Discovery Enable nwaku to bootstrap nodes using the DNS Discovery mechanism Configure DNS Discovery Discv5 Enable nwaku to discover peers using the Discv5 mechanism Configure Discv5 Peer Exchange Enable Peer Exchange protocol for light nodes to request peers from your nwaku node Configure Peer Exchange tip We suggest configuring WebSocket transport for your node to enable support and serving of browser peers using @waku/sdk.","s":"Bootstrap the node","u":"/guides/nwaku/run-node","h":"#bootstrap-the-node","p":231},{"i":240,"t":"You can interact with a running nwaku node through the REST API, such as querying the node information using the Get node info endpoint: Request Response curl --location 'http://127.0.0.1:8645/debug/v1/info' \\ --header 'Accept: application/json' { \"listenAddresses\": [ \"/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmUbPquFQqje3jiqoB5YoiUbBya59NB4qqEzeiTNGHeA6w\" ], \"enrUri\": \"enr:-Iu4QCQZXZDb_JsYmLoYor0F5E_95HbIywgO_wgx2rIdDbmCJZkTzmlCr0wmMzV47lgik_tVwww5mIng90Ris83TisMBgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQPszztG-Ev52ZB7tk0jF8s6Md4KvyY_rhzNZokaaB_ABIN0Y3CC6mCFd2FrdTIB\" } info The listenAddresses field stores the node's listening addresses, while the enrUri field stores the discoverable ENR URI for peer discovery.","s":"Interact with the node","u":"/guides/nwaku/run-node","h":"#interact-with-the-node","p":231},{"i":242,"t":"You can check the health status of the node by calling the Get node health status endpoint of the REST API: Request Response curl --location 'http://127.0.0.1:8645/health' \\ --header 'Accept: text/plain' Node is healthy tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully started, configured, and connected a nwaku node to the Waku Network. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.","s":"Check the node health status","u":"/guides/nwaku/run-node","h":"#check-the-node-health-status","p":231},{"i":244,"t":"This guide provides detailed steps to configure a nwaku node for different use cases.","s":"Node Configuration Examples","u":"/guides/nwaku/configure-nwaku","h":"","p":243},{"i":246,"t":"To join the Waku Network, nodes must bootstrap for an entry point before discovering more peers. Nwaku provides multiple peer discovery mechanisms: Configure Static Peers Configure DNS Discovery Configure Discv5 Configure Peer Exchange","s":"Connect to other peers","u":"/guides/nwaku/configure-nwaku","h":"#connect-to-other-peers","p":243},{"i":248,"t":"You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node using the dns4-domain-name option. This allows the node's publicly announced multiaddrs to use the /dns4 scheme. ./build/wakunode2 --dns4-domain-name=[DOMAIN NAME] For example, consider the domain name nwakunode.com, which resolves to a nwaku node: ./build/wakunode2 --dns4-domain-name=nwakunode.com Browser nodes can only connect to nodes with a domain name and secure WebSocket (wss) configured. These nodes will generate a discoverable ENR with /wss as the multiaddr and /dns4 as the domain name. This configuration is essential for verifying domain certificates when establishing a secure connection. info This example describes configuring a domain name that resolves to your node's IP address and is unrelated to DNS Discovery. tip You can use the domain name provided by your cloud provider to configure the domain name for your node.","s":"Configure a domain name","u":"/guides/nwaku/configure-nwaku","h":"#configure-a-domain-name","p":243},{"i":250,"t":"To enable message caching and serve them to network peers, enable the Store protocol using the following configuration options: store: Enables storing messages to serve them to peers (disabled by default). store-message-retention-policy: Retention policy of the store node (how long messages will be stored). Three different retention policies are supported: Time retention policy: time: (e.g., time:14400) Capacity retention policy: capacity: (e.g, capacity:25000) Size retention policy: size: (e.g, size:512MB or size:10GB) Set this option to none to disable the retention policy. If you omit this option, it will default to time:172800 (48 hours). store-message-db-url: Database connection URL for storing messages in the SQLAlchemy database URL format. Setting this option to an empty string will instruct the node to use the fallback in-memory message store. If you omit this option, it will default to sqlite://store.sqlite3. ./build/wakunode2 \\ --store=true \\ --store-message-retention-policy=[MESSAGE RETENTION POLICY] \\ --store-message-db-url=[DATABASE CONNECTION URL] For example, consider a nwaku node that is configured to be a Store protocol and retain messages received in the last 21600 seconds (6 hours): ./build/wakunode2 \\ --store=true \\ --store-message-retention-policy=time:21600 \\ --store-message-db-url=sqlite://store.sqlite3 You can configure nwaku as a Store client using the storenode option. This allows the node to query peers for historical messages but not store any message itself. ./build/wakunode2 --storenode=[STORE PEER MULTIADDR] For example, consider a nwaku node that does not store messages but can query peers for historical messages: ./build/wakunode2 --storenode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV","s":"Configure store protocol and message store","u":"/guides/nwaku/configure-nwaku","h":"#configure-store-protocol-and-message-store","p":243},{"i":252,"t":"Nodes generate new random key pairs at each boot, leading to different multiaddrs. To maintain consistency, you can use a pre-generated private key with the nodekey option: ./build/wakunode2 --nodekey=[NODE PRIVATE KEY] This option takes a Secp256k1 private key (64-char hex string). On Linux, you can use the OpenSSL rand command for a pseudo-random 32-byte hex string: openssl rand -hex 32 # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 On Linux, you can create a reusable key file using OpenSSL. To get the 32-byte private key in hex format, use the ecparam command and some standard utilities: # Generate key file openssl ecparam -genkey -name secp256k1 -out my_private_key.pem # Extract 32-byte private key openssl ec -in my_private_key.pem -outform DER | tail -c +8 | head -c 32| xxd -p -c 32 # read EC key # writing EC key # 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 You can use the output 286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8 as a Node Key for nwaku: ./build/wakunode2 --nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8","s":"Generate and configure a node key","u":"/guides/nwaku/configure-nwaku","h":"#generate-and-configure-a-node-key","p":243},{"i":254,"t":"WebSocket is the only transport method browser nodes support using @waku/sdk. To enable WebSocket in nwaku to serve browser peers, use the following configuration options: websocket-support: Enables WebSocket (ws) on the node (disabled by default). websocket-port (optional): WebSocket listening port. If you omit this option, it will default to 8000. websocket-secure-support: Enables Secure WebSocket (wss) on the node (disabled by default). websocket-secure-key-path: Secure WebSocket key path. websocket-secure-cert-path: Secure WebSocket Certificate path. ./build/wakunode2 \\ --websocket-support=true \\ --websocket-port=[WEBSOCKET LISTENING PORT] \\ --websocket-secure-support=true \\ --websocket-secure-key-path=[SECURE WEBSOCKET KEY PATH] \\ --websocket-secure-cert-path=[SECURE WEBSOCKET CERTIFICATE PATH] For example, consider a nwaku node that enabled WebSocket (unencrypted) for local testing on port 8001: ./build/wakunode2 \\ --websocket-support=true \\ --websocket-port=8001 Consider a nwaku node that enabled Secure WebSocket (encrypted) using its key and certificate (privkey.pem and fullchain.pem) on port 8002: ./build/wakunode2 \\ --websocket-secure-support=true \\ --websocket-secure-key-path=privkey.pem \\ --websocket-secure-cert-path=fullchain.pem \\ --websocket-port=8002 tip You can use Let's Encrypt or Certbot to generate a valid certificate for your nwaku node: sudo certbot certonly -d ","s":"Configure WebSocket transport","u":"/guides/nwaku/configure-nwaku","h":"#configure-websocket-transport","p":243},{"i":256,"t":"Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options: rest: Enables the REST API server on the node (disabled by default). rest-address (optional): Listening address of the REST API server. If you omit this option, it will default to 127.0.0.1. rest-port (optional): Listening port of the REST API server. If you omit this option, it will default to 8645. rest-relay-cache-capacity (optional): Capacity of the Relay REST API message cache. If you omit this option, it will default to 30. rest-admin (optional): Enables access to REST admin API (disabled by default). rest-private (optional): Enables access to REST private API (disabled by default). ./build/wakunode2 \\ --rest=true \\ --rest-address=[REST SERVER LISTENING ADDRESS] \\ --rest-port=[REST SERVER LISTENING PORT] \\ --rest-relay-cache-capacity=[MESSAGE CACHE CAPACITY] \\ --rest-admin=[true|false] \\ --rest-private=[true|false] For example, consider a nwaku node that enabled the REST API server on port 9000: ./build/wakunode2 \\ --rest=true \\ --rest-port=9000 \\ --rest-address=127.0.0.1 Consider a nwaku node that enabled the REST admin and private API with a message cache capacity of 100: ./build/wakunode2 \\ --rest=true \\ --rest-admin=true \\ --rest-private=true \\ --rest-relay-cache-capacity=100","s":"Configure REST API server","u":"/guides/nwaku/configure-nwaku","h":"#configure-rest-api-server","p":243},{"i":258,"t":"To enable nwaku to serve light clients, enable the Filter protocol using filter option: ./build/wakunode2 --filter=true You can configure nwaku as a Filter client using the filternode and filter-timeout options. This allows the node to request content filtering of messages from peers. ./build/wakunode2 \\ --filternode=[FILTER PEER MULTIADDR] \\ --filter-timeout=[FILTER PEER TIMEOUT] For example, consider a nwaku node that requests content filtering of messages from peers with a timeout of 21600 seconds (6 hours): ./build/wakunode2 \\ --filternode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV \\ --filter-timeout=21600 info If you omit the filter-timeout option, it will default to 14400 seconds (4 hours).","s":"Configure filter protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-filter-protocol","p":243},{"i":260,"t":"To enable nwaku to serve light clients, enable the Light Push protocol using the lightpush option: ./build/wakunode2 --lightpush=true You can configure nwaku as a Light Push client using the lightpushnode option. This allows the node to request lightpush of published messages from peers. ./build/wakunode2 --lightpushnode=[LIGHT PUSH PEER MULTIADDR] For example, consider a nwaku node that requests lightpush of published messages from peers: ./build/wakunode2 --lightpushnode=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV","s":"Configure light push protocol","u":"/guides/nwaku/configure-nwaku","h":"#configure-light-push-protocol","p":243},{"i":262,"t":"When using a reverse proxy server for SSL/TLS encryption, you only want to announce the proxy server's IP or domain. Nwaku provides the ext-multiaddr-only and ext-multiaddr options for specifying published multiaddr: ./build/wakunode2 \\ --ext-multiaddr-only=true \\ --ext-multiaddr=[MULTIADDR TO PUBLISH] info The ext-multiaddr-only option takes precedence over the nat and dns4-domain-name options, using the values provided by the ext-multiaddr option instead.","s":"Run nwaku behind a reverse proxy","u":"/guides/nwaku/configure-nwaku","h":"#run-nwaku-behind-a-reverse-proxy","p":243},{"i":264,"t":"nwaku-compose is a ready-to-use Docker Compose setup that configures the following automatically: nwaku node running Relay and Store protocols with RLN enabled. Simple frontend to interact with the node and Waku network to send and receive messages. Grafana metrics dashboard for advanced users and node operators to monitor the node.","s":"Run Nwaku with Docker Compose","u":"/guides/nwaku/run-docker-compose","h":"","p":263},{"i":266,"t":"tip Check out the Waku Node Operator Cheatsheet to learn how to easily run, monitor, and interact with a node.","s":"Video tutorial","u":"/guides/nwaku/run-docker-compose","h":"#video-tutorial","p":263},{"i":268,"t":"Git or GitHub Desktop Docker and Docker Compose Ethereum Sepolia HTTPS Endpoint Wallet with Sepolia Ethereum (~0.6 Sepolia ETH) A password to protect your RLN membership info We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.","s":"Prerequisites","u":"/guides/nwaku/run-docker-compose","h":"#prerequisites","p":263},{"i":270,"t":"git clone https://github.com/waku-org/nwaku-compose cd nwaku-compose","s":"Clone the repository","u":"/guides/nwaku/run-docker-compose","h":"#clone-the-repository","p":263},{"i":272,"t":"Docker Compose reads the .env file from the filesystem. You can use .env.example as a template to provide the configuration values. The recommended process for working with .env files is to duplicate .env.example, rename it as .env, and then make the necessary value edits. cp .env.example .env ${EDITOR} .env caution Ensure that you do NOT include any secrets in the .env.example file, as it could accidentally be shared in your Git repository.","s":"Configure the setup","u":"/guides/nwaku/run-docker-compose","h":"#configure-the-setup","p":263},{"i":274,"t":"The RLN membership is your access key to The Waku Network. Its registration is done on-chain, allowing your nwaku node to send messages decentralised and privately, respecting some rate limits. Other peers won't relay messages that exceed the rate limit. This command registers your membership and saves it in the keystore/keystore.json file. You should have Docker running at this step: ./register_rln.sh tip If you only want to relay traffic without sending messages to the network, you don't need to register for RLN membership.","s":"Register for RLN membership","u":"/guides/nwaku/run-docker-compose","h":"#register-for-rln-membership","p":263},{"i":276,"t":"Launch all the processes: nwaku node, database for storing messages, and Grafana for metrics with the following command. Your RLN membership is loaded into nwaku under the hood: docker-compose up -d View the logs of the node to confirm that it is running correctly: docker-compose logs -f nwaku","s":"Run the node","u":"/guides/nwaku/run-docker-compose","h":"#run-the-node","p":263},{"i":278,"t":"Visit http://localhost:3000/d/yns_4vFVk/nwaku-monitoring to view your node metrics in real time. tip To access Grafana from outside your machine, remove 127.0.0.1 and open the port. Consider setting up a password for Grafana to ensure security.","s":"Monitor the node","u":"/guides/nwaku/run-docker-compose","h":"#monitor-the-node","p":263},{"i":280,"t":"Your nwaku node provides a REST API on port 8645 for interacting with it: # Get nwaku version curl --location 'http://127.0.0.1:8645/debug/v1/version' # Get nwaku info curl --location 'http://127.0.0.1:8645/debug/v1/info' Send a message to a contentTopic, which all subscribers will receive. Please note that the payload is encoded in base64. curl --location 'http://127.0.0.1:8645/relay/v1/auto/messages' \\ --header 'Content-Type: application/json' \\ --data '{ \"payload\": \"'$(echo -n \"Hello Waku Network - from Anonymous User\" | base64)'\", \"contentTopic\": \"/my-app/2/chatroom-1/proto\" }' Retrieve messages sent to a contentTopic. Please note that this query can be made to any Store node within the network: curl --location 'http://127.0.0.1:8645/store/v1/messages?contentTopics=%2Fmy-app%2F2%2Fchatroom-1%2Fproto&pageSize=50&ascending=true' \\ --header 'Accept: application/json' tip If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord. Congratulations! You have successfully started a nwaku node with RLN enabled using Docker Compose. Have a look at the Node Configuration Examples and Advanced Configuration guides to learn how to configure nwaku for different use cases.","s":"Interact with the node","u":"/guides/nwaku/run-docker-compose","h":"#interact-with-the-node","p":263},{"i":282,"t":"Content Topics are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages (Relay or Filter) and retrieving historical messages (Store) that meet specific filtering criteria. Have a look at the WAKU2-TOPICS specification to learn more.","s":"Content Topics","u":"/learn/concepts/content-topics","h":"","p":281},{"i":284,"t":"Here is the recommended format for content topics: /{application-name}/{version}/{content-topic-name}/{encoding} application-name: This is the unique name of your decentralised application (DApp) to prevent conflicts with other DApps. version: Typically starting at 1, this field helps track breaking changes in your messages. content-topic-name: The specific name of the content topic used for filtering. encoding: The message encoding or serialisation format, with Protocol Buffers (proto) being the recommended choice. For example, if your DApp is called SuperCrypto and it allows users to receive notifications and send private messages, you can consider using the following content topics: /supercrypto/1/notification/proto /supercrypto/1/private-message/proto tip While you can choose any encoding format for your Content Topic, we highly recommend using Protocol Buffers (proto) because of its efficiency. Choosing a lightweight format ensures optimal performance of your DApp.","s":"Naming format","u":"/learn/concepts/content-topics","h":"#naming-format","p":281},{"i":286,"t":"When choosing a content topic, it is essential to consider the privacy implications. Here are several factors to keep in mind:","s":"Naming considerations","u":"/learn/concepts/content-topics","h":"#naming-considerations","p":281},{"i":288,"t":"The Filter, Store, and Light Push protocols share content topics with peers, allowing them to link IP and content topic interests. The Relay protocol, using GossipSub, provides recipient anonymity, which can be compromised if the content topic exposes user information. For example, instead of using Personally Identifiable Information (PII) in the content topic (e.g., a public key), you can create buckets (e.g., based on the first 4 bytes of the public key hash). info Waku is developing privacy-preserving features like Anonymous Filter Subscription for the Filter protocol and Anonymous Query for the Store protocol to hide content topics from potential adversaries.","s":"Protocols disclose content topics to peers","u":"/learn/concepts/content-topics","h":"#protocols-disclose-content-topics-to-peers","p":281},{"i":290,"t":"You can increase k-anonymity within the network by using a unified content topic across the entire application or targeting specific features like notifications or private messages, allowing multiple users to share it. We recommend switching functionality using the Protocol Buffer (proto) message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy. For example: message NotificationPayload { ... } message FeatureAbcPayload { ... } // By default, all fields in protobuf are optional so only field may be encoded at a time message Payload { NotificationPayload notification = 1; FeatureAbcPayload feature_abc = 2; }","s":"Increasing k-anonymity preserves user anonymity","u":"/learn/concepts/content-topics","h":"#increasing-k-anonymity-preserves-user-anonymity","p":281},{"i":292,"t":"When an application uses a single content topic, all users using request/response protocols (Filter, Store) receive all its messages. For heavy traffic, developers can create buckets by hashing a unique identifier (e.g., recipient's ID, public key, or app domain topic) and adding its first byte to the content topic, like /my-app/0/a/proto. This approach divides traffic into multiple topics, reducing the messages users have to download. Developers can add more first bytes to the content topic over time to improve efficiency and privacy based on messages and user needs. info The k value of k-anonymity equals the number of IDs for which the first character of the hash is \"a\". For example, using a single content topic in an application with 10,000 users results in k = 10,000. However, using the hash ID's first character, k reduces to 10,000 / 16 = 625.","s":"Creating buckets help in distributing traffic","u":"/learn/concepts/content-topics","h":"#creating-buckets-help-in-distributing-traffic","p":281},{"i":294,"t":"Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more. Pros​ Decentralised with random sampling from a global view. Continuously researched and improved. Cons​ Requires lots of connections and involves frequent churn. Relies on User Datagram Protocol (UDP), which is not supported in web browsers.","s":"Discv5","u":"/learn/concepts/discv5","h":"","p":293},{"i":296,"t":"DNS Discovery protocol is executed. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR. Bob returns Carol's, David's and Erin's ENRs to Alice. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR. Carol returns Frank's, Gwen's and Harry's ENRs to Alice. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details. Alice selects to dial David, Frank and Gwen. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.","s":"Overview","u":"/learn/concepts/discv5","h":"#overview","p":293},{"i":298,"t":"The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on Discv5. The peer exchange protocol enables light nodes to request peers from other nodes within the network. info Peer Exchange enables requesting random peers from other network nodes without revealing information about their connectivity or neighbourhood. Pros​ Low resource requirements. Decentralised with random sampling of nodes from a global view using Discv5. Cons​ Decreased anonymity. Imposes additional load on responder nodes.","s":"Peer Exchange","u":"/learn/concepts/peer-exchange","h":"","p":297},{"i":300,"t":"DNS Discovery protocol is executed. Alice retrieves Bob's websocket multiaddr from DNS Server. Alice dials Bob using libp2p protocols. Alice executes a Peer Exchange query to Bob. Bob returns Carol's and David's ENR to Alice. Alice decodes ENRs and extracts Carol's and David's websocket multiaddrs. Alice dials Carol and David. Alice can now drop the connection with Bob (bootstrap node); Alice has 2 connections to the Waku Network.","s":"Overview","u":"/learn/concepts/peer-exchange","h":"#overview","p":297},{"i":302,"t":"When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping. Once a connection is established, the node must actively seek out additional peers to have: Sufficient peers in the Relay mesh: The goal is to have at least 6 peers in the mesh. This ensures a robust network where messages can be efficiently relayed. Reserve peers for backup: It is essential to have a surplus of peers available as reserves. These reserves are backups when the current peers become overloaded or experience unexpected disconnections. Peers with specific capabilities: The node seeks out peers with specific capabilities, such as Store, Light Push, or Filter. This allows for targeted interactions and enhanced functionality based on the desired capabilities. Waku supports multiple peer discovery mechanisms, such as: Configuring Static Peers Peer Discovery via DNS Discv5 Ambient Peer Discovery Peer Exchange","s":"Peer Discovery","u":"/learn/concepts/peer-discovery","h":"","p":301},{"i":304,"t":"Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:","s":"Protocols","u":"/learn/concepts/protocols","h":"","p":303},{"i":306,"t":"Relay protocol employs a Pub/Sub architecture to facilitate the sending and receiving of messages among peers. It extends the libp2p GossipSub protocol to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship. It also scales the Waku Network to accommodate many nodes efficiently.","s":"Relay","u":"/learn/concepts/protocols","h":"#relay","p":303},{"i":308,"t":"RLN Relay protocol extends the Relay protocol by using Rate Limit Nullifiers (RLN) to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the RLN Relay blog post.","s":"RLN relay","u":"/learn/concepts/protocols","h":"#rln-relay","p":303},{"i":310,"t":"Filter protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network, particularly tailored for devices with limited bandwidth. info Filter protocol helps optimise bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.","s":"Filter","u":"/learn/concepts/protocols","h":"#filter","p":303},{"i":312,"t":"Store protocol is responsible for storing messages relayed in the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection. info Using Relay and Filter protocols is recommended when a node is online, as Store does not guarantee data availability. The Store protocol is suitable for retrieving messages when connecting to the network, like when a DApp starts.","s":"Store","u":"/learn/concepts/protocols","h":"#store","p":303},{"i":314,"t":"Light Push is a Request/Response protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgement when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the Relay network. info While the Light Push protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.","s":"Light push","u":"/learn/concepts/protocols","h":"#light-push","p":303},{"i":316,"t":"Waku Message specifies the structure and format of messages in the Waku Network. It includes the following attributes: content_topic attribute for content-based filtering. payload attribute containing the message data payload to be sent. meta attribute for conveying additional details to various protocols for application-specific processing. timestamp attribute signifying the time at which the message was generated by its sender. ephemeral attribute specifying whether the network should not store the message.","s":"Waku message","u":"/learn/concepts/protocols","h":"#waku-message","p":303},{"i":318,"t":"Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or run a node. Pros​ Low latency. Low resource requirements. Cons​ Vulnerable to censorship: Node IPs can be blocked or restricted. Limited scalability: The number of nodes is fixed and cannot easily be expanded. Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.","s":"Static Peers","u":"/learn/concepts/static-peers","h":"","p":317},{"i":320,"t":"Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node.","s":"Overview","u":"/learn/concepts/static-peers","h":"#overview","p":317},{"i":322,"t":"Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.","s":"Network Domains","u":"/learn/concepts/network-domains","h":"","p":321},{"i":324,"t":"Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as Discv5 and Peer Exchange. These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.","s":"Discovery domain","u":"/learn/concepts/network-domains","h":"#discovery-domain","p":321},{"i":326,"t":"GossipSub derives its name from the practice within Pub/Sub networks where peers gossip about the messages they have encountered, thus establishing a message delivery network. Waku employs gossiping through Relay to distribute messages across the network. Additionally, Waku introduces RLN Relay, an experimental mechanism that combines privacy preservation and economic spam protection.","s":"Gossip domain","u":"/learn/concepts/network-domains","h":"#gossip-domain","p":321},{"i":328,"t":"Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes. Store enables the retrieval of historical messages. Filter efficiently retrieves a subset of messages to conserve bandwidth. Light Push facilitates message publication for nodes with limited bandwidth and short connection windows.","s":"Request/response domain","u":"/learn/concepts/network-domains","h":"#requestresponse-domain","p":321},{"i":330,"t":"Here is a diagram illustrating the interaction between different protocols within the Waku Network. The Pub/Sub topic pubtopic1 serves as a means of routing messages (the network employs a default Pub/Sub topic) and indicates that it is subscribed to messages on that topic for a relay. Node D serves as a Store and is responsible for storing messages. Node A creates a WakuMessage msg1 with Content Topic contentTopic1. Node F requests to get messages filtered by Pub/Sub topic pubtopic1 and Content Topic contentTopic1. Node D subscribes F to this filter and will forward messages that match that filter in the future. Node A publishes msg1 on pubtopic1. The message is sent from Node A to Node B and then forwarded to Node D. Node D, upon receiving msg1, stores the message for future retrieval by other nodes and forwards it to Node C. Node D also pushes msg1 to Node F, informing it about the arrival of a new message. At a later time, Node E comes online and requests messages matching pubtopic1 and contentTopic1 from Node D. Node D responds with msg1 and potentially other messages that match the query.","s":"Overview of protocol interaction","u":"/learn/concepts/network-domains","h":"#overview-of-protocol-interaction","p":321},{"i":332,"t":"Definitions and usage of the terminology used in the Waku ecosystem.","s":"Waku Docs Glossary","u":"/learn/glossary","h":"","p":331},{"i":334,"t":"Bootstrapping is the initial entry point of a node to the Waku Network. Once connected, other peer discovery methods can be employed to locate other peers in the network.","s":"Bootstrapping","u":"/learn/glossary","h":"#bootstrapping","p":331},{"i":336,"t":"A content topic is a string attached to messages to enable protocol-level features like selective message processing and retrieval based on specific criteria.","s":"Content topic","u":"/learn/glossary","h":"#content-topic","p":331},{"i":338,"t":"Dappnode is an open-source platform that simplifies the hosting and management of decentralised applications and blockchain nodes, including Waku.","s":"Dappnode","u":"/learn/glossary","h":"#dappnode","p":331},{"i":340,"t":"Discv5 is a peer discovery mechanism using a Distributed Hash Table (DHT) to store ENR records, providing censorship resistance, load distribution, and enhanced network resilience.","s":"Discv5","u":"/learn/glossary","h":"#discv5","p":331},{"i":342,"t":"DNS discovery is a peer discovery mechanism that allows the retrieval of an ENR tree from the TXT field of a domain name, enabling the storage of node connection details and promoting decentralisation.","s":"DNS discovery","u":"/learn/glossary","h":"#dns-discovery","p":331},{"i":344,"t":"Ethereum Node Record (ENR) is a specification used to represent and identify nodes, facilitating discovery and communication within the network. Besides connection details, ENR also includes node configuration information like enabled protocol and shards.","s":"ENR","u":"/learn/glossary","h":"#enr","p":331},{"i":346,"t":"Filter is a protocol that enables light nodes to selectively subscribe to specific messages transmitted by peers using content topics. It is designed to be a lightweight alternative for accessing the Relay network.","s":"Filter","u":"/learn/glossary","h":"#filter","p":331},{"i":348,"t":"GossipSub is a protocol for efficient and scalable information dissemination in decentralised networks commonly used in blockchain systems.","s":"GossipSub","u":"/learn/glossary","h":"#gossipsub","p":331},{"i":350,"t":"Libp2p is a modular network stack and protocol suite that allows developers to build decentralised, peer-to-peer applications across various network protocols.","s":"Libp2p","u":"/learn/glossary","h":"#libp2p","p":331},{"i":352,"t":"A light node is a resource-limited device or client that leverages service nodes to access the Relay network.","s":"Light node","u":"/learn/glossary","h":"#light-node","p":331},{"i":354,"t":"Light push is a protocol enabling light nodes to send messages to the Relay network and receive acknowledgements confirming that a peer has received them.","s":"Light push","u":"/learn/glossary","h":"#light-push","p":331},{"i":356,"t":"Mostly offline devices are clients who spend most of their time offline or disconnected from the internet and only occasionally to the internet and Waku Network. Examples include browsers and mobile phones.","s":"Mostly offline","u":"/learn/glossary","h":"#mostly-offline","p":331},{"i":358,"t":"A node is a device or client that implements Waku protocols and leverages the Waku Network to enable secure and private peer-to-peer web3 communication.","s":"Node","u":"/learn/glossary","h":"#node","p":331},{"i":360,"t":"A node key is a Secp256k1 (64-char hex string) private key for generating the PeerID, listening addresses, and discovery addresses of a Waku node.","s":"Node key","u":"/learn/glossary","h":"#node-key","p":331},{"i":362,"t":"Out-of-band refers to exchanging information through a separate, secure channel distinct from the main communication method to enhance security.","s":"Out-of-band","u":"/learn/glossary","h":"#out-of-band","p":331},{"i":364,"t":"The payload field in a Waku Message contains the application data, serving as the business logic message transmitted between clients over Waku. Applications can encrypt the payload or employ encryption methods specified in Waku Message Payload Encryption.","s":"Payload","u":"/learn/glossary","h":"#payload","p":331},{"i":366,"t":"A peer refers to other nodes and participants of the Waku Network with whom communication and interaction are possible.","s":"Peer","u":"/learn/glossary","h":"#peer","p":331},{"i":368,"t":"Peer discovery is when a node locates and gets information about other peers in the Waku Network.","s":"Peer discovery","u":"/learn/glossary","h":"#peer-discovery","p":331},{"i":370,"t":"Peer exchange is a peer discovery mechanism that enables light nodes to request and receive peers from other nodes in the network, allowing them to bootstrap and expand their connections without depending on Discv5.","s":"Peer exchange","u":"/learn/glossary","h":"#peer-exchange","p":331},{"i":372,"t":"PeerID is the unique identifier of a node in the Waku Network generated from the cryptographic hash of the node's public key.","s":"Peer ID","u":"/learn/glossary","h":"#peer-id","p":331},{"i":374,"t":"A protocol is a set of rules that enables nodes within the Waku Network to perform various functionalities such as message sending, relaying, filtering, storing, retrieving, and more.","s":"Protocol","u":"/learn/glossary","h":"#protocol","p":331},{"i":376,"t":"Publish/Subscribe (Pub/Sub) is an asynchronous messaging pattern where publishers send messages to topics, and subscribers receive messages from topics of interest, allowing efficient one-to-many communication.","s":"Pub/Sub","u":"/learn/glossary","h":"#pubsub","p":331},{"i":378,"t":"A Pub/Sub topic is a string that serves as an identifier for the topic of interest among GossipSub peers. Peers interested in the same topic are likely to maintain a connection and forward messages received on that topic.","s":"Pub/Sub topic","u":"/learn/glossary","h":"#pubsub-topic","p":331},{"i":380,"t":"Rate Limit Nullifiers (RLN) are a construct based on zero-knowledge proofs that enables rate limiting functionality while preserving the users's anonymity.","s":"Rate limit nullifiers","u":"/learn/glossary","h":"#rate-limit-nullifiers","p":331},{"i":382,"t":"Relay is a protocol that extends the GossipSub protocol to enable secure and censorship resistant message sending and receiving among peers while preserving privacy. It also scales the Waku Network to accommodate many nodes efficiently.","s":"Relay","u":"/learn/glossary","h":"#relay","p":331},{"i":384,"t":"Resource-limited refers to environments or devices restricting available resources, including bandwidth, CPU, memory, disk, and battery power.","s":"Resource-limited","u":"/learn/glossary","h":"#resource-limited","p":331},{"i":386,"t":"RLN Relay is an extension of the Relay protocol that uses Rate Limit Nullifiers (RLN) to prevent spam economically by enforcing a rate limit on messages over time, imposing penalties, and facilitating network removal for spammers.","s":"RLN relay","u":"/learn/glossary","h":"#rln-relay","p":331},{"i":388,"t":"SDKs are tools, libraries, and resources to integrate Waku's private, secure, and censorship-free communication features into various applications.","s":"SDK","u":"/learn/glossary","h":"#sdk","p":331},{"i":390,"t":"Store is a protocol that enables the storage of relayed messages in the network, allowing offline peers to retrieve missed messages upon reconnecting to the network.","s":"Store","u":"/learn/glossary","h":"#store","p":331},{"i":392,"t":"A transport is a network mechanism that establishes connections between peers and enables efficient transmission, routing, and delivery of data packets.","s":"Transport","u":"/learn/glossary","h":"#transport","p":331},{"i":394,"t":"Waku is a family of private, secure, decentralised, and peer-to-peer web3 communication protocols designed to operate in resource-limited environments and suitable for node or desktop application use. Additionally, these protocols collectively form the Waku Network.","s":"Waku","u":"/learn/glossary","h":"#waku","p":331},{"i":396,"t":"Waku Message defines the structure of messages in the Waku Network, including the content topic, payload, and metadata for application-specific processing.","s":"Waku message","u":"/learn/glossary","h":"#waku-message","p":331},{"i":398,"t":"Waku Message Payload Encryption provides guidelines for implementing secure and private communication in the Waku Network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.","s":"Waku message payload encryption","u":"/learn/glossary","h":"#waku-message-payload-encryption","p":331},{"i":400,"t":"The Waku Network is an open-access, scalable peer-to-peer messaging network emphasizing privacy protection and accessibility to resource limited devices.","s":"Waku network","u":"/learn/glossary","h":"#waku-network","p":331},{"i":402,"t":"Waku Noise is a specified way to use the Noise Protocol Framework to build protocols that enable secure key-exchange mechanisms for encrypted communication with confidentiality, authenticity, integrity, strong forward secrecy, and identity-hiding properties.","s":"Waku noise","u":"/learn/glossary","h":"#waku-noise","p":331},{"i":404,"t":"How can I start building my application using Waku? Check out the Getting Started guide to explore our numerous SDKs and learn how to run a Waku node. Does messaging on Waku require a gas fee? No, sending and receiving messages on Waku involves no gas fee. What encryption does Waku use? Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely. Where does Waku store the messages? Waku's Store protocol is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using Codex for long-term storage. Can Waku only be used for wallet-to-wallet messaging? No, Waku is flexible and imposes no specific rules on identifiers. How does Waku differ from IPFS? Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons. What are Rate Limiting Nullifiers (RLN)? Rate Limiting Nullifier is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which Relay nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame. How to start a Waku node? Follow the README instructions at nwaku-compose.","s":"Waku FAQ","u":"/learn/faq","h":"","p":403},{"i":406,"t":"The following features are currently experimental and under research and initial implementation:","s":"Research","u":"/learn/research","h":"","p":405},{"i":408,"t":"We aim to enable an incentivised spam protection technique to enhance Relay by using Rate Limit Nullifiers (RLN). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the RLN Relay blog post. We have prepared a PoC implementation of this method in JS: https://examples.waku.org/rln-js/","s":"Economic spam resistance","u":"/learn/research","h":"#economic-spam-resistance","p":405},{"i":410,"t":"Denial of service signifies the case where an adversarial peer exhausts another node's service capacity (e.g., by making a large number of requests) and makes it unavailable to the rest of the system. RnD on DoS attack mitigation can be tracked from here: https://github.com/vacp2p/research/issues/148. In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivising the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in Store and Filter to protect against DoS attacks. Additionally, along with RLN, this gives node operators who provide a useful service to the network an incentive to perform that service. Read more here: https://vac.dev/building-privacy-protecting-infrastructure You can also read more about the ongoing challenges the Waku team is working on here: https://github.com/waku-org/research","s":"Prevention of denial of service (DoS) and node incentivisation","u":"/learn/research","h":"#prevention-of-denial-of-service-dos-and-node-incentivisation","p":405},{"i":412,"t":"Waku's protocol layers offer different services and security considerations, shaping the overall security of Waku. We document the security models in the RFCs of the protocols, aiming to provide transparent and open-source references. This empowers Waku users to understand each protocol's security guarantees and limitations. Some of Waku's security features include the following:","s":"Security Features","u":"/learn/security-features","h":"","p":411},{"i":414,"t":"Waku ensures pseudonymity across its protocol layers, using libp2p PeerID as identifiers instead of disclosing true identities. However, it is important to note that pseudonymity does not provide complete anonymity. Actions performed under the same pseudonym (PeerID) can be linked, leading to the potential re-identification of the actual actor.","s":"Pseudonymity","u":"/learn/security-features","h":"#pseudonymity","p":411},{"i":416,"t":"Anonymity means an adversary cannot connect an actor to their actions or data. To achieve anonymity, avoiding linking activities with actors or their Personally Identifiable Information (PII) is crucial. In Waku, the following anonymity features are provided: Publisher-message unlinkability: Ensures that the publisher of messages in the Relay protocol cannot be linked to their published messages. Subscriber-topic unlinkability: Ensures that the subscriber of topics in the Relay protocol cannot be linked to the topics they have subscribed to.","s":"Anonymity/unlinkability","u":"/learn/security-features","h":"#anonymityunlinkability","p":411},{"i":418,"t":"The spam protection feature in Relay ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the scoring mechanism of GossipSub v1.1. Peers assign scores to their connections based on their behaviour and remove peers with low scores. Ongoing research is being conducted, including developing Rate Limit Nullifiers (RLN), which can be explored further at: https://github.com/vacp2p/research/issues/148.","s":"Spam protection","u":"/learn/security-features","h":"#spam-protection","p":411},{"i":420,"t":"Confidentiality in Waku is ensured through data encryption, while integrity and authenticity are achieved through digital signatures. These security measures are available in Waku Message (version 1) and Noise protocols, which offer payload encryption and encrypted signatures. Noise protocols also facilitate secure channel negotiation within the Waku Network.","s":"Data confidentiality, integrity, and authenticity","u":"/learn/security-features","h":"#data-confidentiality-integrity-and-authenticity","p":411},{"i":422,"t":"In protocols like Store and Filter, where direct connections are required for the designated service, anonymity or unlinkability is not guaranteed. This is because nodes use their PeerID to identify each other during direct connections, making the service obtained in these protocols linkable to the beneficiary's PeerID, considered Personally Identifiable Information (PII). In Store, the queried node can link the querying node's PeerID to the topics being queried. Similarly, in Filter, a node can link the PeerID of a light node to its content filter.","s":"Security considerations","u":"/learn/security-features","h":"#security-considerations","p":411},{"i":424,"t":"On this page A migration guide for refactoring your application code from Waku v0.026 to v0.027.","s":"Migrating to Waku v0.027","u":"/migrations/js-waku/migration_v0.026_0.027","h":"","p":423},{"i":426,"t":"Migrating to Waku v0.027 Table of Contents Network Configuration Default Network Configuration Static Sharding Auto Sharding Pubsub Topic Configuration Removed APIs Type Changes Internal/Private Utility Function Changes","s":"Table of Contents","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#table-of-contents","p":423},{"i":428,"t":"The way to configure network settings for a Waku node has been simplified. The new NetworkConfig type only allows for Static Sharding or Auto Sharding.","s":"Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#network-configuration","p":423},{"i":430,"t":"If no network configuration is provided when creating a Light Node, The Waku Network configuration will be used by default. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode(); // This would use the default pubsub topic, that was, `/waku/2/default-waku/proto` After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode(); // This will now use The Waku Network configuration by default: // { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }","s":"Default Network Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#default-network-configuration","p":423},{"i":432,"t":"Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, shards: [0, 1, 2, 3] } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, shards: [0, 1, 2, 3] } });","s":"Static Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#static-sharding","p":423},{"i":434,"t":"Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"] } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/notifications/proto\"] } });","s":"Auto Sharding","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#auto-sharding","p":423},{"i":436,"t":"Named pubsub topics are no longer supported. You must use either Static Sharding or Auto Sharding to configure pubsub topics. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ pubsubTopics: [\"/waku/2/default-waku/proto\"] }); After Use Static Sharding: import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, shards: [0, 1, 2, 3, 4, 5, 6, 7] } }); Or use Auto Sharding: import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/your-app/1/default/proto\"] } });","s":"Pubsub Topic Configuration","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#pubsub-topic-configuration","p":423},{"i":438,"t":"The following APIs have been removed: ApplicationInfo type: Use string for application and version in NetworkConfig instead. shardInfo option in createLightNode: Use networkConfig instead. pubsubTopics option in createLightNode: Use networkConfig with Static Sharding or Auto Sharding instead. If you were using ApplicationInfo before, you should now use ContentTopicInfo (Auto Sharding) and specify your application and version in the content topic string. Before import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ shardInfo: { clusterId: 1, application: \"my-app\", version: \"1\" } }); After import { createLightNode } from \"@waku/sdk\"; const waku = await createLightNode({ networkConfig: { clusterId: 1, contentTopics: [\"/my-app/1/default/proto\"] } });","s":"Removed APIs","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#removed-apis","p":423},{"i":440,"t":"ShardingParams has been removed. Use NetworkConfig instead. NetworkConfig is now defined as StaticSharding | AutoSharding. StaticSharding is equivalent to the previous ShardInfo. AutoSharding is equivalent to the previous ContentTopicInfo.","s":"Type Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#type-changes","p":423},{"i":442,"t":"Several utility functions have been updated or added: ensureShardingConfigured has been removed. Use derivePubsubTopicsFromNetworkConfig instead. New function derivePubsubTopicsFromNetworkConfig has been added to derive pubsub topics from the network configuration. shardInfoToPubsubTopics now accepts Partial instead of Partial. New function pubsubTopicsToShardInfo has been added to convert pubsub topics to a ShardInfo object. If you were using any of these utility functions directly, you'll need to update your code accordingly. Before import { ensureShardingConfigured } from \"@waku/utils\"; const result = ensureShardingConfigured(shardInfo); After import { derivePubsubTopicsFromNetworkConfig } from \"@waku/utils\"; const pubsubTopics = derivePubsubTopicsFromNetworkConfig(networkConfig); Note: The default NetworkConfig for The Waku Network is now { clusterId: 1, shards: [0,1,2,3,4,5,6,7] }.","s":"Internal/Private Utility Function Changes","u":"/migrations/js-waku/migration_v0.026_0.027","h":"#internalprivate-utility-function-changes","p":423},{"i":444,"t":"The Waku Network is a shared p2p messaging network that is open-access, useful for generalized messaging, privacy-preserving, scalable and accessible even to resource-restricted devices. Some of the most prominent features include: DoS/spam protection with privacy-preserving Rate-Limiting Nullifiers. Scalability by sharding traffic into 8 pubsub topics. Automatic shard selection based on content topic. Services for resource-restricted nodes, including historical message storage and retrieval, filtering, etc. tip If you want to learn more about the Waku Network, The Waku Network: Technical Overview article provides an in-depth look under the hood.","s":"The Waku Network","u":"/learn/waku-network","h":"","p":443},{"i":446,"t":"Applications or projects can build decentralized communication components on this network, gaining from the fault-tolerance of shared infrastructure, the out-of-the-box censorship resistance of a p2p network and the privacy-preservation of Waku protocols. Supporters of public goods and decentralized infrastructure can run their nodes to support the network. We are also working on incentivisation vectors to encourage more node operators to provide services to the network.","s":"Why join the Waku network?","u":"/learn/waku-network","h":"#why-join-the-waku-network","p":443},{"i":448,"t":"Ethereum Sepolia HTTPS endpoint, which can be yours or from a third party. Have a look at the Access a Sepolia Node Using Infura guide for a free Infura option. This node is used to interact with the on-chain RLN membership contract. Wallet with Sepolia Ethereum (less than 0.1 Sepolia ETH). Have a look at the Create a Sepolia Ethereum Wallet and Obtain Sepolia Ethereum from Faucet guides to get a Sepolia wallet and fund it with some Sepolia Ethereum. This wallet is required to register RLN membership, which is essential for publishing on the network.","s":"Prerequisites","u":"/learn/waku-network","h":"#prerequisites","p":443},{"i":450,"t":"Have a look at the Run Nwaku with Docker Compose guide for instructions on running a nwaku node in the Waku Network. Use the Sepolia node and wallet you obtained above. info The public Waku Network replaces the previous experimental shared routing layer based on a default pubsub topic (/waku/2/default-waku/proto). If your project currently uses this or any other shared pubsub topics, we encourage you to migrate to the public Waku Network with built-in DoS protection, scalability, and reasonable bandwidth usage.","s":"Running a Waku network node","u":"/learn/waku-network","h":"#running-a-waku-network-node","p":443},{"i":452,"t":"Built upon the foundation of EIP-1459: Node Discovery via DNS, DNS Discovery allows the retrieval of an ENR tree from the TXT field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr. This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralisation. Pros​ Low latency, low resource requirements. Easy bootstrap list updates by modifying the domain name, eliminating the need for code changes. Ability to reference a larger list of nodes by including other domain names in the code or ENR tree. Cons​ Vulnerable to censorship: Domain names can be blocked or restricted. Limited scalability: The listed nodes are at risk of being overwhelmed by receiving all queries. Also, operators must provide their ENR to the domain owner for listing.","s":"DNS Discovery","u":"/learn/concepts/dns-discovery","h":"","p":451},{"i":454,"t":"DNS lookup query to retrieve TXT data stored on example.com domain. enrtree-root is returned, and the value of e is the enr-root, the root hash of the node subtree. DNS lookup query to retrieve TXT data stored on .example.com domain. enrtree-branch is returned; this tree contains hashes of node subtrees. DNS lookup query to retrieve TXT data stored on DU...VQ.example.com domain, the first leaf of enrtree-branch. enr record is returned. Returned value is decoded, and peer connection details such as IP address and port are learned.","s":"Overview","u":"/learn/concepts/dns-discovery","h":"#overview","p":451},{"i":456,"t":"Since Waku is built on top of libp2p, they share a lot of concepts and terminologies between them. However, there are key differences between them that are worth noting.","s":"Comparing Waku and libp2p","u":"/learn/waku-vs-libp2p","h":"","p":455},{"i":458,"t":"Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to run a node to support and decentralise the network.","s":"Waku as a service network","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-service-network","p":455},{"i":460,"t":"Waku includes various protocols covering the following domains: privacy preservation, censorship resistance, and platform agnosticism, allowing it to run on any platform or environment. Waku provides out-of-the-box protocols to enable mostly offline/resource-limited devices, Store/Light Push/Filter caters to those use cases.","s":"Waku as a turnkey solution","u":"/learn/waku-vs-libp2p","h":"#waku-as-a-turnkey-solution","p":455},{"i":462,"t":"libp2p does not have strong spam protection guarantees, RLN Relay is a protocol being developed by the Waku team towards this goal.","s":"Economic spam protection","u":"/learn/waku-vs-libp2p","h":"#economic-spam-protection","p":455},{"i":464,"t":"On this page Last updated: 9 February 2024 This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (\"Website\"). In this regard, if you are visiting our Website, this Privacy Policy applies to you.","s":"Privacy Policy","u":"/privacy-policy","h":"","p":463},{"i":466,"t":"For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at Logos Collective Association c/o PST Consulting GmbH Baarerstrasse 10 6300 Zug Switzerland Whenever we refer to “Logos”, “we” or other similar references, we are referring to the Logos Collective Association.","s":"1) Who we are","u":"/privacy-policy","h":"#1-who-we-are","p":463},{"i":468,"t":"We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable privacy legislation. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose. In this regard, we collect and process the following personal data from your use of the Website: IP address: As part of such use of the Website we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.","s":"2) We limit the collection and processing of personal data from your use of the Website","u":"/privacy-policy","h":"#2-we-limit-the-collection-and-processing-of-personal-data-from-your-use-of-the-website","p":463},{"i":470,"t":"In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.","s":"3) Third party processing of personal data","u":"/privacy-policy","h":"#3-third-party-processing-of-personal-data","p":463},{"i":472,"t":"As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.","s":"4) Security measures we take in respect of the Website","u":"/privacy-policy","h":"#4-security-measures-we-take-in-respect-of-the-website","p":463},{"i":474,"t":"We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable privacy legislation.","s":"5) Exporting data outside the European Union and Switzerland","u":"/privacy-policy","h":"#5-exporting-data-outside-the-european-union-and-switzerland","p":463},{"i":476,"t":"As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant privacy legislation, you have the right to: Ask us to correct or update your personal data (where reasonably possible); Ask us to remove your personal data from our systems; Ask us for a copy of your personal data, which may also be transferred to another data controller at your request; Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent; Object to the processing of your personal data; and File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.","s":"6) Your choices and rights","u":"/privacy-policy","h":"#6-your-choices-and-rights","p":463},{"i":478,"t":"On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.","s":"7) Third party links","u":"/privacy-policy","h":"#7-third-party-links","p":463},{"i":480,"t":"We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.","s":"8) This Privacy Policy might change","u":"/privacy-policy","h":"#8-this-privacy-policy-might-change","p":463},{"i":482,"t":"To the extent that you have any questions about the Privacy Policy, please contact us at legal@free.technology. This document is licensed under CC-BY-SA.","s":"9) Contact information","u":"/privacy-policy","h":"#9-contact-information","p":463},{"i":484,"t":"This post explains i) why The Waku Network requires a capped bandwidth per shard and ii) how to achieve it by rate limiting with RLN v2.","s":"Capped Bandwidth in Waku","u":"/research/research-and-studies/capped-bandwidth","h":"","p":483},{"i":486,"t":"First of all, let's begin with the terminology. We have talked in the past about \"predictable\" bandwidth, but a better name would be \"capped\" bandwidth. This is because it is totally fine that the waku traffic is not predictable, as long as it is capped. And it has to be capped because otherwise, no one will be able to run a node. Since we aim that everyone can run a full waku node (at least subscribed to a single shard) it is of paramount importance that the bandwidth requirements (up/down) are i) reasonable to run with a residential internet connection in every country and ii) limited to an upper value, aka capped. If the required bandwidth to stay up to date with a topic is higher than what the node has available, then it will start losing messages and won't be able to stay up to date with the topic messages. And not to mention the problems this will cause to other services and applications being used by the user. The main problem is that one can't just choose the bandwidth it allocates to relay. One could set the maximum bandwidth willing to allocate to store but this is not how relay works. The required bandwidth is not set by the node, but by the network. If a pubsub topic a has a traffic of 50 Mbps (which is the sum of all messages being sent multiplied by its size, times the D_out degree), then if a node wants to stay up to date in that topic, and relay traffic in it, then it will require 50 Mbps. There is no thing such as \"partially contributing\" to the topic (with eg 25Mbps) because then you will be losing messages, becoming an unreliable peer and potentially be disconnected. The network sets the pace. So waku needs an upper boundary on the in/out bandwidth (mbps) it consumes. Just like apps have requirements on cpu and memory, we should set a requirement on bandwidth, and then guarantee that if you have that bandwidth, you will be able to run a node without any problem. And this is the tricky part. This metric is Waku's constraint, similar to the gas-per-block limit in blockchains.","s":"Problem","u":"/research/research-and-studies/capped-bandwidth","h":"#problem","p":483},{"i":488,"t":"Quick summary of the evolution to solve this problem: Waku started with no rate-limiting mechanism. The network was subject to DoS attacks. RLN v1 was introduced, which allowed to rate-limit in a privacy-preserving and anonymous way. The rate limit can be configured to 1 message every y seconds. However, this didn't offer much granularity. A low y would allow too many messages and a high y would make the protocol unusable (impossible to send two messages in a row). RLN v2 was introduced, which allows to rate-limit each user to x messages every y seconds. This offers the granularity we need. It is the current solution deployed in The Waku Network.","s":"Previous Work","u":"/research/research-and-studies/capped-bandwidth","h":"#previous-work","p":483},{"i":490,"t":"The current solution to this problem is the usage of RLN v2, which allows to rate-limit x messages every y seconds. On top of this, the introduction of WAKU2-RLN-CONTRACT enforces a maximum amount of messages that can be sent to the network per epoch. This is achieved by limiting the amount of memberships that can be registered. The current values are: R_{max}: 160000 mgs/epoch r_{max}: 600 msgs/epoch r_{min}: 20 msgs/epoch In other words, the contract limits the amount of memberships that can be registered from 266 to 8000 depending on which rate limit users choose. On the other hand 64/WAKU2-NETWORK states that: rlnEpochSizeSec: 600. Meaning the epoch size is 600 seconds. maxMessageSize: 150KB. Meaning the maximum message size that is allowed. Note: recommended average of 4KB. Putting this all together and assuming: Messages are sent uniformly distributed. All users totally consumes its rate-limit. We can expect the following message rate and bandwidth for the whole network: A traffic of 266 msg/second on average (160000/600) A traffic of 6 MBps on average (266 4KB 6), where 4KB is the average message size and 6 is the average gossipsub D-out degree. And assuming a uniform distribution of traffic among 8 shards: 33 msg/second per shard. 0.75 MBps per shard.","s":"Current Solution (RLN v2)","u":"/research/research-and-studies/capped-bandwidth","h":"#current-solution-rln-v2","p":483},{"i":492,"t":"If you are currently using Nwaku, running an old version and want to upgrade your node, please follow the below migration instructions for each target release newer than your current running version in ascending order. For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0","s":"Upgrade Instructions","u":"/guides/nwaku/upgrade-instructions","h":"","p":491},{"i":494,"t":"v0.32.0 The --protected-topic CLI config was deprecated and is replaced by the new --protected-shard configuration. Instead of configuring topic:public_key you will now need to configure shard:public_key For example, if you used to run your node with --protected-topic=\"waku/2/rs/3/4:your_public_key\" you will need to replace this configuration for --protected-shard=\"4:your_public_key\" v0.31.0 Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: /waku/2/rs// In order to migrate your existing application, you need to: Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using js-waku, the configured pubsub topics follow the static sharding format defined above. When running a node with the --pubsub-topic CLI flag, the values provided should comply with the static sharding format. If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period.","s":"Target Releases","u":"/guides/nwaku/upgrade-instructions","h":"#target-releases","p":491},{"i":497,"t":"This page summarises key performance metrics for nwaku and provides links to detailed test reports. TL;DR​ Average Waku bandwidth usage: ~10 KB/s (minus discv5 Discovery) for 1KB message size and message injection rate of 1msg/s. Confirmed for topologies of up to 2000 Relay nodes. Average time for a message to propagate to 100% of nodes: 0.4s for topologies of up to 2000 Relay nodes. Average per-node bandwidth usage of the discv5 protocol: 8 KB/s for incoming traffic and 7.4 KB/s for outgoing traffic, in a network with 100 continuously online nodes. Future improvements: A messaging API is currently in development to streamline interactions with the Waku protocol suite. Once completed, it will enable benchmarking at the messaging API level, allowing applications to more easily compare their own performance results.","s":"Introduction","u":"/research/benchmarks/test-results-summary","h":"#introduction","p":495},{"i":499,"t":"Average Waku bandwidth usage: ~10 KB/s (minus discv5 Discovery) for 1KB message size and message injection rate of 1msg/s. Confirmed for topologies of up to 2000 Relay nodes. Average time for a message to propagate to 100% of nodes: 0.4s for topologies of up to 2000 Relay nodes. Average per-node bandwidth usage of the discv5 protocol: 8 KB/s for incoming traffic and 7.4 KB/s for outgoing traffic, in a network with 100 continuously online nodes. Future improvements: A messaging API is currently in development to streamline interactions with the Waku protocol suite. Once completed, it will enable benchmarking at the messaging API level, allowing applications to more easily compare their own performance results.","s":"TL;DR","u":"/research/benchmarks/test-results-summary","h":"#tldr","p":495},{"i":502,"t":"The average per-node libp2p bandwidth usage in a 1000-node Relay network with 1KB messages at varying injection rates. Message Injection Rate Average libp2p incoming bandwidth (KB/s) Average libp2p outgoing bandwidth (KB/s) 1 msg/s ~10.1 ~10.3 1 msg/10s ~1.8 ~1.9","s":"Relay Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#relay-bandwidth-usage-nwaku-v0340","p":495},{"i":504,"t":"The message propagation latency is measured as the total time for a message to reach all nodes. We compare the latency in different network configurations for the following simulation parameters: Total messages published: 600 Message size: 1KB Message injection rate: 1msg/s The different network configurations tested are: Relay Config: 1000 nodes with relay enabled Mixed Config: 210 nodes, consisting of bootstrap nodes, filter clients and servers, lightpush clients and servers, store nodes Non-persistent Relay Config: 500 persistent relay nodes, 10 store nodes and 100 non-persistent relay nodes Click on a specific config to see the detailed test report. Config Average Message Propagation Latency (s) Max Message Propagation Latency (s) Relay (1000 nodes) 0.05 1.6 Mixed (210 nodes) 0.0125 0.007 Non-persistent Relay (510 nodes) 0.0125 0.25","s":"Message Propagation Latency: nwaku v0.34.0-rc1","u":"/research/benchmarks/test-results-summary","h":"#message-propagation-latency-nwaku-v0340-rc1","p":495},{"i":506,"t":"The average bandwidth usage of discv5 for a network of 100 nodes and message injection rate of 0 or 1msg/s. The measurements are based on a stable network where all nodes have already connected to peers to form a healthy mesh. Message size Average discv5 incoming bandwidth (KB/s) Average discv5 outgoing bandwidth (KB/s) no message injection 7.88 6.70 1KB 8.04 7.40 10KB 8.03 7.45","s":"Discv5 Bandwidth Usage: nwaku v0.34.0","u":"/research/benchmarks/test-results-summary","h":"#discv5-bandwidth-usage-nwaku-v0340","p":495},{"i":509,"t":"The VAC DST team performs regression testing on all new nwaku releases, comparing performance with previous versions. They simulate large Waku networks with a variety of network and protocol configurations that are representative of real-world usage. Test Reports: DST Reports","s":"DST","u":"/research/benchmarks/test-results-summary","h":"#dst","p":495},{"i":511,"t":"The VAC QA team performs interoperability tests for nwaku and go-waku using the latest main branch builds. These tests run daily and verify protocol functionality by targeting specific features of each protocol. Test Reports: QA Reports","s":"QA","u":"/research/benchmarks/test-results-summary","h":"#qa","p":495},{"i":513,"t":"The nwaku team follows a structured release procedure for all release candidates. This involves deploying RCs to status.staging fleet for validation and performing sanity checks. Release Process: nwaku Release Procedure","s":"nwaku","u":"/research/benchmarks/test-results-summary","h":"#nwaku","p":495},{"i":515,"t":"The Waku Research team conducts a variety of benchmarking, performance testing, proof-of-concept validations and debugging efforts. They also maintain a Waku simulator designed for small-scale, single-purpose, on-demand testing. Test Reports: Waku Research Reports Waku Simulator: Waku Simulator Book","s":"Research","u":"/research/benchmarks/test-results-summary","h":"#research","p":495},{"i":518,"t":"The Nim Waku Node, nwaku, has the capability of archiving messages until a certain limit (e.g. 30 days) so that other nodes can synchronize their message history throughout the Store protocol. The nwaku originally used SQLite to archive messages but this has an impact on the node. Nwaku is single-threaded and therefore, any SQLite operation impacts the performance of other protocols, like Relay. Therefore, the Postgres adoption is needed to enhance that. https://github.com/waku-org/nwaku/issues/1888","s":"Introduction","u":"/research/benchmarks/postgres-adoption","h":"#introduction","p":516},{"i":520,"t":"Simply pass the next parameter to nwaku --store-message-db-url=\"postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/postgres Notice that this only makes sense if the nwaku has the Store protocol mounted --store=true (start the nwaku node with --help parameter for more Store options)","s":"How to connect the nwaku to Postgres","u":"/research/benchmarks/postgres-adoption","h":"#how-to-connect-the-nwaku-to-postgres","p":516},{"i":522,"t":"https://github.com/waku-org/nwaku-compose https://github.com/waku-org/test-waku-query","s":"Examples of nwaku using Postgres","u":"/research/benchmarks/postgres-adoption","h":"#examples-of-nwaku-using-postgres","p":516},{"i":524,"t":"The following repository was created as a tool to stress and compare performance between nwaku+Postgres and nwaku+SQLite: https://github.com/waku-org/test-waku-query","s":"Stress tests","u":"/research/benchmarks/postgres-adoption","h":"#stress-tests","p":516},{"i":526,"t":"Maximum insert throughput​ Scenario 1 node subscribed to pubsubtopic ‘x’ and the Store protocol mounted. ‘n’ nodes connected to the “store” node, and publishing messages simultaneously to pubsubtopic ‘x’. All nodes running locally in a Dell Latitude 7640. Each published message is fixed, 1.4 KB: publish_one_client.sh The next script is used to simulate multiple nodes publishing messages: publish_multiple_clients.sh Sought goal Find out the maximum number of concurrent inserts that both SQLite and Postgres could support, and check whether Postgres behaves better than SQLite or not. Conclusion Messages are lost after a certain threshold, and this message loss is due to limitations in the Relay protocol (GossipSub - libp2p.) For example, if we set 30 nodes publishing 300 messages simultaneously, then 8997 rows were stored and not the expected 9000, in both SQLite and Postgres databases. The reason why few messages were lost is because the message rate was higher than the relay protocol can support, and therefore a few messages were not stored. In this example, the test took 38.8’’, and therefore, the node was receiving 232 msgs/sec, which is much more than the normal rate a node will work with, which is ~10 msgs/sec (rate extracted from Grafana’s stats for the status.prod fleet.) As a conclusion, the bottleneck is within the Relay protocol itself and not the underlying databases. Or, in other words, both SQLite and Postgres can support the maximum insert rate a Waku node will operate within normal conditions.","s":"Insert test results","u":"/research/benchmarks/postgres-adoption","h":"#insert-test-results","p":516},{"i":528,"t":"In this case, we are comparing Store performance by means of Rest service. Scenario nodea: one _nwaku node with Store and connected to Postgres. nodeb: one _nwaku node with Store and using SQLite. Both Postgres and SQLite contain +1 million rows. nodec: one _nwaku node with REST enabled and acting as a Store client for node_a. noded: one _nwaku node with REST enabled and acting as a Store client for node_b. With jmeter, 10 users make REST Store requests concurrently to each of the “rest” nodes (node_c and node_d.) All nwaku nodes running statusteam/nim-waku:v0.19.0 This is the jmeter project used. Results With this, the node_b brings a higher throughput than the node_a and that indicates that the node that uses SQLite performs better. The following shows the measures taken by jmeter with regard to the REST requests.","s":"Query test results (jmeter)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-jmeter","p":516},{"i":530,"t":"In this test suite, only the Store protocol is being analyzed, i.e. without REST. For that, a go-waku node is used, which acts as Store client. On the other hand, we have another go-waku app that publishes random Relay messages periodically. Therefore, this can be considered a more realistic approach. The following diagram shows the topology used: For that, the next apps were used: Waku-publisher. This app can publish Relay messages with different numbers of clients Waku-store-query-generator. This app is based on the Waku-publisher but in this case, it can spawn concurrent go-waku Store clients. That topology is defined in this docker-compose file. Notice that the two nwaku nodes run the very same version, which is compiled locally. Comparing archive SQLite & Postgres performance in nwaku-b6dd6899​ The next results were obtained by running the docker-compose-manual-binaries.yml from test-waku-query-c078075 in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.) Scenario 1 Store rate: 1 user generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, we can see that the SQLite performance is better regarding the store requests. The following graph shows how the SQLite node has blocking periods whereas the Postgres always gives a steady rate. Scenario 2 Store rate: 10 users generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, is more evident that the SQLite performs better. Scenario 3 Store rate: 25 users generating 1 store-req/sec. Relay rate: 1 user generating 10msg/sec, 10KB each. In this case, the performance is similar regarding the timings. The store rate is bigger in SQLite and Postgres keeps the same level as in scenario 2. Comparing archive SQLite & Postgres performance in nwaku-b452ed8​ This nwaku commit is after a few Postgres optimizations were applied. The next results were obtained by running the docker-compose-manual-binaries.yml from test-waku-query-c078075 in the sandbox machine (metal-01.he-eu-hel1.misc.wakudev.status.im.) Scenario 1 Store rate 1 user generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 1 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. It cannot be appreciated but the average *Store* time was 11ms. Scenario 2 Store rate: 10 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 10 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. Scenario 3 Store rate: 25 users generating 1 store-req/sec. Notice that the current Store query used generates pagination which provokes more subsequent queries than the 25 req/sec that would be expected without pagination. Relay rate: 1 user generating 10msg/sec, 10KB each. Conclusions​ After comparing both systems, SQLite performs much better than Postgres However, a benefit of using Postgres is that it performs asynchronous operations, and therefore doesn’t consume CPU time that would be better invested in Relay for example. Remember that nwaku is single-threaded and chronos performs orchestration among a bunch of async tasks, and therefore it is not a good practice to block the whole nwaku process in a query, as happens with SQLite After applying a few Postgres enhancements, it can be noticed that the use of concurrent Store queries doesn’t go below the 250ms barrier. The reason for that is that most of the time is being consumed in this point. The libpqisBusy() function indicates that the connection is still busy even the queries finished. Notice that we usually have a rate below 1100 req/minute in status.prod fleet (checked November 7, 2023.)","s":"Query test results (only Store protocol)","u":"/research/benchmarks/postgres-adoption","h":"#query-test-results-only-store-protocol","p":516},{"i":532,"t":"This study aims to look for possible issues when having only one single database while several Waku nodes insert or retrieve data from it. The following diagram shows the scenery used for such analysis. There are three nim-waku nodes that are connected to the same database and all of them are trying to write messages to the same PostgreSQL instance. With that, it is very common to see errors like: ERR 2023-11-27 13:18:07.575+00:00 failed to insert message topics=\"waku archive\" tid=2921 file=archive.nim:111 err=\"error in runStmt: error in dbConnQueryPrepared calling waitQueryToFinish: error in query: ERROR: duplicate key value violates unique constraint \\\"messageindex\\\"\\nDETAIL: Key (storedat, id, pubsubtopic)=(1701091087417938405, 479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd, /waku/2/default-waku/proto) already exists.\\n The db-postgres-hammer is aimed to stress the database from the select point of view. It performs N concurrent select queries with a certain rate. Results​ The following results were obtained by using the sandbox machine (metal-01.he-eu-hel1.misc.wakudev) and running nim-waku nodes from https://github.com/waku-org/nwaku/tree/b452ed865466a33b7f5b87fa937a8471b28e466e and using the test-waku-query project from https://github.com/waku-org/test-waku-query/tree/fef29cea182cc744c7940abc6c96d38a68739356 The following shows the results Two nwaku-postgres-additional inserting messages plus 50 db-postgres-hammer making 10 selects per second. Five nwaku-postgres-additional inserting messages plus 50 db-postgres-hammer making 10 selects per second. In this case, the insert time gets more spread because the insert operations are shared amongst five more nodes. The Store query time remains the same on average. Five nwaku-postgres-additional inserting messages plus 100 db-postgres-hammer making 10 selects per second. This case is similar to 2. but stressing more the database.","s":"Multiple nodes & one single database","u":"/research/benchmarks/postgres-adoption","h":"#multiple-nodes--one-single-database","p":516},{"i":534,"t":"Transports help move data packets across a network by establishing connections between peers. They define the rules and protocols to ensure efficient network transmission, routing, and data delivery. Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended: TCP: By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes. Secure WebSocket: In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely. Other protocols like WebRTC, WebTransport, and QUIC have been researched and studied for potential integration. info Waku ensures compatibility and improved communication capabilities by following these recommended transports.","s":"Transports","u":"/learn/concepts/transports","h":"","p":533},{"i":537,"t":"Since RLN has been chosen as the spamming protection mechanism for waku, we must understand the practical implications of using it. This issue explains the main differences between relay and rln-relay and gives some benchmarks after running simulations using waku-simulator, in a network with the following characteristics: 100 nwaku nodes, each one with a valid rln membership and publishing a message every 10 seconds to a common topic. rln contract deployed in Ethereum Sepolia 10.000 memberships registered in the contract pure relay (store and light protocols disabled) The main deltas rln vs rln-relay are: New proof field in WakuMessage containing 384 extra bytes. This field must be generated and attached to each message. New validator, that uses proof to Accept or Reject the message. The proof has to be verified. New dependency on a blockchain, Ethereum, or any EVM chain, to keep track of the members allowed to publish. But what are the practical implications of these?","s":"Introduction","u":"/research/research-and-studies/rln-key-benchmarks","h":"#introduction","p":535},{"i":539,"t":"Proof generation is constant-ish. 0.15 second for each proof Proof verification is constant-ish, 0.012 seconds. In a network with 10k nodes and D=6 this would add an overhead delay of 0.06 seconds. Gossipsub scoring drops connections from spammer peers, which acts as the punishment (instead of slashing). Validated in the simulation. Rln doesn't have any impact on memory consumption.","s":"TLDR:","u":"/research/research-and-studies/rln-key-benchmarks","h":"#tldr","p":535},{"i":541,"t":"Seems that proof generation times stay constant no matter the size of the message. In the following simulation it was increased from: 1kB, 10kB, 50kB, 150kB. On average it takes 0.15 seconds to calculate the message proof. This means that when a node wants to send a message, it will need to spend this time generating the proof. It seems very reasonable and it actually acts as a mini proof of work, where a consumer computer won't be able to publish a really high number of messages per second.","s":"Proof generation times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-generation-times","p":535},{"i":543,"t":"On the other hand, rln also adds an overhead in the gossipsub validation process. On average it takes 0.012 seconds to verify the proof. It seems that when we increase the message size, validation time seems to increase a bit, which can be for any other reason besides rln itself (eg deserializing the message might take longer). This number seems reasonable and shouldn't affect that much the average delay of a message. Assuming a d-regular graph, with 10k nodes and D=6, we can have up to log(total_nodes)/log(D)=5 hops. So in the worst case, rln will add a network latency of 0.012*5 = 0.06 seconds","s":"Proof verification times","u":"/research/research-and-studies/rln-key-benchmarks","h":"#proof-verification-times","p":535},{"i":545,"t":"For the initial release of RLN, slashing won't be implemented and it still remains unclear if it will be implemented in the future. Luckily, even if slashing is not implemented rln can be used to detect spam and punish the sender off-chain (instead of slashing an onchain collateral). This is done with gossipsub scoring. In the following simulation, we can see 100 nwaku interconnected nodes, where one of them suddenly starts spamming the network with multiple valid rln messages 3000 messages/minute. Since its rate limited to 1msg/10 seconds, we can see that in almost no time, every node in the network disconnects from the spammer peer (see red node), leaving it with 0 peers, which disincentivise such attacks and without requiring a financial slashing.","s":"Spam protection","u":"/research/research-and-studies/rln-key-benchmarks","h":"#spam-protection","p":535},{"i":547,"t":"Using RLN implies that waku should now piggyback on a blockchain (the case study uses Ethereum Sepolia) and has to stay up to date with the latest events emitted by the rln smart contract. These events are used to locally construct a tree that contains all members allowed to create valid proofs to send messages. Some numbers: A tree with 10k members takes 2Mbytes of space. Negligible. A tree with 10k members takes `<4 minutes to synchronize. Assumable since it's done just once. With a block range of 5000 blocks for each request, we would need 520 requests to synchronize 1 year of historical data from the tree. Assumable since most of the free endpoints out there allow 100k/day.","s":"RLN tree sync","u":"/research/research-and-studies/rln-key-benchmarks","h":"#rln-tree-sync","p":535},{"i":549,"t":"Same simulation with 100 nodes was executed with rln and without rln: Memory consumption is almost identical with rln without rln Couldn't capture cpu metrics Minor differences in messages per seconds is due to injection technique, nothing related to rln itself.","s":"Performance relay vs. rln-relay","u":"/research/research-and-studies/rln-key-benchmarks","h":"#performance-relay-vs-rln-relay","p":535},{"i":551,"t":"We take security seriously at Waku and across the Institute of Free Technology and its affiliates. Please report any security incidents via security@free.technology. Please report any discovered vulnerabilities in our bounty programme at HackenProof to help ensure our protocols and software remain secure.","s":"Security","u":"/security","h":"","p":550},{"i":553,"t":"TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it's affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters.","s":"Message Propagation Times With Waku-RLN","u":"/research/research-and-studies/message-propagation","h":"","p":552},{"i":555,"t":"Waku uses relay as a routing protocol, which is an adaptation of gossipsub. It routes messages following a publisher/subscriber architecture, where nodes can publish messages or subscribe to topics. If message m is published to topic t, all i nodes n_1...n_i subscribed to t will get m. The relay protocol ensures that every node gets the messages of the topics it is subscribed to. However, since relay works in a decentralized manner, all nodes contribute to the gossiping of a message, until it has successfully reached all the interested nodes (subscribed to it). This means that a message can travel multiple hops until it reaches all nodes. The amount of hops determines the message propagation time, which is measured as the time difference of when the node published the message and when another node received. This issue aims to go from theory to practice, by i) understanding message propagation times in theory and ii) presenting nwaku simulation results in an end-to-end setup with rln, with real message propagation times.","s":"Introduction","u":"/research/research-and-studies/message-propagation","h":"#introduction","p":552},{"i":557,"t":"Let's start with message propagation times in theory. On a high level, it depends on: The gossipsub configuration, being D one of the most important parameters. This sets the hops that a message will travel to reach all nodes. Higher D, less hops, less delay. Note that a higher D implies more bandwidth consumption. The node. Different nodes will see different propagation times, because a message can travel different paths. A node connected directly to the publisher (1 hop) will see lower propagation times than other nodes further away. Individual propagation times. Since a message can travel multiple hops to reach its destination, each hop adds a contribution to the overall message propagation time. This individual propagation time depends on the characteristics on the nodes involved in the connections. In a D-regular graph, like the one formed by waku nodes around a topic, the maximum amount of hops that a message can travel to reach all nodes can be calculated as ceil(log(total_nodes)/log(D)). For example, with log(1000)/log(6) = 3.85 = 4. So in a network with 1000 nodes and D=6, no matter which node publishes the message, in 4 hops it will reach all the nodes. Notice the \"worst case\" since some nodes might be directly connected to the publisher, so they will get the message in just 1 hop. But how long does it take to jump each hop? It depends on: The latency between nodes. Can be measured as the time to respond to a ping. The size of the messages. The bigger the message, the more time it takes to transmit. Nodes bandwidth. Sender upload bandwidth and receiver download bandwidth. More important when using big message sizes. Message validation time. When each node receives a message, it applies some validation to decide if the message is further gossiped or not. In the case of waku, this is RLN (paper, rfc) Assuming a message m that travels 4 hops from node n1 (publisher) to n5 (subscriber) we can calculate the message propagation time mpt=ipt_1+ipt_2+ipt_3+ipt_4 where ipt is the individual propagation time between each node in the chain. However, specific message propagation times are useless, we need average times under specific conditions. And for this, we need simulations.","s":"Theory","u":"/research/research-and-studies/message-propagation","h":"#theory","p":552},{"i":559,"t":"Using shadow simulator, we have developed a tool that allows to simulate message propagation delays of nwaku (using a slightly modified branch, mainly to instrument it with tools to measure the times + starting from an already connected mesh. Thanks @Menduist for the help. Note that running this simulation requires a significant amount of resources, done with 256 GB of RAM. The configuration of the simulation is (see config): latency=100ms. Average latency in our current waku network. Thanks @vpavlin for the measurements. See this for live data. down_bandwidth=83Mbps, up_bandwidth=38Mbps. As shown in Table 2 that's the worldwide median speed. D=6, which is the current nwaku configuration. nodes=1000. Amount of nodes used in the simulation nwaku was used with a minor modification A total of 10 messages were published, that led to 9990 received messages. Since shadow doesn't take into account CPU times (by now), we simulate it with sleepAsync as per https://github.com/waku-org/research/issues/23 findings. 0.012 seconds for proof verification and 0.15 seconds for proof generation.","s":"Simulations","u":"/research/research-and-studies/message-propagation","h":"#simulations","p":552},{"i":561,"t":"The following figure shows the message propagation time with real simulations, showing the distribution in a network with the above configuration with three different message sizes: 10kB, 100kB, 500kB. Note that the whiskers indicate the best/worst values and the box contains P25 to P75 values. Average mu and P95 are also shown. Raw data here. Important note. The first messages sent in the simulations are omitted, since they show an abnormal propagation delay that doesn't reflect reality. This is due to how flow control works in TCP, where right after connection, the sender node has no idea of the \"bandwidth\" of the receiver node, so it will start sending packages at a lower rate. This translates into high transmission times, and it's more pronounced when dealing with big message sizes. In other words, in a 100Mpbs link, 100Mbits won't be sent in 1 second, or at least not a the beginning, when the node is slowly increasing the rate until based on ACK/NACK ratio. For more information about this, this is explained in here. Conclusions: Using small messages 10kB the average propagation delay is 508 ms, quite reasonable for applications using waku. The variance is acceptable, with 95% of the messages arriving in <627 ms. When using a size of 10kB we can see that the best case propagation delay is 263 ms. This corresponds to the nodes that are just 1 hop from the publisher. The proof generation time 0.15 seconds affects the most, where the rest is the inter-node latency and the transmission of the message itself. We can see that the message propagation delay increases with big messages, 100kB and 500kB. So its probably not a good idea to use waku for such big messages. Note that these simulations had 1000 nodes, so if we scale it to 10000 or beyond, propagation times would be worse. Best case propagation time (lower part of the whisker) is quite similar in all cases. This is because it corresponds to the node that is just 1 hop away from the publisher. Future work: Current waku D values (average of 6 ranging from 4 to 12) have a huge impact on the bandwidth that a node consumes. Are we willing to lower D in order to reduce bandwidth but increase message propagation times? Since shadow doesn't take CPU time into account, it's currently simulated for rln, which should be the biggest bottleneck. Once shadow has this feature times would be more accurate.","s":"Results","u":"/research/research-and-studies/message-propagation","h":"#results","p":552},{"i":563,"t":"Research and Studies: Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the Waku RFCs website. Benchmarks: Results of implementations and engineering-related benchmarks for Waku clients. Waku also has the following published research papers: WAKU-RLN-RELAY: Privacy-Preserving Peer-to-Peer Economic Spam Protection Message Latency in Waku Relay with Rate Limiting Nullifiers Waku: A Family of Modular P2P Protocols For Secure & Censorship-Resistant Communication The Waku Network as Infrastructure for dApps","s":"Research","u":"/research/","h":"","p":562},{"i":565,"t":"On this page Waku is a nascent technology and the Waku community is still growing. Hence, the Waku team is keen to work closely with projects to help leverage Waku technology to drive the success of their own applications. We describe below the expected flow for working with Waku and some rules of engagement to set expectations for project teams interacting with the Waku team.","s":"Rules of Engagement","u":"/rules-of-engagement","h":"","p":564},{"i":567,"t":"We encourage the initial discussion to happen over a video call. However, in-person event or online discussions are also an option. During this initial interaction, the project team should present their product and the needs they have in relation to peer-to-peer communication and real time interaction. The Waku team will provide an overview of Waku and point to specific protocol and software that should help fulfil such needs. Benefits and caveats are highlighted and further documentation and examples will be provided.","s":"1. Initial discussion","u":"/rules-of-engagement","h":"#1-initial-discussion","p":564},{"i":569,"t":"Projects should review Waku documentations and libraries in their own time; start building a PoC using Waku. Projects should start designing over Waku and come up with skeleton design or user flows about specific friction points or complex area (e.g. user experience, scaling). Project should appoint one or two Waku SME (Subject Matter Expert) to drive most discussions with Waku team to start acquire expertise on Waku behaviour. Project's Waku SMEs should present unresolved design issues to Waku team. The Waku team will then review and provide skeleton design solutions on how to overcome said unresolved or complex issues.","s":"2. Solution design","u":"/rules-of-engagement","h":"#2-solution-design","p":564},{"i":571,"t":"The project should finalise a design, solution or protocol they will build using Waku. If they wish to, they can present this solution to the Waku team to get feedback and identify technical gaps. The Waku team can provide feedback, highlight potential caveats, and communicate on delivery timeline for gaps, if any. note While the Waku team can provide feedback or even design potential solution on how Waku could be integrated in an application. It is the responsibility of the project team to understand the potential caveats and limitations that may incur with such a design. The Waku team can provide options, but it is up to the project team to decide on the final solution.","s":"3. Commitment","u":"/rules-of-engagement","h":"#3-commitment","p":564},{"i":573,"t":"The project then start building their MVP using Waku. The Waku team can provide support regarding API usage, bugs encountered, documentation gaps. Waku team will use feedback raised by project to improve APIs, fix bugs and enhance documentation. Waku team continues R&D to deliver any committed technical gaps. Project delivers their MVP. note The Waku team is keen to help any usage of Waku library. Please note that code snippets are necessary for preliminary investigations of issues. Sometimes, a code snippet is not enough; in this case, a minimal reproduction repo is necessary to allow us to do further investigation. If the project is open-source, then the Waku team might try to further investigate using it, as long as the reproduction steps are easy. If no code is provided to help with the investigation, then there is nothing the Waku team can do. For any unresolved issue, the project must open an issue on the related GitHub repository under the waku-org organisation.","s":"4. Building","u":"/rules-of-engagement","h":"#4-building","p":564},{"i":575,"t":"Once the project application is live, the Waku team is keen to maintain regular contact. This can include discussion around performance, bugs found by users, etc. The Waku team is keen to regularly present new and upcoming development to project team, highlight items that are particularly relevant. If a project wishes to take onboard any new Waku protocol, or decide to extend their product with a new functionality using Waku, the circle can resume from step 1.","s":"5. Ongoing relation","u":"/rules-of-engagement","h":"#5-ongoing-relation","p":564},{"i":577,"t":"TLDR: This issue aims to set the maximum bandwidth in x Mbps that each waku shard should consume so that the maximum amount of people can run a full waku node. It is up to https://github.com/waku-org/research/issues/22 to specify how this maximum will be enforced. Conclusion: Limit to 10 Mbps each waku shard.","s":"Maximum Bandwidth for Global Adoption","u":"/research/research-and-studies/maximum-bandwidth","h":"","p":576},{"i":579,"t":"Waku is designed in a way that everyone should be able to run a full node on an average laptop with a residential Internet connection, at least in one shard. This will enable true decentralization and give power to the users, since they won't need to rely on third parties to send/receive messages. Professional node operators running in data centers, can of course contribute to multiple shards, but we should keep the bandwidth/hardware requirements of single shard rather low. This vision opposes the federated approach, where a few nodes requiring vast amounts of resources (cpu, memory, bandwidth) run in data centres, taking the power from the user. While federated approaches are an improvement from traditional client-server architectures, waku envisions a fully peer-to-peer architecture where anyone should be able to run a node. In order to ensure that anyone can run a node in desktop, there are two main limiting factors: Bandwidth consumption in Mbps CPU/memory resources (mainly limited by RLN proof verification) This issue focuses on i) bandwidth consumption and https://github.com/waku-org/research/issues/30 on ii) CPU/memory resources. Note that on https://github.com/waku-org/research/issues/23 an analysis on the impact on RLN was already made, but wasn't focused on scalability. Said issues do. In https://github.com/waku-org/research/issues/22 we discussed why and how to limit the maximum bandwidth per shard, but we haven't come up with a specific number in Mbps. This issue i) presents data from the available bandwidth at different locations and ii) suggests a maximum bandwidth in Mbps that waku should enforce.","s":"Introduction","u":"/research/research-and-studies/maximum-bandwidth","h":"#introduction","p":576},{"i":581,"t":"The following tables show: Table [1] The Q25, Q75 and average bandwidth (upload/download) in Mbps available on different continents. Raw data is available here and credits to @leobago for the summarized version. Note: The below numbers were rounded to the nearest integer. Table [2] The median global bandwidth (upload/download) in Mbps, taken from speedtest (accessed 12 Oct 2023). Table [3] Download bandwidth requirements in Mbps for Netflix video streaming, source. Table [1] Download (Mbps) Upload (Mbps) Q25 Average Q75 Q25 Average Q75 North-America 58 107 137 38 68 85 South-America 21 54 72 13 33 44 Europe 49 93 119 30 56 72 Asia 23 53 71 15 37 50 Oceania 44 84 108 27 50 63 Africa 12 26 33 7 17 22 Table [2] Median Download (Mbps) Median Upload (Mbps) Global 83 38 Table [3] Video resolution Recommended Bandwidth HD 3 Mbps Full HD 5 Mbps 4K/UHD 15 Mbps","s":"Bandwidth availability and usage","u":"/research/research-and-studies/maximum-bandwidth","h":"#bandwidth-availability-and-usage","p":576},{"i":583,"t":"With the above data, we should be informed to take a decision on the maximum bandwidth that we should enforce per shard. With this number, we will apply the techniques explained in https://github.com/waku-org/research/issues/22 to ensure (with some statistical confidence) that the bandwidth won't exceed that number. The trade-off is clear: We enforce a low bandwidth: more people can run full waku nodes, overall network throughput is less, network decentralization is easier, gives power to the user as its fully sovereign. We don't enforce a low bandwidth: not possible to run full waku nodes in laptops acting as a centralization force, nodes are run by few professional operators in data centers, waku users just use light clients, network throughput can scale way easier, federated approach. So it's about where to draw this line. Points to take into account: Relay contributes to bandwidth the most: Relay is the protocol that mostly contributes to bandwidth usage, and it can't choose to allocate fewer bandwidth resources like other protocols (eg store can choose to provide less resources and it will work). In other words, the network sets the relay bandwidth requirements, and if the node can't meet them, it just wont work. Upload and download bandwidth are the same: Due to how gossipsub works, and hence relay, the bandwidth consumption is symmetric, meaning that upload and download bandwidth is the same. This is because of D and the reciprocity of the connections, meaning that one node upload is another download. Nodes not meeting requirements can use light clients. Note that nodes not meeting the bandwidth requirements can still use waku, but they will have to use light protocols, which are a great alternative, especially on mobile, but with some drawbacks (trust assumptions, less reliability, etc) Waku can't take all the bandwidth: Waku is meant to be used in conjunction with other services, so it shouldn't consume all the existing bandwidth. If Waku consumes x Mbps and someone bandwidth is x Mpbs, the UX won't be good. Compare with existing well-known services: As shown in Table [3], Netflix 4K video streaming takes 15Mbps, so that is an order of magnitude to take into account. Coming up with a number: Lowest average download speed across continents is Africa (26 Mbps) Lowest average upload speed across continents is Africa (17 Mbps) Since in waku the bandwidth consumption is symmetric, we are limited by the lowest (17 Mpbs) However waku should not consume all bandwidth, leaving some room for other applications. We could set 10 Mbps, which is between Full HD video and 4K. With 10Mbps the % of average bandwidth waku will consume is: North-America 9 % South-America 18 % Europe 11 % Asia 18 % Oceania 12 % Africa 38 % Conclusion: Limit to 10 Mbps each waku shard. How? Not trivial, see https://github.com/waku-org/research/issues/22#issuecomment-1727795042 Note: This number is not set in stone and is subject to modifications, but it will most likely stay in the same order of magnitude if changed.","s":"Selecting a maximum bandwidth","u":"/research/research-and-studies/maximum-bandwidth","h":"#selecting-a-maximum-bandwidth","p":576},{"i":585,"t":"Waku is a family of decentralised communication protocols. The Waku Network (TWN) consists of independent nodes running Waku protocols. TWN needs incentivisation (shortened to i13n) to ensure proper node behaviour. The goal of this document is to outline and contextualize our approach to TWN i13n. After providing an overview of Waku and relevant prior work, we focus on Waku Store - a client-server protocol for querying historical messages. We introduce a minimal viable addition to Store to enable i13n, and list research directions for future work.","s":"Incentivisation","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":587,"t":"On this page","s":"Incentivisation in decentralised networks","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":589,"t":"We can think of incentivisation tools as a two-by-two matrix: rewards vs punishment; monetary vs reputation. In other words, there are four quadrants: monetary reward: the node gets rewarded; monetary punishment: the nodes deposits funds that are taken away (slashed) if it misbehaves; reputation reward: the node's reputation increases if it behaves well; reputation punishment: the node's reputation decreases if it behaves badly. Reputation only works if high reputation brings tangible benefits. For example, if nodes chose neighbors based on reputation, low-reputation nodes miss out on potential revenue. Reputation scores may be local (a node assigns scores to its neighbors) or global (each node gets a uniform score). Global reputation in its simplest form involves a trusted third party, although decentralised approaches are also possible.","s":"Incentivisation tools","u":"/research/research-and-studies/incentivisation","h":"#incentivisation-tools","p":584},{"i":591,"t":"We may split incentivized decentralised networks into early file-sharing, blockchains, and decentralised storage.","s":"Prior work","u":"/research/research-and-studies/incentivisation","h":"#prior-work","p":584},{"i":593,"t":"Early P2P file-sharing networks employ reputation-based approaches and sticky defaults. For instance, the BitTorrent protocol rewards uploading peers with faster downloads. The download bandwidth available to a peer depends on how much it has uploaded. Moreover, peers share pieces of a file before having received it in whole. This non-monetary i13n policy has been proved to work in practice.","s":"Early P2P file-sharing","u":"/research/research-and-studies/incentivisation","h":"#early-p2p-file-sharing","p":584},{"i":595,"t":"Bitcoin has introduced proof-of-work (PoW) for native monetary rewards in a P2P network. PoW miners are automatically assigned newly mined coins for generating blocks. Miners must expend physical resources to generate a block. If the block is invalid, these expenses are not compensated (implicit monetary punishment). Proof-of-stake (PoS), used in Ethereum and many other cryptocurrencies, introduces explicit monetary punishments. PoS validators lock up (stake) native tokens and get rewarded for validating blocks or slashed for misbehaviour.","s":"Blockchains","u":"/research/research-and-studies/incentivisation","h":"#blockchains","p":584},{"i":597,"t":"Post-Bitcoin decentralised storage networks include Codex, Storj, Sia, Filecoin, IPFS. Their i13n methods combine techniques from early P2P file-sharing with blockchain-inspired reward mechanisms.","s":"Decentralised storage","u":"/research/research-and-studies/incentivisation","h":"#decentralised-storage","p":584},{"i":599,"t":"On this page Waku is a family of protocols for a modular privacy-preserving censorship-resistant decentralised communication network. The backbone of Waku is the Relay protocol (and its spam-protected version RLN-Relay). Additionally, there are light protocols: Store, Filter, and Lightpush. Light protocols are also referred to as client-server protocols and request-response protocols. A server is a node running Relay and a server-side of at least one light protocol. A client is a node running a client-side of any of the light protocols. A server may sometimes be referred to as a full node, and a client as a light node. There is no strict definition of a full node vs a light node in Waku (see discussion). In light protocols, a client sends a request to a server, and a server performs some actions and returns a response: Store: the server responds with messages relayed that match a set of criteria; Filter: the server will relay (only) messages that pass a filter to the client; Lightpush: the server publishes the client's message to the Relay network.","s":"Waku background","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":601,"t":"Waku has no consensus and no native token, which brings it closer to reputation-incentivised file-sharing networks. As of late 2023, Waku only operates under reputation-based rewards and punishments. While RLN-Relay adds monetary punishments for spammers, slashing is yet to be activated. Monetary rewards and punishments should ideally be atomically linked with the node's behaviour. A benefit of blockchains in this respect is that the desired behaviour of miners or validators can be verified automatically. Enforcing atomicity in a communication network is more challenging: it is non-trivial to prove that a given piece of data has been relayed. Our goal is to combine monetary and reputation-based incentives for Waku. Monetary incentives have demonstrated their robustness in blockchains. We think they are necessary to scale the network beyond the initial phase when it's maintained altruistically.","s":"Waku i13n challenges","u":"/research/research-and-studies/incentivisation","h":"#waku-i13n-challenges","p":584},{"i":603,"t":"Waku Store is a light protocol for querying historic messages that works as follows: the client sends a HistoryQuery to the server; the server sends a HistoryResponse to the client. The response may be split into multiple parts, as specified by pagination parameters in PagingInfo. We define a relevant message as a message that matches client-defined criteria (e.g., relayed within a given time frame). Upon receiving a request, a server should quickly send back a response containing all and only relevant messages.","s":"Waku Store","u":"/research/research-and-studies/incentivisation","h":"#waku-store","p":584},{"i":605,"t":"On this page An incentivised Store protocol has the following extra steps: pricing: cost calculation price advertisement price negotiation payment: payment itself proof of payment reputation results cross-checking In this document, we focus on the simplest proof-of-concept (PoC) i13n for Store. Compared to the fully-fledged protocol, the PoC version is simplified in the following ways: cost calculation is based on a common-knowledge price; there is no price advertisement and no price negotiation; each query is paid for in a separate transaction, txid acts a proof of payment; the reputation system is simplified (see below); the results are not cross-checked. In the PoC protocol: the client calculates the price based on the known rate per hour of history; the client pays the appropriate amount to the server's address; the client sends a HistoryQuery to the server alongside the proof of payment (txid); the server checks that the txid corresponds to a confirmed transaction with at least the required amount; the server sends a HistoryResponse to the client. In further subsections, we list the potential direction for future work towards a fully-fledged i13n mechanism.","s":"Waku Store incentivisation","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":607,"t":"For PoC, we assume a constant price per hour of history. This price and the blockchain address of the server are assumed to be common knowledge. This simplifies the client-server interaction, avoiding the price negotiation step. In the future versions of the protocol, the price will be negotiated and will depend on multiple parameters, such as the total size of the relevant messages in the response.","s":"Pricing","u":"/research/research-and-studies/incentivisation","h":"#pricing","p":584},{"i":609,"t":"DoS protection - see https://github.com/waku-org/research/issues/66 Cost calculation - see https://github.com/waku-org/research/issues/35 Price advertisement - see https://github.com/waku-org/research/issues/51 Price negotiation - see https://github.com/waku-org/research/issues/52","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work","p":584},{"i":611,"t":"For the PoC, each request is paid for with a separate transaction. The transaction hash (txid) acts as a proof of payment. The server verifies the payment by ensuring that: the transaction has been confirmed; the transaction is paying the proper amount to the server's account; the txid does not correspond to any prior response. The client gives proof of payment before it receives the response. Other options could be: the client pays after the fact; the client pays partly upfront and partly after the fact; a centralised third party (either trusted or semi-trusted, like a smart contract) ensures atomicity; cryptographically ensured atomicity (similar to atomic swaps, Lightning, or Hopr). Our design considerations are: the PoC protocol should be simple; servers are more \"permanent\" entities and are more likely to have long-lived identities; it is more important to protect the clients's privacy than the server's privacy. In light of these criteria, we suggest that the client pays first. This is simpler than splitting the payment, or involving an extra atomicity-enforcing mechanism. Moreover, pre-payment is arguably more privacy-preserving than post-payment, which encourages servers to deanonymise clients to prevent fraud.","s":"Payment","u":"/research/research-and-studies/incentivisation","h":"#payment","p":584},{"i":613,"t":"Add more payment methods - see https://github.com/waku-org/research/issues/58 Design a subscription model with service credentials - see https://github.com/waku-org/research/issues/59 Add privacy to service credentials - see https://github.com/waku-org/research/issues/60 Consider the impact of network disruptions - see https://github.com/waku-org/research/issues/65","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-1","p":584},{"i":615,"t":"We use reputation to discourage the server from taking the payment and not responding. The client keeps track of the server's reputation: all servers start with zero reputation points; if the server honours the request, it gets +n points; if the server does not respond before a timeout, it gets -m points. if the server's reputation drops below k points, the client will never query it again. n, m, and k are subject to configuration. Optionally, a client may treat a given server as trusted, assigning it a constant positive reputation. Potential issues: An attacker can establish new server identities and continue running away with clients' money. Countermeasures: a client only queries trusted servers (which however leads to centralisation); when querying a new server, a client first sends a small (i.e. cheap) request as a test; more generally, the client selects a server on a case-by-case basis, weighing the payment amount against the server's reputation. The ban mechanism can theoretically be abused. For instance, a competitor may attack the victim server and cause the clients who were awaiting the response to ban that server. Countermeasure: prevent DoS-attacks.","s":"Reputation","u":"/research/research-and-studies/incentivisation","h":"#reputation","p":584},{"i":617,"t":"Design a more comprehensive reputation system: local reputation - see https://github.com/waku-org/research/issues/48 global reputation - see https://github.com/waku-org/research/issues/49","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-2","p":584},{"i":619,"t":"As there is no consensus over past messages, a client may want to query multiple servers and merge their responses. Cross-checking helps ensure that servers are a) not censoring real messages; b) not injecting fake messages into history. Cross-checking is absent in PoC but may be considered later.","s":"Results cross-checking","u":"/research/research-and-studies/incentivisation","h":"#results-cross-checking","p":584},{"i":621,"t":"Cross-checking the results against censorship - see https://github.com/waku-org/research/issues/57 Use RLN to limit fake message insertion - see https://github.com/waku-org/research/issues/38","s":"Future work","u":"/research/research-and-studies/incentivisation","h":"#future-work-3","p":584},{"i":623,"t":"On this page We should think about what the success metrics for an incentivised protocol are, and how to measure them both in simulated settings, as well as in a live network.","s":"Evaluation","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":625,"t":"On this page Analyze privacy issues - see https://github.com/waku-org/research/issues/61 Analyze decentralised storage protocols and their relevance e.g. as back-end storage for Store servers - see https://github.com/waku-org/research/issues/34 Analyze the role of message senders, in particular, whether they should pay for sending non-ephemeral messages - see https://github.com/waku-org/research/issues/32 Generalise incentivisation protocol to other Waku light protocols (Lightpush and Filter) - see https://github.com/waku-org/research/issues/67.","s":"Longer-term future work","u":"/research/research-and-studies/incentivisation","h":"","p":584},{"i":627,"t":"On this page Last updated: 14 February 2024 These website terms of use ('Website Terms of Use') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website. It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use. If you do not agree with these Website Terms of Use, you must not access or use the Website.","s":"Terms of Use","u":"/terms","h":"","p":626},{"i":629,"t":"For the purposes of these Website Terms of Use, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at: Logos Collective Association c/o PST Consulting GmbH Baarerstrasse 10 6300 Zug Switzerland Whenever we refer to “Logos”, “we”, “us” or any other similar references, we are referring to the Logos Collective Association.","s":"1) Who we are","u":"/terms","h":"#1-who-we-are","p":626},{"i":631,"t":"The Website is provided by us on an ‘as is’ basis and you use the Website at your own sole discretion and risk. We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site.These disclaimers will apply to the maximum extent permitted by applicable law. We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws. The content herein or as accessible through this website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein. The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such. Nothing in this Website should be construed by you as an offer to buy or sell, or soliciting any offer to buy or sell any tokens or any security.","s":"2) Disclaimers","u":"/terms","h":"#2-disclaimers","p":626},{"i":633,"t":"The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general. The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what’s presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website. While we aim to update our website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.","s":"3) Forward looking statements","u":"/terms","h":"#3-forward-looking-statements","p":626},{"i":635,"t":"The Website and its contents are made available under Creative Commons Attribution 4.0 International license (CC-BY 4.0). In essence this licence allows users to copy, modify and distribute the content in any format for any purpose, including commercial use, subject to certain requirements such as attributing us. For the full terms of this licence, please refer to the following website: https://creativecommons.org/licenses/by/4.0/.","s":"4) Intellectual property rights","u":"/terms","h":"#4-intellectual-property-rights","p":626},{"i":637,"t":"To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, Status does not represent or imply that it endorses or supports such third party websites or content therein, or that it believes such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.","s":"5) Third-party website links","u":"/terms","h":"#5-third-party-website-links","p":626},{"i":639,"t":"We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.","s":"6) Limitation of liability","u":"/terms","h":"#6-limitation-of-liability","p":626},{"i":641,"t":"You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys’ fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.","s":"7) Indemnity","u":"/terms","h":"#7-indemnity","p":626},{"i":643,"t":"We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.","s":"8) Modifications","u":"/terms","h":"#8-modifications","p":626},{"i":645,"t":"Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.","s":"9) Governing law","u":"/terms","h":"#9-governing-law","p":626},{"i":647,"t":"In these terms, “dispute” has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website. We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions. If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking. If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers’ Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration. Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.","s":"10) Disputes","u":"/terms","h":"#10-disputes","p":626},{"i":649,"t":"These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website. The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use. If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them. If you have any specific questions about these Website Terms of Use, please contact us at legal@free.technology. This document is licensed under CC-BY-SA.","s":"11) About these Website Terms of Use","u":"/terms","h":"#11-about-these-website-terms-of-use","p":626}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,1.225,1,4.79,2,4.594,3,3.649,4,4.147,5,2.012,6,3.827,7,1.345,8,1.854,9,3.514,10,4.425,11,1.204,12,5.027,13,2.046,14,2.301,15,3.427,16,3.241,17,3.241,18,4.029,19,3.241,20,5.323,21,2.895,22,2.895,23,2.938,24,3.3,25,3.3,26,5.323,27,6.321,28,4.029,29,5.323,30,6.321,31,3.031,32,5.719,33,6.321]],["t/4",[0,1.367,6,2.962,7,1.356,10,4.461,11,1.577,12,5.067,13,2.679,19,3.267,21,2.918,34,3.953,35,1.498,36,3.389,37,3.267,38,3.326,39,2.962,40,5.067,41,4.829,42,2.757,43,3.156,44,5.366,45,2.615,46,3.389,47,3.847,48,4.829,49,4.461,50,3.854,51,3.854,52,4.829,53,4.461,54,3.953,55,2.582]],["t/6",[0,1.414,3,3.083,4,3.503,5,1.305,6,3.037,9,1.473,11,0.657,14,1.256,15,1.871,16,3.349,19,1.769,21,1.58,22,1.58,28,3.404,34,3.313,35,0.625,40,4.247,41,2.615,46,2.84,56,4.951,57,5.34,58,0.867,59,2.602,60,1.909,61,5.34,62,5.34,63,3.987,64,3.739,65,3.154,66,4.832,67,2.744,68,4.832,69,1.835,70,5.34,71,3.451,72,2.335,73,3.451,74,2.416,75,6.533,76,2.561,77,3.451,78,3.451,79,4.497,80,2.264,81,2.264,82,2.199,83,3.122,84,1.909,85,6.193,86,4.832,87,4.047,88,3.122,89,1.769,90,4.832,91,1.654,92,2.141,93,5.195,94,2.744,95,2.906,96,2.615,97,2.84,98,3.451,99,2.264,100,3.122,101,2.038,102,1.709,103,3.451,104,2.615,105,2.744,106,2.087,107,2.264,108,2.744,109,2.508,110,4.832,111,4.497,112,2.906,113,1.654,114,3.451,115,3.451,116,1.871,117,1.557,118,1.992,119,2.416,120,2.906,121,2.906,122,1.654,123,3.122,124,3.451,125,3.451,126,3.122]],["t/10",[0,1.218,16,3.215,22,2.872,28,3.997,35,1.135,36,3.335,38,3.273,42,2.713,45,2.573,58,0.739,127,6.271,128,3.703,129,5.281,130,3.099,131,1.343,132,4.114,133,3.055,134,2.209,135,1.691,136,3.055,137,2.541,138,5.674,139,4.752,140,4.39,141,3.273,142,4.752,143,4.987,144,3.542,145,4.114,146,3.273,147,4.557]],["t/12",[0,1.225,14,2.301,15,4.464,18,4.029,37,4.221,58,0.971,59,3.08,83,5.719,92,3.922,122,3.031,148,3.131,149,6.41,150,2.853,151,5.719,152,2.938,153,3.922,154,3.649,155,3.031,156,3.649,157,2.998,158,6.321,159,3.362,160,3.3,161,4.594,162,5.248,163,5.401,164,5.027,165,5.719,166,5.323]],["t/14",[0,1.448,18,3.649,22,2.622,35,1.037,58,0.909,60,4.823,76,2.745,126,5.181,131,0.767,135,1.544,153,3.552,155,2.745,156,3.305,157,2.085,167,4.924,168,4.637,169,4.553,170,1.588,171,4.553,172,3.463,173,5.844,174,5.726,175,5.726,176,2.79,177,3.463,178,3.82,179,2.658,180,4.008,181,5.181,182,4.161,183,4.008,184,5.726,185,3.756,186,3.305,187,5.726,188,4.339,189,5.726]],["t/16",[0,1.421,6,2.825,7,1.293,8,1.783,13,1.968,15,3.295,37,3.116,42,2.629,43,3.011,58,0.717,92,3.771,149,5.618,154,3.508,157,3.271,159,3.232,160,3.173,161,5.832,163,5.264,170,1.685,190,5.118,191,3.295,192,3.987,193,6.081,194,5.118,195,3.295,196,3.676,197,6.078,198,5.832,199,5.118,200,2.402,201,6.078,202,2.594,203,2.869]],["t/18",[0,1.031,19,3.553,58,1.03,65,4.093,128,4.093,157,3.655,195,3.758,203,4.514,204,5.933,205,5.037,206,4.192,207,6.114,208,6.114,209,5.836,210,2.773,211,1.869,212,6.931]],["t/20",[6,3.087,7,0.983,11,1.265,13,2.15,14,1.682,19,2.369,58,0.917,60,2.556,65,2.729,82,2.945,128,2.729,133,2.251,134,1.627,150,2.085,192,3.031,195,3.601,203,3.67,204,4.824,205,3.358,206,2.795,207,4.65,208,4.65,209,5.593,210,2.658,211,2.097,213,1.804,214,3.127,215,3.675,216,2.867,217,3.127,218,2.148,219,3.891,220,2.412,221,3.675,222,4.621,223,2.181,224,3.891,225,3.358,226,3.601,227,3.031,228,4.621,229,4.181,230,4.181,231,2.556,232,3.601,233,2.556,234,3.891,235,5.593,236,3.358,237,3.235,238,4.181,239,4.181,240,3.891,241,4.181,242,2.056,243,7.161,244,4.621,245,2.148,246,6.01,247,4.621]],["t/22",[0,1.025,5,1.684,7,1.287,11,1.524,13,2.433,15,1.661,18,4.391,22,1.403,23,1.424,25,4.794,35,0.881,38,1.599,58,1.169,59,2.37,60,2.69,72,2.073,117,1.382,118,2.807,130,1.559,131,1.2,133,1.492,135,0.826,137,1.971,153,1.9,155,1.469,157,2.736,162,3.1,163,3.191,170,0.849,173,3.686,176,2.947,177,1.853,178,1.517,179,1.056,180,2.144,181,2.771,199,2.579,203,3.252,206,2.942,242,1.363,248,2.771,249,2.436,250,2.771,251,1.996,252,1.971,253,2.757,254,2.587,255,2.865,256,2.076,257,1.543,258,1.809,259,3.28,260,3.191,261,3.405,262,2.226,263,2.587,264,2.37,265,1.971,266,3.1,267,2.321,268,1.809,269,1.629,270,3.191,271,2.637,272,2.579,273,1.694,274,1.469,275,2.872,276,1.952,277,2.321,278,1.853,279,2.226,280,2.226,281,2.436,282,1.543,283,0.962,284,1.853]],["t/24",[0,1.367,17,3.267,28,4.061,42,2.757,84,3.525,99,4.18,113,3.968,118,3.678,132,5.43,141,3.326,142,4.829,145,4.18,146,3.326,147,4.631,157,2.32,203,3.008,267,4.829,285,5.765,286,3.055,287,4.631,288,5.067,289,4.829,290,4.631,291,6.015,292,5.366,293,4.18,294,6.372,295,4.312,296,5.067,297,5.366,298,2.795,299,4.312]],["t/26",[7,1.828,11,1.637,58,1.114,117,3.048,131,0.904,137,3.481,157,3.128,170,1.872,178,3.345,203,3.187,204,4.19,242,3.004,251,2.771,252,2.736,253,3.438,254,3.591,255,2.575,300,3.004,301,4.328,302,2.844,303,3.345,304,5.118]],["t/28",[0,0.915,5,1.016,11,0.792,13,1.346,25,2.171,35,1.114,39,1.933,58,1.018,76,1.994,117,1.877,118,2.401,130,1.333,131,1.335,133,2.997,137,1.685,157,1.514,176,3.941,200,2.431,210,1.664,211,2.814,213,2.858,242,1.85,253,2.461,283,1.306,302,1.752,305,4.568,306,2.524,307,3.598,308,4.953,309,3.968,310,3.763,311,4.892,312,4.159,313,1.586,314,2.349,315,2.215,316,2.557,317,1.729,318,4.159,319,2.815,320,3.92,321,2.736,322,3.047,323,3.502,324,2.728,325,3.502,326,2.912,327,2.58,328,2.456,329,3.763]],["t/30",[35,1.212,45,2.748,58,0.79,97,3.561,131,1.144,178,3.317,211,2.762,213,2.614,263,4.544,283,2.103,305,3.782,306,2.748,307,2.979,308,4.531,309,3.63,320,4.268,321,3.801,322,4.662,327,4.154,330,2.858,331,4.393,332,4.154]],["t/32",[0,0.94,5,2.371,7,2.064,8,1.854,14,2.301,35,1.144,58,0.745,131,0.846,157,2.301,200,2.498,210,2.529,211,2.617,274,2.765,307,3.663,314,3.57,330,2.698,333,6.933,334,8.285,335,5.027,336,3.131,337,5.027,338,6.321,339,6.321]],["t/34",[0,0.539,5,0.886,11,1.701,13,1.796,14,2.453,35,1.366,42,1.568,53,3.883,54,2.249,58,0.427,63,1.965,97,1.928,104,2.747,116,1.965,122,1.738,150,1.636,157,1.32,179,1.249,202,2.367,210,1.45,211,2.861,213,2.947,251,1.487,252,1.469,253,1.45,257,2.137,283,1.742,306,3.663,309,1.965,313,1.382,314,3.133,320,2.31,321,1.613,322,1.795,327,4.18,328,5.066,332,2.249,336,1.795,340,3.639,341,2.983,342,2.912,343,5.042,344,5.189,345,5.72,346,2.747,347,3.28,348,4.204,349,2.453,350,5.019,351,3.754,352,2.883,353,3.28,354,1.965,355,3.625]],["t/36",[11,1.705,58,0.941,97,3.208,113,2.892,117,2.722,137,2.444,178,2.988,203,2.847,204,3.742,210,2.413,211,2.153,213,3.117,214,5.403,243,6.349,304,4.571,306,2.475,313,2.3,321,2.683,332,3.742,356,5.457,357,6.032,358,3.148,359,4.082,360,6.504,361,5.457,362,5.457,363,8.098,364,5.457,365,5.457,366,6.032,367,4.953,368,5.457]],["t/38",[0,0.834,7,1.192,11,1.899,35,1.015,58,1.09,113,3.644,200,2.215,211,2.797,213,2.967,232,3.038,251,3.119,253,3.041,254,4.042,306,3.119,307,2.493,360,4.073,369,2.98,370,5.76,371,5.604,372,5.07,373,5.07,374,4.719,375,5.07,376,3.676,377,4.247,378,5.07,379,4.719,380,4.719,381,7.6,382,5.07,383,4.719]],["t/40",[0,0.511,7,1.132,11,1.599,13,1.112,14,1.251,23,1.597,31,1.647,35,1.328,56,2.604,58,0.865,72,2.325,97,1.827,113,1.647,117,1.55,150,1.55,179,1.184,200,2.9,211,2.879,213,3.099,223,2.512,232,1.863,252,2.64,253,2.607,254,1.827,255,3.026,275,4.688,283,1.672,291,2.497,306,3.257,307,3.264,311,2.732,314,1.94,320,2.19,321,1.528,322,1.702,327,2.132,328,3.143,332,2.132,341,2.575,342,2.513,350,3.109,351,3.602,352,2.732,369,1.827,384,4.813,385,3.436,386,2.944,387,2.497,388,2.893,389,2.078,390,2.604,391,5.322,392,2.732,393,2.893,394,3.436,395,4.152,396,3.109,397,2.497,398,3.109,399,3.109,400,2.732,401,3.436,402,3.436,403,3.436,404,2.254,405,2.132,406,2.19,407,2.732]],["t/42",[0,1.36,5,1.867,7,1.201,11,1.61,13,2.041,15,2.012,18,3.599,23,3.821,24,3.988,25,1.937,35,0.871,37,1.129,53,1.541,58,0.937,59,1.808,65,1.3,110,3.357,116,1.193,118,2.776,128,1.3,130,0.705,131,0.844,133,2.344,135,1.001,136,1.073,137,3.095,141,1.149,149,3.953,156,1.271,157,0.801,159,1.171,161,3.496,162,1.403,163,3.155,167,1.243,168,1.171,176,2.344,178,1.838,192,1.444,195,1.193,203,1.039,204,3.503,206,2.244,207,1.541,208,1.541,209,3.125,213,0.859,214,1.49,215,2.951,217,1.49,218,1.023,220,1.149,224,1.854,232,1.193,233,1.218,237,1.541,240,1.854,242,2.14,251,0.903,255,1.834,256,2.053,257,2,258,2.191,259,3.061,260,3.155,261,2.598,263,1.973,264,1.073,265,1.503,266,3.066,270,3.155,271,2.608,272,1.854,273,1.218,274,1.705,275,2.84,276,2.365,283,1.511,300,0.979,301,2.423,302,1.563,303,1.09,315,0.793,316,1.542,317,0.915,324,1.444,343,1.243,356,3.357,360,1.6,408,1.751,409,2.201,410,2.697,411,0.849,412,1.366,413,1.668,414,1.751,415,1.668,416,1.854,417,2.697,418,1.271,419,2.201,420,2.201,421,1.6,422,2.201,423,1.6,424,1.3,425,0.775,426,1.171,427,1.444,428,1.668,429,1.992,430,1.854,431,1.668,432,1.444,433,1.992,434,2.201,435,2.697,436,1.668,437,1.366,438,1.751,439,1.023,440,1.668,441,1.193,442,1.854,443,1.751,444,1.444,445,1.992,446,1.331]],["t/44",[0,1.283,5,2.26,22,2.566,35,1.561,38,2.925,58,1.017,91,2.687,118,3.235,130,1.796,131,1.365,133,2.73,137,2.271,170,2.107,176,3.703,263,4.042,264,3.703,265,3.494,274,2.295,277,4.247,278,3.39,279,4.073,280,4.073,281,4.457,282,2.823,283,1.76,284,3.39,300,2.493,301,2.823,302,2.36,303,2.776,313,2.136,337,4.457]],["t/46",[0,0.963,5,1.583,58,0.986,131,1.12,157,3.045,170,1.796,176,4.514,183,4.534,203,3.057,210,2.591,211,2.734,264,3.155,265,2.624,305,4.724,306,2.658,307,2.881,308,4.383,309,3.511,315,2.332,316,3.477,447,4.018,448,5.86,449,3.444,450,4.534]],["t/48",[5,2.273,7,0.681,8,0.939,22,1.465,23,1.487,39,1.487,43,1.585,58,0.961,86,2.895,122,1.534,130,1.613,131,1.309,135,0.863,152,3.281,157,1.165,176,3.74,179,1.103,186,3.593,198,2.325,200,1.99,210,1.28,211,2.896,263,4.335,271,1.735,274,0.966,283,1.005,302,1.347,305,4.603,306,3.499,307,3.415,314,1.807,451,2.536,452,2.544,453,5.632,454,1.51,455,2.039,456,1.935,457,3.986,458,2.325,459,2.843,460,2.694,461,1.889,462,1.612,463,2.895,464,2.895,465,3.045,466,4.555,467,4.555,468,2.544,469,2.694,470,2.544,471,4.004,472,2.165,473,1.64,474,3.199,475,1.889,476,2.694,477,3.199,478,3.199,479,3.199,480,1.935,481,2.165,482,2.895,483,2.544,484,1.534,485,2.099]],["t/50",[0,0.831,45,1.501,58,0.963,131,1.267,157,1.332,170,1.014,176,3.301,179,1.261,186,3.911,195,1.983,200,1.446,203,1.727,204,3.465,207,2.561,208,2.561,210,2.711,211,2.95,220,1.91,255,1.395,257,1.161,264,4.195,265,3.834,305,3.827,306,3.112,307,2.485,332,4.204,444,2.4,448,3.31,449,1.946,450,2.561,454,1.727,465,3.379,473,2.864,486,2.066,487,7.39,488,6.861,489,3.081,490,5.706,491,3.658,492,3.31,493,1.605,494,6.131,495,2.4,496,5.054,497,3.658,498,3.31,499,3.658]],["t/52",[5,2.226,45,1.953,58,0.8,131,1.154,157,1.733,176,4.198,186,2.748,210,3.163,211,2.983,255,1.815,257,1.51,263,4.204,264,3.306,265,3.203,305,3.832,306,3.244,307,2.118,332,4.904,453,4.307,465,4.104,466,4.307,467,4.307,473,2.44,487,4.307,488,6.139,490,4.008,494,6.139,495,3.123,496,4.307,498,4.307,500,4.008,501,4.76]],["t/54",[5,2.066,58,0.776,131,1.25,157,3.078,200,2.602,203,3.108,210,2.635,211,2.748,238,7.649,256,3.608,269,3.502,274,2.553,305,4.774,306,2.702,307,3.761,308,4.456,309,3.57,333,5.545,502,6.584,503,6.584]],["t/56",[0,1.109,8,2.187,18,4.751,23,3.465,58,0.879,135,2.01,137,3.02,159,3.964,160,3.891,170,2.067,266,4.751,270,4.89,271,4.041,272,6.277,273,4.123,274,2.251,300,3.316,301,3.755,349,5.044]],["t/58",[0,1.109,18,4.751,58,0.879,72,5.044,141,3.891,146,4.77,157,2.714,203,3.518,225,5.417,270,6.483,273,5.054,428,5.649,473,3.821,504,4.89,505,5.417]],["t/60",[8,2.927,157,3.454,160,3.555,164,5.417,266,4.341,270,6.901,273,5.518,284,4.12,302,2.869,473,3.492,506,4.95,507,7.989,508,6.811,509,6.811]],["t/62",[0,0.918,8,2.656,51,3.734,137,2.501,153,3.83,155,2.96,157,2.952,159,3.283,161,4.486,185,4.049,195,3.347,211,1.665,270,6.951,273,5.317,298,2.708,457,3.486,473,3.165,510,5.198,511,5.585,512,3.83,513,4.016,514,3.83,515,6.173,516,5.585,517,6.173,518,6.173,519,6.173]],["t/64",[0,0.619,7,0.885,14,1.514,21,3.352,23,1.933,35,0.753,39,1.933,42,2.661,45,1.707,58,0.49,65,2.456,131,0.557,134,1.465,135,1.122,140,4.306,141,3.211,159,3.893,170,1.153,193,3.152,198,3.022,202,3.124,210,1.664,217,2.815,271,4.385,274,2.729,296,3.307,300,1.85,301,2.095,324,2.728,337,3.307,358,3.211,395,4.665,418,2.401,421,3.022,424,2.456,425,1.465,457,2.349,471,4.892,481,5.473,493,1.824,510,3.502,511,3.763,520,2.912,521,2.255,522,3.152,523,5.565,524,3.763,525,6.151,526,4.159,527,4.47,528,6.151,529,3.502,530,3.152,531,2.58,532,2.401,533,3.763,534,3.152,535,5.662,536,3.022,537,4.159,538,4.159,539,4.159,540,4.159,541,3.307,542,2.58,543,2.912,544,3.152,545,2.651,546,2.815,547,4.159,548,3.763,549,4.159]],["t/66",[23,2.782,31,2.87,58,0.937,76,2.87,131,0.801,135,1.615,179,2.063,211,2.405,271,4.307,273,3.311,274,2.868,313,3.029,358,3.125,451,3.016,454,2.825,462,4.002,471,6.317,504,3.927,535,4.191,550,5.041,551,8.067,552,3.535,553,3.714,554,7.188,555,5.986,556,5.986,557,5.416,558,5.416,559,7.944,560,3.815,561,5.986]],["t/68",[23,3.25,31,3.352,72,4.732,271,3.791,358,3.65,395,4.456,452,5.561,462,3.523,524,6.326,535,4.895,551,7.946,554,6.326,558,6.326,562,4.456,563,8.782,564,6.984,565,5.561,566,7.396,567,5.561,568,6.326,569,5.888,570,3.585]],["t/70",[0,0.911,35,1.109,42,2.65,58,0.951,99,5.291,135,1.652,141,4.21,147,4.451,179,2.111,211,2.432,218,2.847,271,4.373,274,2.723,288,4.871,451,3.086,454,2.891,462,4.063,504,4.018,553,3.8,557,5.542,562,3.904,570,3.14,571,8.065,572,4.288,573,7.298,574,6.125,575,4.642,576,6.125,577,6.125,578,5.542,579,4.642]],["t/72",[13,2.368,37,3.751,58,1.065,137,2.964,157,3.289,159,3.891,160,3.819,170,2.028,203,3.453,249,5.818,266,5.758,412,4.539,424,4.32,425,2.577,580,6.619,581,6.161,582,6.619,583,5.818]],["t/75",[31,3.352,37,3.585,39,3.25,94,5.561,106,4.229,157,2.546,159,5.106,168,5.106,192,5.761,266,6.12,584,6.992,585,6.326,586,6.992,587,5.081,588,6.992,589,6.656,590,4.895,591,5.299]],["t/77",[7,1.664,10,5.476,17,4.01,92,4.853,135,2.11,157,2.848,200,3.092,280,5.685,304,5.928,592,3.294,593,6.587,594,6.587,595,7.078,596,7.823]],["t/79",[44,6.459,157,2.793,159,4.945,170,2.127,192,5.032,195,4.159,218,3.566,226,4.159,266,4.889,315,2.762,597,5.032,598,6.459,599,7.671,600,6.94,601,7.671]],["t/81",[5,1.981,13,2.625,17,3.165,42,2.671,53,4.321,58,0.728,63,3.347,91,2.96,150,2.786,157,2.952,159,4.814,179,2.128,199,5.198,206,3.734,264,3.008,265,3.285,266,6.127,271,3.347,315,2.919,316,2.566,424,3.645,461,3.645,510,5.198,520,4.321,602,5.585,603,5.585,604,5.585,605,4.486,606,5.585,607,5.585,608,4.678]],["t/83",[58,0.879,130,2.389,133,3.632,135,2.01,136,3.632,157,2.714,160,3.891,167,4.21,168,3.964,266,4.751,317,3.098,425,2.625,426,3.964,427,4.89,589,5.649,609,4.123,610,3.891,611,5.417,612,5.649]],["t/85",[0,1.098,13,2.391,17,3.786,35,1.337,58,0.871,84,4.084,135,1.992,194,6.218,203,3.485,223,3.485,266,5.791,514,4.581,613,4.706,614,3.72,615,6.218,616,5.596,617,7.384,618,3.854,619,7.384]],["t/87",[7,1.501,11,1.344,13,2.284,58,1.041,72,4.774,117,3.184,131,0.944,137,3.578,170,1.956,206,4.267,251,2.895,252,2.858,253,3.534,254,4.697,255,3.676,275,4.166,276,4.496,300,3.138,301,3.554]],["t/89",[0,0.988,5,2.077,11,1.619,13,2.15,23,3.086,35,1.202,69,3.531,206,4.016,252,2.69,255,2.531,274,2.005,275,5.536,276,5.417,311,5.28,395,4.232,423,4.825,431,7.104,432,4.356,579,5.032,620,6.008,621,4.119,622,4.648,623,4.356,624,6.64,625,6.64]],["t/91",[5,0.89,11,1.06,13,1.179,23,2.587,35,0.659,72,3.767,113,1.746,131,0.488,141,1.901,157,1.326,170,1.01,177,2.203,200,2.2,203,1.719,206,2.203,211,2.956,213,2.638,223,1.719,245,1.693,255,2.576,274,1.681,275,5.791,276,2.321,306,2.284,307,3.626,313,1.388,328,3.287,341,1.439,342,1.405,384,3.651,386,2.014,395,5.877,396,3.295,397,2.646,398,5.036,399,3.295,400,4.427,404,2.389,405,2.259,431,6.513,432,2.389,433,5.036,575,2.76,579,4.218,622,2.549,626,3.642,627,2.549,628,5.566,629,2.76,630,3.642,631,3.642,632,3.642,633,3.642,634,3.642,635,3.642,636,3.642,637,2.102,638,3.295,639,3.295]],["t/93",[0,1.292,7,1.209,11,1.655,35,1.029,37,2.914,43,2.816,47,2.642,58,1.097,106,3.438,131,1.027,137,2.303,170,1.576,203,2.683,232,4.16,259,5.547,260,3.729,261,3.98,262,4.131,274,1.717,300,2.529,301,2.864,313,2.167,315,2.047,316,3.611,352,4.521,369,3.023,406,3.623,415,4.308,473,2.914,531,3.527,587,4.131,640,4.308,641,4.308,642,3.729,643,5.143]],["t/95",[15,3.93,45,2.974,58,0.855,195,3.93,203,4.24,204,5.573,205,5.268,206,4.384,207,6.288,208,6.288,259,5.292,262,7.093,644,7.564]],["t/97",[5,0.822,11,1.907,22,1.54,24,1.755,58,0.758,63,1.823,89,1.724,116,2.838,179,1.159,200,1.329,202,2.234,210,2.572,211,2.829,213,2.832,223,1.587,226,1.823,232,1.823,251,2.637,252,2.604,253,1.346,254,1.788,255,1.282,256,1.435,257,1.067,259,4.261,260,3.434,262,4.671,269,1.788,275,1.986,286,2.51,306,2.637,307,2.859,316,1.398,328,3.091,330,1.435,341,1.329,342,1.297,343,3.63,344,3.887,345,3.967,346,2.548,348,2.548,376,2.206,383,2.832,384,3.434,397,2.444,400,2.674,413,6.995,444,2.206,513,4.122,570,1.724,592,2.204,645,2.206,646,5.815,647,3.336,648,5.412,649,4.163,650,4.736,651,3.043,652,2.444,653,2.674,654,3.043,655,1.86]],["t/99",[5,0.751,11,1.87,21,1.408,22,1.408,24,1.605,46,4.004,58,0.715,89,1.576,104,2.33,116,1.667,170,0.853,200,1.215,202,1.312,210,2.427,211,2.82,213,2.696,223,1.451,232,1.667,251,2.833,252,2.457,253,1.23,254,1.635,255,1.172,256,2.082,257,0.976,259,4.082,260,3.201,262,4.408,275,1.816,286,2.908,306,2.833,307,2.698,316,1.278,328,2.881,341,1.928,342,1.882,343,3.425,344,3.669,345,3.698,346,2.33,348,2.33,353,2.782,376,3.201,383,2.589,384,3.201,400,2.445,412,1.908,414,6.373,439,1.429,444,2.017,513,4.554,572,2.153,592,2.055,647,3.11,649,3.88,652,2.235,653,2.445,654,2.782,656,4.165,657,5.107,658,4.414,659,2.782,660,4.414,661,5.488,662,3.075,663,4.414,664,2.782]],["t/101",[11,1.886,13,0.616,14,0.693,15,1.032,24,0.994,45,0.781,46,3.078,58,0.605,85,5.326,89,0.976,104,1.443,146,0.994,179,1.13,200,1.296,202,0.813,210,2.316,211,2.9,213,1.686,232,1.778,251,0.781,252,2.08,253,0.762,254,1.013,255,0.726,259,4.211,261,6.026,262,4.206,284,1.152,286,2.071,306,3.07,307,2.574,313,0.726,314,1.075,316,1.363,328,3.735,341,1.296,342,1.265,343,3.269,345,3.89,376,2.151,377,4.793,384,3.796,387,1.384,406,1.214,413,3.89,414,4.082,437,1.181,512,1.181,513,4.264,562,3.272,592,1.381,595,2.967,609,2.389,647,2.09,648,2.762,649,1.514,650,2.967,651,2.967,653,1.514,656,3.498,657,4.323,658,3.908,659,1.723,661,2.967,663,1.723,665,1.514,666,1.514,667,1.604,668,2.762,669,1.904,670,1.904,671,1.904,672,1.904,673,0.928,674,0.959,675,5.133,676,3.28,677,3.28,678,2.296,679,4.319,680,1.904,681,1.904,682,1.904,683,1.904,684,1.904,685,1.904,686,1.904,687,1.904,688,2.383,689,4.319,690,1.904,691,2.09,692,1.333,693,1.904,694,2.608,695,3.28,696,1.904,697,1.904,698,1.514,699,1.723,700,1.723,701,1.904,702,3.28,703,1.904]],["t/103",[11,1.154,13,1.961,21,1.865,31,1.953,39,1.893,45,1.671,46,2.166,51,3.663,54,2.527,58,0.944,72,2.756,117,2.733,170,1.129,179,2.492,203,1.923,210,1.63,211,2.715,217,2.756,220,3.774,256,1.738,257,1.922,259,3.92,260,2.672,261,4.24,286,2.904,306,3.68,316,1.693,379,3.43,404,2.672,405,2.527,407,3.239,413,4.59,414,3.239,457,2.3,513,4.726,592,1.715,644,3.43,646,3.685,647,2.596,648,3.43,657,3.43,660,3.685,673,1.985,704,4.073,705,4.073,706,3.685,707,3.685,708,4.073,709,4.073,710,3.43,711,2.527,712,7.23,713,4.073,714,4.073,715,4.073,716,4.073,717,4.073,718,4.073,719,4.073,720,4.073,721,4.073,722,4.073,723,4.073,724,4.073,725,3.239,726,4.073]],["t/105",[0,0.918,42,2.671,58,0.728,131,0.826,134,2.174,160,4.232,191,3.347,220,3.222,282,3.11,283,3.019,298,2.708,313,2.353,315,2.223,316,3.37,411,3.128,441,4.395,506,5.891,521,3.347,553,5.03,565,4.909,610,3.222,727,4.678,728,5.486,729,4.909,730,4.486,731,3.934,732,2.914,733,6.447,734,4.321,735,3.83]],["t/107",[58,0.764,130,2.68,131,1.12,136,4.075,170,2.319,220,4.366,283,2.627,316,2.692,336,3.208,411,3.574,435,4.707,461,4.939,493,3.669,553,5.189,580,5.86,728,5.66,733,5.15,736,4.908,737,4.249,738,3.444,739,8.364,740,5.15]],["t/109",[58,1.032,130,2.483,131,1.172,136,3.776,160,4.045,220,4.045,242,2.566,283,2.939,302,2.429,313,2.199,316,2.397,411,3.376,461,3.406,462,2.906,493,2.53,506,6.36,553,4.808,678,4.038,728,3.903,730,4.191,731,3.676,733,4.587,737,3.784,738,3.067,740,4.587,741,5.767,742,5.767,743,5.767,744,4.587,745,7.749,746,5.873,747,3.257]],["t/111",[58,0.926,65,2.778,130,1.507,131,0.63,134,1.657,136,3.277,160,4.474,211,2.544,220,2.455,270,3.086,273,3.721,283,3.222,313,1.793,316,1.955,336,3.332,342,1.815,351,5.314,411,2.595,441,5.481,461,2.778,462,2.37,475,2.778,506,6.228,553,2.918,728,3.183,729,5.35,730,3.418,731,2.998,733,3.74,738,3.577,740,3.74,746,3.565,748,2.998,749,4.703,750,3.418,751,3.418,752,3.086,753,4.703,754,3.565,755,4.703,756,6.727,757,3.183]],["t/113",[5,1.262,7,1.529,8,2.108,11,1.574,14,1.88,22,2.365,58,0.609,113,2.476,117,2.331,130,1.655,131,1.196,134,1.819,135,1.393,137,2.092,146,3.751,182,3.753,257,2.28,258,3.05,274,1.56,283,2.806,286,2.476,298,2.265,315,3.381,336,2.558,342,1.992,354,2.8,386,2.857,411,3.446,461,3.05,462,2.602,473,2.648,513,2.558,592,2.175,674,2.602,738,2.747,744,4.107,750,3.753,751,3.753,758,3.615,759,3.495,760,4.673,761,3.753,762,2.503,763,2.204,764,3.615,765,2.696]],["t/115",[58,0.913,60,4.284,137,3.138,153,4.806,157,2.82,170,2.148,173,5.87,176,3.774,177,4.685,178,3.837,179,2.67,180,5.423,203,3.656,300,3.446,301,3.902]],["t/117",[22,2.872,58,0.966,60,5.045,113,3.007,133,3.055,134,2.209,157,2.283,173,6.208,177,3.793,178,4.057,180,5.734,203,2.96,204,3.89,207,4.39,208,5.734,213,2.448,218,2.915,231,3.469,290,4.557,316,2.607,766,6.897,767,8.191,768,6.897,769,6.271,770,3.89,771,6.271,772,4.39,773,6.271,774,4.752]],["t/119",[0,1.229,6,2.401,11,0.984,35,0.935,60,2.857,67,4.107,132,5.421,134,1.819,144,2.917,170,1.432,173,3.914,179,2.848,180,6.254,202,2.204,203,2.438,213,2.016,218,2.401,254,2.747,279,3.753,291,5.222,295,4.863,300,2.297,301,2.602,552,3.05,618,2.696,642,3.388,775,5.164,776,4.673,777,5.164,778,5.164,779,5.164,780,5.164,781,4.349,782,3.753,783,3.292,784,5.164,785,4.349,786,4.349,787,2.516,788,3.05,789,4.673,790,4.349,791,4.673,792,5.164,793,3.292,794,5.164,795,6.501,796,4.107,797,5.164,798,3.753,799,4.107,800,5.164,801,4.349,802,5.164]],["t/121",[7,1.664,11,1.49,58,0.922,131,1.047,137,3.169,170,2.169,213,3.054,253,3.13,255,2.982,256,3.339,257,2.482,258,4.619,300,3.48,301,3.941]],["t/123",[0,1.013,35,1.233,58,0.803,76,3.266,131,1.27,157,2.48,200,2.692,210,2.725,211,2.777,213,3.373,242,3.03,253,3.457,305,5.358,306,2.795,307,3.843,308,4.609,309,3.693,310,6.163]],["t/125",[5,2.361,7,1.078,35,1.283,58,1.099,130,1.623,131,1.328,157,1.844,210,2.027,211,2.73,213,1.978,257,3.211,274,2.141,293,3.323,305,2.861,306,2.078,307,3.153,308,3.428,309,2.746,316,2.105,330,2.162,333,4.265,334,6.414,335,4.028,336,3.511,451,2.552,647,3.228,674,2.552,758,3.546,763,2.162,803,5.065,804,5.065,805,4.265,806,4.583,807,4.583,808,4.028]],["t/127",[11,1.793,157,2.438,210,2.679,211,2.825,213,3.336,255,2.553,256,2.858,257,2.124,306,3.506,328,3.954,340,5.606,341,3.377,342,3.297,344,5.693,346,5.075,347,6.058,348,5.075]],["t/129",[11,1.394,45,3.002,131,1.209,157,2.664,170,2.028,200,2.891,223,3.453,256,3.122,257,2.866,258,4.32,732,3.453,763,3.122,809,6.619,810,6.619,811,5.818,812,3.819,813,6.161,814,4.132,815,7.316]],["t/131",[5,1.214,11,1.764,13,1.609,89,2.548,131,0.665,170,1.378,186,2.869,200,3.659,211,2.661,213,1.94,223,3.302,255,1.895,256,2.985,257,2.219,260,3.26,306,2.039,307,2.211,313,1.895,314,2.807,316,2.907,336,2.462,341,1.964,342,1.917,344,4.231,384,6.3,387,3.612,389,3.006,390,3.766,411,3.123,486,2.807,652,3.612,731,3.167,763,3.749,774,3.766,809,4.497,814,2.807,816,4.97,817,4.97,818,4.97,819,3.363,820,4.497,821,4.97,822,4.497]],["t/133",[11,1.837,13,1.487,89,2.355,131,0.615,170,1.274,186,2.652,200,2.614,211,2.841,213,1.794,223,3.122,255,1.751,256,2.823,257,2.098,260,3.014,286,2.203,306,3.479,307,3.448,313,1.751,314,2.595,316,1.91,317,1.91,336,2.276,341,1.816,342,1.772,344,4.001,369,2.443,389,2.779,390,3.482,411,2.99,476,3.869,486,2.595,629,3.482,641,3.482,763,3.308,774,3.482,810,4.157,814,2.595,819,3.109,820,4.157,823,4.594,824,3.339,825,5.57,826,3.869,827,4.594,828,4.157,829,4.594,830,4.594,831,5.26,832,4.594,833,4.594,834,4.157]],["t/136",[5,1.332,11,1.42,157,1.984,210,2.18,211,2.902,256,3.628,257,1.729,306,3.488,307,2.424,315,1.962,336,2.699,384,3.575,408,4.334,411,3.526,486,5.162,652,3.96,763,2.326,814,4.801,822,6.747,825,4.589,826,4.589,834,6.747,835,9.14,836,3.96,837,3.96,838,6.747,839,5.449,840,5.449]],["t/138",[0,0.6,11,1.763,69,2.144,157,1.468,177,3.636,179,1.39,200,1.593,210,1.613,211,2.904,213,2.347,242,2.674,256,3.95,306,3.269,307,3.197,309,3.896,311,3.206,313,1.537,321,1.793,336,1.997,384,5.225,387,2.93,389,4.347,411,2.319,454,1.903,486,4.059,514,2.501,627,2.822,652,4.368,763,2.565,814,5.227,836,2.93,841,8.375,842,5.061,843,2.93,844,4.032,845,2.57,846,4.032,847,4.032,848,4.032,849,4.032,850,4.032,851,2.822,852,3.206,853,3.055,854,2.822]],["t/140",[5,1.055,7,0.919,11,1.802,31,2.07,55,2.562,56,3.272,58,0.746,108,3.434,113,3.032,117,1.949,131,0.578,179,2.179,188,3.272,211,2.751,242,1.921,253,1.728,255,1.646,256,3.909,257,2.613,258,2.55,291,3.138,306,3.379,307,1.921,313,1.646,336,2.139,384,2.833,404,2.833,405,2.679,407,3.434,411,3.382,454,2.985,589,3.272,652,3.138,763,2.699,825,3.636,826,3.636,838,3.907,841,3.907,855,7.481,856,5.325,857,6.323,858,6.323,859,5.325,860,6.323,861,4.318,862,3.434,863,4.318,864,2.254,865,3.907,866,3.272,867,4.318,868,4.318]],["t/142",[42,2.735,43,3.131,45,2.594,59,4.012,131,0.846,135,2.617,137,2.561,170,1.753,231,3.496,290,4.594,293,4.147,300,2.812,301,3.185,313,2.41,330,2.698,480,3.823,570,3.241,613,4.029,674,3.185,737,4.147,782,4.594,869,4.029,870,3.922,871,6.321,872,4.147,873,5.027,874,5.027,875,6.321,876,4.79,877,4.594,878,5.323,879,5.719,880,4.79,881,5.323]],["t/144",[39,1.943,43,3.059,58,0.493,59,3.009,135,1.128,204,4.555,211,2.333,213,1.632,245,1.943,504,4.051,527,5.336,592,1.761,614,2.106,831,3.325,869,2.665,874,3.325,878,3.521,879,3.783,882,3.783,883,3.521,884,4.181,885,2.267,886,4.181,887,6.056,888,6.175,889,5.587,890,3.325,891,4.181,892,4.181,893,4.181,894,4.181,895,4.181,896,7.827,897,4.181,898,3.038,899,4.181,900,4.181,901,5.839,902,6.183,903,7.342,904,7.342,905,7.342,906,7.342,907,4.181,908,4.181,909,4.181,910,6.175,911,4.181,912,6.175,913,6.175,914,5.587,915,4.181,916,4.181,917,4.181,918,4.181,919,4.181,920,4.181,921,2.594,922,4.181,923,6.175,924,4.181,925,4.181,926,4.181,927,4.181]],["t/146",[22,3.202,23,3.25,58,0.824,84,3.868,135,1.886,231,3.868,295,4.732,315,2.517,330,2.984,613,4.456,618,3.65,869,4.456,870,4.338,887,6.148,928,5.888,929,5.561,930,6.992,931,6.326,932,6.992,933,5.888,934,5.561,935,5.888,936,7.946,937,6.992]],["t/148",[59,3.5,84,5.625,130,2.302,135,1.937,196,4.345,412,4.456,486,4.057,732,3.39,737,4.712,744,5.712,786,6.049,885,5.513,887,6.252,938,7.183,939,8.081]],["t/150",[25,3.273,36,3.335,59,3.055,117,2.83,130,3.216,131,1.097,135,2.706,136,3.991,137,2.541,146,3.273,211,2.209,213,2.448,283,2.573,315,2.258,316,2.607,317,2.607,411,2.419,426,3.335,553,3.89,674,3.159,728,4.244,737,4.114,738,4.356,744,4.987,765,3.273,768,5.281]],["t/152",[0,1.068,25,3.749,58,0.847,117,3.241,122,3.444,130,2.302,131,0.962,135,2.409,137,2.91,150,3.241,179,2.476,183,5.028,283,2.805,404,4.712,405,4.456,552,5.274,737,4.712,869,4.578,870,4.456,885,3.894]],["t/154",[0,0.684,5,1.894,8,0.837,23,3.789,24,3.786,25,1.489,26,2.402,36,2.444,45,1.171,58,0.78,59,1.39,63,1.547,76,2.203,89,2.356,91,1.368,122,1.368,128,1.685,130,2.944,131,1.391,133,1.39,135,2.565,136,3.223,137,3.141,145,1.872,149,1.997,152,3.075,155,1.368,160,1.489,161,2.073,167,2.595,168,2.444,169,2.269,179,1.584,182,2.073,185,1.872,236,2.073,249,2.269,263,1.517,264,1.39,265,2.939,273,3.659,283,2.939,298,1.251,302,1.201,303,1.413,315,1.027,316,1.91,354,1.547,411,2.798,418,1.647,441,1.547,447,1.77,449,1.517,481,1.931,485,3.015,506,2.073,553,2.851,565,2.269,609,1.578,674,2.907,711,1.77,728,1.931,729,2.269,737,1.872,762,0.994,869,1.818,872,1.872,876,2.162,877,3.339,940,2.269,941,2.581,942,2.269,943,2.162,944,2.269,945,3.339,946,2.853,947,2.073,948,1.547,949,3.015,950,2.402]],["t/156",[0,0.979,13,2.132,15,3.57,42,2.849,58,0.776,137,2.668,149,4.609,157,3.078,161,4.785,162,5.388,163,6.125,164,5.236,165,5.958,166,5.545,170,2.344,178,3.261,190,5.545,191,3.57,192,4.319,193,6.407,194,5.545,195,3.57,196,3.983,203,3.108,300,2.929,301,3.317,951,6.584]],["t/158",[13,1.801,15,3.017,45,2.283,58,1.013,137,2.255,157,3.129,162,4.821,163,6.048,177,3.366,178,4.256,180,5.295,195,3.017,203,3.57,204,4.693,205,4.044,206,3.366,207,6.455,208,6.455,213,3.355,243,6.015,302,2.343,303,2.756,486,3.143,768,6.369,952,4.686,953,5.564,954,4.686,955,4.686,956,5.564,957,5.564,958,5.564,959,5.564]],["t/160",[0,0.597,13,1.299,58,0.706,60,3.963,131,1.3,134,1.413,162,3.816,163,2.631,170,1.987,177,2.426,200,2.367,210,2.867,211,2.902,213,3.102,242,2.664,253,3.402,269,3.184,302,2.522,303,1.987,306,2.457,308,2.715,309,2.175,349,2.715,395,4.566,411,1.547,441,3.884,446,2.426,523,5.418,532,2.315,560,2.557,621,2.489,623,2.631,960,4.011,961,7.945,962,4.011,963,3.378,964,3.378,965,4.011,966,4.011,967,4.011,968,5.988,969,4.011,970,6.483,971,3.629,972,3.04,973,5.418,974,3.629,975,3.378,976,3.19,977,4.011,978,2.915]],["t/162",[0,0.309,11,1.617,13,0.672,56,3.49,58,0.543,59,1.011,60,1.952,79,1.747,84,1.147,97,1.103,113,0.994,131,0.472,134,1.243,157,0.755,162,1.322,163,3.021,169,3.662,177,1.255,185,1.361,200,1.395,202,1.506,210,2.437,211,2.925,213,2.121,214,2.388,242,0.923,243,1.65,251,1.889,253,1.412,254,1.103,306,3.184,313,0.791,315,0.747,321,2.048,326,2.47,328,2.084,331,1.361,343,2.601,344,2.785,345,3.49,346,2.674,348,1.572,360,3.346,361,1.877,362,1.877,363,3.193,364,1.877,365,1.877,367,1.287,368,1.877,389,1.255,395,1.322,441,1.913,507,1.747,512,2.189,544,2.674,629,1.572,746,1.572,781,1.747,783,1.322,836,1.507,842,1.747,870,2.857,970,3.193,971,1.877,972,1.572,973,1.877,979,1.65,980,1.572,981,2.47,982,4.605,983,1.747,984,3.528,985,3.193,986,1.877,987,2.074,988,4.916,989,2.074,990,2.074,991,2.074,992,1.877,993,7.76,994,5.433,995,2.074,996,2.074,997,3.528,998,2.074,999,2.074,1000,2.074,1001,2.074,1002,2.074,1003,2.074,1004,3.528,1005,2.074,1006,2.074,1007,2.074,1008,2.074,1009,2.074,1010,4.605,1011,2.074,1012,2.074,1013,1.507,1014,1.747,1015,2.074,1016,4.605,1017,6.09,1018,2.074,1019,2.074,1020,2.074,1021,4.605,1022,2.074,1023,2.074,1024,2.074,1025,3.193,1026,2.074,1027,1.747,1028,5.433,1029,6.625,1030,1.747,1031,4.605,1032,5.433,1033,3.528,1034,2.074,1035,2.074,1036,2.074,1037,1.877,1038,1.747,1039,3.528,1040,3.528,1041,1.507,1042,2.074]],["t/164",[11,1.606,13,1.273,23,1.827,35,1.068,39,1.827,58,0.695,60,2.175,113,1.885,131,0.79,162,2.506,200,2.798,202,1.678,210,1.573,211,3.002,213,1.535,214,2.661,232,3.198,251,2.42,253,1.573,254,5.021,306,3.632,307,1.749,316,1.634,331,3.869,343,3.331,360,2.857,370,2.979,372,3.557,373,3.557,374,6.624,375,3.557,380,3.311,382,3.557,389,2.378,395,3.759,512,2.439,629,2.979,972,2.979,985,3.557,986,3.557,988,3.557,992,5.337,1043,3.931,1044,7.079,1045,3.557,1046,3.931,1047,3.557,1048,3.931,1049,3.931,1050,3.931]],["t/166",[11,1.828,13,1.776,39,2.551,58,0.647,60,3.035,131,0.735,162,3.497,169,4.364,186,3.167,200,2.961,210,2.196,211,2.97,213,2.142,252,3.036,255,2.856,275,4.424,306,2.252,344,3.319,388,4.621,389,4.532,390,5.678,393,4.621,544,4.159,759,3.713,972,4.159,983,4.621,1051,7.719,1052,6.779,1053,5.487]],["t/168",[0,0.468,5,1.861,7,1.058,11,1.674,13,1.609,15,1.707,22,1.442,25,1.643,31,1.509,35,0.9,39,1.463,56,2.386,58,0.955,59,1.534,60,1.741,90,2.849,113,1.509,117,2.243,130,1.009,131,1.176,137,1.276,157,1.146,162,3.168,163,2.065,179,1.085,182,2.288,198,2.288,200,1.965,203,1.486,210,1.26,211,2.89,213,1.229,250,2.849,252,2.014,255,1.2,256,2.122,257,2.938,275,1.859,281,2.504,283,0.989,284,1.904,305,1.778,306,2.871,307,1.401,308,2.131,309,1.707,313,1.2,317,1.309,330,2.122,336,1.559,344,3.007,388,2.651,389,3.007,390,3.767,393,2.651,405,1.953,407,2.504,411,1.215,451,1.586,544,2.386,647,2.007,674,2.504,758,2.204,763,2.122,766,2.651,806,2.849,807,2.849,808,2.504,972,2.386,980,4.668,983,2.651,1051,4.498,1052,4.498,1054,6.16,1055,2.849,1056,4.971,1057,3.148,1058,3.148,1059,3.148,1060,3.148,1061,3.148,1062,3.148]],["t/170",[36,3.855,59,3.532,130,2.879,131,0.97,135,2.423,136,4.376,137,3.639,170,2.01,205,5.268,283,2.277,300,3.225,301,3.652,426,3.855,483,5.765,765,3.784,873,5.765,1063,5.493,1064,6.559]],["t/172",[8,2.051,58,0.824,128,4.129,130,2.815,131,1.176,133,3.407,135,1.886,136,4.279,156,4.036,170,1.939,204,4.338,218,3.25,236,5.081,313,2.666,417,5.081,481,4.732,762,2.436,876,5.299,877,6.382,942,5.561,943,5.299,1065,5.888]],["t/174",[135,2.049,136,4.504,144,4.291,145,4.984,295,5.141,330,3.242,435,6.718,613,4.842,656,4.202,674,3.827,740,6.042,1066,7.597,1067,6.874,1068,4.486,1069,7.597]],["t/176",[59,4.376,135,1.955,136,4.755,211,2.423,295,4.905,435,7.093,457,4.094,618,3.784,885,3.93,887,5.074,933,7.564,934,5.765,935,6.104,939,6.559,1070,7.249]],["t/178",[0,0.484,22,1.489,25,1.698,28,2.073,32,2.942,35,0.589,36,1.729,45,2.092,52,2.465,58,0.84,97,1.729,113,1.559,117,1.468,122,2.445,130,2.928,131,1.099,133,2.484,135,1.921,136,4.181,137,1.318,140,2.277,141,1.698,142,2.465,143,2.586,144,2.88,145,2.133,146,2.662,147,2.363,150,1.468,168,1.729,179,1.121,183,3.57,186,1.877,211,2.464,242,1.447,264,2.484,265,2.066,283,2.578,300,1.447,302,1.37,313,1.944,317,1.352,354,1.763,404,2.133,405,2.018,411,2.748,416,2.738,426,2.712,435,4.571,437,2.018,457,1.837,458,2.363,459,2.88,462,3.169,484,1.559,485,2.133,521,1.763,570,1.667,656,2.821,673,1.584,770,2.018,786,2.738,831,5.002,936,2.942,944,2.586,948,1.763,1067,2.942,1071,5.099,1072,2.277,1073,2.942,1074,4.614,1075,3.252,1076,3.252,1077,5.099,1078,4.294,1079,2.942,1080,3.252,1081,2.738,1082,3.252,1083,3.252,1084,2.586,1085,3.252,1086,3.252,1087,3.252,1088,3.252,1089,3.252,1090,2.942,1091,3.252,1092,2.465,1093,2.942,1094,2.942,1095,2.942,1096,2.738]],["t/180",[0,1.078,5,2.195,35,1.312,58,0.855,91,3.475,118,4.184,131,1.202,135,2.423,137,2.937,148,3.59,170,2.01,265,2.937,274,2.189,283,2.821,300,3.225,301,3.652,313,2.763,500,6.104]],["t/182",[5,2.139,58,0.914,97,3.067,131,1.037,135,2.09,148,2.857,170,1.599,179,1.988,211,2.524,263,4.121,274,2.34,283,1.812,321,2.566,411,2.99,451,3.904,454,2.722,455,3.676,456,3.489,457,3.257,458,4.191,459,3.257,460,4.857,461,3.406,462,2.906,463,5.218,464,5.218,738,4.121,976,4.587,1097,7.011,1098,7.011,1099,3.578,1100,7.749,1101,5.767,1102,5.767]],["t/184",[8,2.017,58,0.67,131,1.105,134,1.319,135,1.854,148,1.855,170,1.038,179,1.291,186,3.968,211,2.435,220,1.955,237,2.622,261,2.622,264,5.137,265,4.056,274,1.131,283,1.176,313,1.428,315,1.348,343,2.115,411,2.961,444,3.73,447,2.323,454,1.768,459,3.882,484,4.166,489,3.154,492,3.389,493,4.261,513,2.817,542,2.323,550,3.154,656,2.072,738,3.024,763,2.427,851,2.622,1078,4.788,1079,3.389,1099,2.323,1103,2.534,1104,3.745,1105,2.978,1106,3.745,1107,3.745,1108,3.745,1109,3.389,1110,3.745,1111,3.745,1112,3.745,1113,3.154,1114,3.154,1115,3.745,1116,3.745,1117,3.745,1118,3.745]],["t/186",[5,1.091,8,2.454,58,0.899,89,2.289,97,2.374,118,2.577,131,1.24,134,1.572,135,2.057,148,2.211,170,1.238,176,4.94,179,1.539,211,2.396,263,2.374,264,3.157,265,2.625,283,1.402,313,1.702,315,1.607,319,5.161,321,1.986,411,2.499,449,4.724,454,2.107,550,3.759,560,4.86,688,3.244,738,3.445,948,5.682,1078,5.456,1099,2.77,1103,3.021,1119,5.161,1120,6.479,1121,4.464,1122,4.039]],["t/188",[2,2.857,5,2.545,7,0.836,8,2.473,14,1.431,17,2.016,20,3.311,21,1.8,35,1.068,58,0.835,63,5.599,65,2.322,89,2.016,131,1.317,133,1.915,134,1.385,135,2.273,160,2.052,170,1.09,176,2.874,179,1.355,211,2.273,283,1.853,313,1.499,315,1.415,411,2.731,451,2.972,454,1.856,455,2.506,456,2.378,457,2.22,458,2.857,459,2.22,460,3.311,461,2.322,462,1.981,473,2.016,484,2.828,592,2.484,738,3.765,762,1.37,1103,2.661,1123,4.129,1124,5.898,1125,3.931,1126,3.931,1127,3.931,1128,3.931,1129,3.931,1130,3.931,1131,2.661,1132,2.979]],["t/190",[89,3.649,130,2.281,131,1.296,135,1.92,152,4.128,167,4.02,168,3.785,242,3.166,265,2.884,273,4.912,313,3.691,354,3.859,485,4.67,544,5.395,656,3.937,678,4.983,748,4.537,1133,5.173]],["t/192",[117,3.022,131,0.896,135,1.806,152,3.972,179,2.308,211,2.305,271,3.63,273,4.727,354,5.375,461,3.954,520,4.688,560,4.268,627,4.688,1134,5.325,1135,5.639,1136,4.688,1137,5.639,1138,5.325,1139,5.639,1140,5.325,1141,5.639,1142,6.696,1143,6.696,1144,6.696,1145,6.696]],["t/194",[131,1.298,135,2.22,152,3.826,343,4.648,449,4.377,673,4.01,1146,5.399,1147,5.981]],["t/196",[117,2.899,131,1.114,135,1.733,152,2.986,179,2.214,211,1.733,264,4.054,273,4.602,343,3.628,449,5.191,560,4.094,627,4.497,1134,5.109,1135,5.409,1136,4.497,1137,5.409,1138,5.109,1139,5.409,1140,5.109,1141,5.409,1148,6.617,1149,6.424,1150,5.812,1151,8.32,1152,8.32,1153,8.32]],["t/198",[5,1.894,25,3.011,35,1.044,117,3.497,118,3.329,131,1.172,135,2.09,137,2.337,152,3.602,179,1.988,211,1.556,265,2.337,273,4.286,274,1.742,283,1.812,343,3.257,354,3.127,404,3.784,405,3.578,449,4.976,560,3.676,627,4.038,948,4.201,950,4.857,1122,7.011,1134,4.587,1135,4.857,1136,4.038,1137,4.857,1138,4.587,1139,4.857,1140,4.587,1141,4.857,1148,6.96,1150,5.218,1154,5.767]],["t/200",[131,1.102,155,3.946,283,2.585,298,3.61,315,2.963,411,3.175,514,5.106,674,4.146,1014,6.93]],["t/202",[11,1.32,58,0.817,102,3.433,109,5.037,155,3.323,283,2.177,298,3.04,314,3.914,315,2.495,322,4.326,351,4.69,358,3.618,441,4.735,493,3.04,513,3.433,610,3.618,656,3.834,728,4.69,729,5.512,730,5.037,1072,4.852,1099,4.3,1155,6.931,1156,6.931,1157,6.931]],["t/204",[42,3.677,155,3.183,220,4.436,223,3.134,240,5.591,270,4.356,273,5.467,298,2.912,302,2.796,313,2.531,315,2.391,336,3.289,395,4.232,493,2.912,748,5.975,1030,5.591,1158,6.64,1159,6.64,1160,4.493,1161,6.64,1162,6.64,1163,6.64,1164,6.008,1165,5.591,1166,6.64]],["t/206",[5,2.078,7,1.16,8,1.599,14,1.29,35,0.987,46,1.884,58,0.783,130,1.136,131,0.998,135,0.956,150,1.599,152,3.088,155,1.699,179,1.221,195,1.921,255,1.351,257,2.107,265,1.436,274,2.252,276,2.259,282,1.785,298,1.554,315,1.276,316,1.473,331,3.576,336,1.755,354,3.601,367,4.121,451,2.746,461,3.219,462,3.757,473,2.795,475,3.219,493,1.554,495,2.325,513,1.755,656,1.96,735,2.198,760,3.206,762,2.314,1072,2.481,1081,2.984,1090,6.01,1099,2.198,1167,5.283,1168,5.451,1169,2.093,1170,3.206,1171,2.481,1172,2.984,1173,2.984,1174,2.818,1175,3.544,1176,3.206,1177,2.398,1178,5.451,1179,3.015,1180,3.206,1181,2.984,1182,3.544,1183,3.544,1184,3.544,1185,4.932,1186,5.451,1187,4.932,1188,2.984,1189,2.984,1190,5.594,1191,2.818,1192,3.297,1193,3.752,1194,4.932,1195,5.451,1196,3.544,1197,2.686,1198,3.544,1199,3.206,1200,3.544,1201,3.206,1202,2.984,1203,2.818,1204,2.575,1205,3.544,1206,4.335]],["t/208",[8,1.84,152,2.915,155,3.007,264,4.712,298,2.751,309,3.4,315,2.258,428,4.752,451,4.127,459,3.542,484,3.927,493,4.401,542,5.082,656,3.469,763,2.676,949,4.114,1072,4.39,1099,3.89,1113,5.281,1114,5.281,1207,8.191,1208,6.897,1209,6.271,1210,6.897,1211,6.271,1212,5.674]],["t/210",[0,0.377,5,1.299,7,1.131,8,2.151,11,0.482,35,0.755,46,2.218,58,0.727,63,2.261,64,2.92,81,1.662,89,1.299,101,1.496,102,1.255,104,1.92,105,2.014,130,1.337,144,1.431,152,2.865,155,1.214,192,1.662,200,1.001,206,1.532,211,0.683,259,1.373,271,1.373,274,1.259,298,1.111,309,1.373,315,2.219,322,3.632,325,2.133,331,1.662,341,2.436,342,2.829,367,2.588,386,2.941,397,1.841,408,2.014,412,2.588,421,1.841,450,2.92,451,1.276,475,4.33,480,1.532,493,1.111,513,3.632,592,1.757,725,4.228,735,1.571,754,4.671,762,3.502,782,3.864,842,3.512,880,1.92,975,2.133,1072,4.315,1094,2.292,1098,2.292,1099,3.824,1146,2.736,1167,3.317,1174,3.317,1179,1.401,1206,2.014,1213,5.133,1214,1.401,1215,4.114,1216,4.171,1217,3.774,1218,2.92,1219,2.292,1220,4.171,1221,2.533,1222,3.031,1223,2.292,1224,4.171,1225,4.171,1226,2.823,1227,2.014,1228,2.292,1229,2.533,1230,3.512,1231,2.533,1232,2.533,1233,1.92,1234,2.533,1235,1.276,1236,2.292,1237,1.196,1238,2.533,1239,2.014,1240,1.431,1241,4.171,1242,2.533,1243,2.658,1244,2.292,1245,2.533,1246,2.533,1247,3.317]],["t/212",[0,0.744,5,1.222,7,1.064,8,2.061,11,1.768,42,2.164,51,4.25,55,2.026,155,2.398,233,2.766,242,3.125,257,3.136,274,1.51,298,2.194,302,2.106,309,2.711,315,1.801,444,4.609,475,4.149,493,2.194,763,2.134,1103,3.384,1181,4.211,1187,4.525,1204,3.634,1206,3.977,1233,6.155,1248,5.001,1249,4.525,1250,8.397,1251,5.757,1252,4.525,1253,5.001,1254,5.001,1255,5.001,1256,4.525,1257,6.676,1258,7.026,1259,3.79,1260,4.525,1261,5.106]],["t/214",[5,2.202,7,1.917,8,1.545,11,1.003,19,2.701,55,2.952,155,2.526,211,1.421,255,4.004,275,4.302,298,2.311,315,1.897,341,2.879,342,2.032,431,3.992,451,2.654,475,3.111,493,2.311,532,4.205,543,3.688,727,3.992,747,2.975,787,2.567,1179,4.029,1190,6.135,1192,4.406,1213,3.688,1243,3.357,1262,4.766,1263,6.135,1264,4.766,1265,4.189,1266,4.766,1267,5.268,1268,6.329,1269,5.294,1270,2.75]],["t/216",[5,1.856,7,1.616,8,2.229,11,1.447,155,3.642,298,3.332,315,2.735,451,3.827,475,4.486,493,3.332,495,6.537,787,3.701,1213,5.318,1271,6.874,1272,3.895]],["t/218",[0,0.683,8,1.94,11,0.875,14,2.822,58,0.542,131,0.615,152,3.075,155,2.203,159,2.443,167,5.949,168,4.122,211,1.784,298,2.015,315,1.654,336,3.276,354,3.586,358,2.398,411,1.772,426,2.443,439,2.135,444,3.014,458,3.339,462,3.905,465,2.779,475,3.906,484,4.065,493,2.015,527,6.529,533,4.157,534,3.482,570,2.355,668,7.139,762,2.304,787,2.238,812,2.398,1099,2.85,1204,4.807,1213,4.63,1273,3.869,1274,5.57,1275,3.482,1276,5.985,1277,3.654,1278,4.594,1279,4.594,1280,2.355]],["t/220",[8,2.454,152,3.888,155,3.105,273,4.626,298,2.841,309,3.511,315,2.332,354,4.535,462,4.214,475,3.824,484,4.978,493,2.841,527,4.707,534,4.908,752,7.022,1213,5.855,1281,6.476]],["t/222",[0,0.918,8,2.378,65,3.645,118,3.563,131,1.085,155,2.96,186,3.563,220,3.222,264,4.993,265,3.895,298,2.708,309,3.347,315,2.223,444,5.318,459,3.486,475,3.645,484,4.34,489,5.198,493,3.971,763,2.635,1072,4.321,1099,3.83,1113,5.198,1114,5.198,1282,8.107]],["t/224",[8,1.325,35,0.818,58,0.532,65,2.666,84,3.613,97,2.401,118,2.606,131,1.284,152,2.099,155,2.165,176,3.183,265,3.408,274,1.364,298,1.981,315,1.626,319,4.421,321,2.009,326,3.161,343,2.55,354,2.448,425,2.301,449,4.082,456,3.951,459,5.04,462,3.291,475,3.857,493,1.981,506,3.281,948,5.427,1030,3.802,1072,3.161,1099,2.801,1119,5.194,1176,5.91,1192,3.951,1270,3.41,1283,5.501,1284,3.802,1285,3.422,1286,2.55,1287,4.053,1288,5.501,1289,3.802,1290,4.951,1291,4.515,1292,3.802,1293,3.056,1294,3.591,1295,4.085]],["t/226",[0,1.004,5,2.565,7,1.828,8,2.521,63,5.567,131,0.904,155,3.238,251,2.771,298,2.962,315,2.431,451,3.402,475,3.988,493,2.962,593,7.235,787,4.186,1123,4.728,1213,4.728]],["t/228",[8,2.366,21,4.682,42,3.489,155,2.937,271,5.857,298,2.687,315,2.205,354,3.321,462,4.063,475,4.763,493,2.687,513,3.995,535,4.288,754,7.263,1213,5.646,1296,5.158,1297,6.125,1298,5.542,1299,6.125]],["t/230",[5,0.798,7,1.893,14,2.296,22,1.495,42,1.413,55,1.323,58,0.385,117,1.474,122,1.566,131,0.685,137,1.323,148,1.617,150,1.474,155,1.566,170,0.905,179,1.125,220,1.705,221,2.597,255,1.95,257,2.265,268,1.928,269,1.737,279,2.373,282,2.577,283,2.242,284,3.094,298,2.244,302,3.852,315,2.791,316,1.357,330,1.394,351,2.21,369,2.721,386,2.83,411,1.974,425,2.73,454,1.541,456,1.975,465,1.975,470,2.597,493,1.432,495,2.142,531,3.913,532,1.885,610,2.67,622,2.286,637,1.885,730,2.373,732,2.977,772,2.286,783,2.081,787,3.776,866,2.475,1099,2.026,1179,1.806,1197,2.475,1237,4.317,1265,2.597,1268,2.475,1270,2.67,1286,1.844,1289,2.75,1300,2.475,1301,3.265,1302,6.307,1303,2.475,1304,2.597,1305,3.265,1306,3.265,1307,3.265,1308,3.265,1309,3.265,1310,4.629,1311,3.265,1312,3.265,1313,3.265,1314,3.265,1315,2.142,1316,3.265,1317,3.265,1318,3.265,1319,2.597,1320,3.265,1321,3.265,1322,3.265,1323,3.265,1324,3.265,1325,2.475,1326,3.265,1327,3.265,1328,2.475,1329,3.265,1330,2.373,1331,3.265,1332,3.265]],["t/232",[0,1.094,2,3.88,7,1.136,8,2.157,35,0.967,38,2.787,39,2.482,42,2.31,59,2.601,76,2.56,81,3.502,130,2.904,131,1.315,133,2.601,135,2.444,137,2.163,152,2.482,170,1.48,236,3.88,245,2.482,274,1.612,283,2.309,293,3.502,297,4.496,300,2.375,301,2.69,313,2.035,481,3.613,485,3.502,504,3.502,592,2.248,614,2.69,655,2.953,674,2.69,762,1.86,770,3.312,872,3.502,876,4.046,877,5.343,942,4.246,943,4.046,1063,4.046,1333,4.246,1334,4.496,1335,5.339,1336,5.339]],["t/234",[19,2.078,22,1.856,36,4.247,58,0.478,59,3.891,84,2.241,130,3.176,131,1.241,133,2.94,135,2.776,136,4.743,148,2.007,155,3.456,156,4.161,170,1.673,198,2.945,282,2.042,283,1.273,290,2.945,324,2.658,411,1.563,426,3.833,435,2.945,516,3.667,575,3.071,613,3.846,711,2.514,737,6.25,869,4.594,870,2.514,872,5.239,874,3.223,940,3.223,941,3.667,1193,3.408,1337,6.034,1338,6.034,1339,5.459,1340,4.052,1341,4.052,1342,4.052,1343,4.052]],["t/236",[22,2.966,25,3.381,36,4.448,58,0.764,117,2.923,130,2.969,131,1.24,135,2.256,136,4.075,137,2.624,179,2.232,211,2.256,283,3.075,303,3.208,315,2.332,316,2.692,700,5.86,737,5.487,738,3.444,1315,4.249,1344,4.249,1345,6.476,1346,6.476]],["t/238",[0,0.691,5,2.5,7,0.989,8,2.501,22,2.129,35,0.842,42,2.011,58,0.92,63,4.23,80,3.049,91,3.74,118,3.85,131,1.258,135,2.434,148,2.302,155,2.229,156,2.683,157,1.692,159,2.472,170,1.289,176,3.801,253,1.86,263,3.547,264,3.801,265,3.454,267,3.523,271,2.52,274,1.404,283,2.951,317,1.932,446,2.812,520,3.254,532,2.683,560,2.963,609,2.571,787,2.265,793,2.963,948,4.23,1097,4.206,1347,4.206]],["t/240",[5,1.42,58,0.685,76,2.786,89,2.979,130,1.862,131,1.176,135,1.567,152,2.701,167,3.281,168,3.09,211,2.639,257,2.471,265,2.354,313,2.969,354,3.15,359,5.27,439,2.701,447,3.604,449,4.141,673,2.831,763,2.48,787,2.831,812,3.033,819,3.932,901,4.62,949,3.811,1133,4.222,1148,4.62,1348,5.257,1349,4.892,1350,5.257,1351,7.787,1352,5.81,1353,7.787,1354,5.81,1355,5.81,1356,5.81]],["t/242",[0,0.822,22,2.53,23,2.568,25,2.884,28,3.522,35,1,45,2.267,58,0.652,117,2.494,122,2.649,130,1.771,131,1.36,135,2.03,137,2.239,140,3.868,141,2.884,142,4.188,143,4.394,144,3.121,145,3.625,146,2.884,147,4.016,150,2.494,167,3.121,168,2.939,179,1.904,211,1.49,242,2.458,274,1.669,283,2.689,404,3.625,405,3.428,447,3.428,678,3.868,787,2.692,812,2.884,819,3.739,901,4.394,1133,4.016,1349,4.653,1357,7.528,1358,6.339,1359,5.526,1360,5.526,1361,5]],["t/244",[58,0.96,122,3.905,131,1.09,135,2.197,137,3.3,150,3.676,170,2.258,283,2.558,300,3.623,301,4.103]],["t/246",[0,1.022,5,2.446,35,1.244,63,3.725,91,3.294,118,3.966,131,0.92,135,1.853,148,3.403,170,1.905,176,3.347,263,3.654,264,3.347,265,3.519,283,3.144,317,2.856,446,4.156,560,4.379,609,3.8,948,3.725,1347,6.216]],["t/248",[14,1.607,21,2.943,22,2.022,58,0.893,80,2.896,131,1.236,135,1.191,152,2.987,159,2.348,170,1.782,179,2.215,264,3.131,265,1.789,271,2.393,274,1.94,283,2.614,286,2.117,302,1.859,303,2.187,313,1.683,411,1.703,428,5.742,449,2.348,451,3.237,454,2.084,459,2.493,481,4.349,493,4.366,535,3.09,542,6.357,562,2.814,573,3.994,656,2.442,738,3.417,898,3.208,949,4.216,1148,3.511,1189,3.717,1210,7.447,1212,5.814,1300,3.346,1339,3.994,1362,4.414,1363,4.414,1364,4.414,1365,4.414,1366,4.414]],["t/250",[5,1.806,7,1.007,8,1.735,11,1.895,14,1.078,35,0.536,42,1.28,49,2.072,55,1.199,58,0.697,131,0.989,134,1.042,135,1.595,150,1.336,179,1.631,211,2.125,220,1.545,233,1.637,252,1.199,257,3.185,258,2.795,274,1.429,283,1.858,302,1.993,315,2.129,367,1.836,411,3.04,417,2.151,444,4.433,451,1.491,454,2.234,532,2.732,592,1.246,735,3.669,738,3.593,747,2.673,763,2.02,764,2.072,851,3.313,866,2.243,1103,3.203,1181,2.492,1204,2.151,1233,4.482,1249,2.678,1250,8.224,1251,5.332,1252,2.678,1256,2.678,1257,3.587,1274,2.492,1328,3.587,1367,2.354,1368,2.96,1369,2.96,1370,2.96,1371,2.96,1372,2.96,1373,2.96,1374,2.96,1375,2.96,1376,2.96,1377,2.96,1378,2.96,1379,2.96,1380,2.96,1381,2.151,1382,4.282,1383,2.96,1384,2.96,1385,2.678,1386,2.678,1387,2.151,1388,2.96,1389,2.96,1390,2.96,1391,2.96,1392,2.492,1393,2.492,1394,2.492,1395,2.492]],["t/252",[24,1.993,46,4.426,58,0.981,81,2.504,113,1.83,131,0.772,135,1.03,150,1.723,211,2.524,213,1.491,217,2.583,220,1.993,237,4.869,286,3.334,367,3.579,411,2.226,441,3.128,451,1.923,493,1.674,513,4.913,553,3.579,610,1.993,647,3.677,688,2.774,706,3.454,732,1.802,738,3.068,801,3.215,831,3.036,873,3.036,878,4.858,882,3.454,883,5.856,1109,7.919,1134,3.036,1170,3.454,1172,3.215,1173,3.215,1174,6.164,1330,2.774,1396,3.817,1397,3.215,1398,3.817,1399,5.22,1400,8.322,1401,5.769,1402,3.817,1403,6.955,1404,3.817,1405,5.769,1406,3.036,1407,3.817,1408,5.769,1409,6.955,1410,3.817,1411,3.817,1412,3.817,1413,3.817,1414,3.036,1415,3.454,1416,3.817]],["t/254",[5,0.795,8,2.269,21,4.496,22,1.489,42,2.721,58,0.84,131,1.099,134,1.145,135,1.921,157,1.184,159,2.712,179,1.121,211,2.57,259,2.765,271,5.832,283,1.021,286,1.559,315,2.265,316,1.352,354,2.765,358,1.698,411,2.427,454,2.407,457,1.837,462,3.897,471,2.586,481,2.201,513,4.065,520,2.277,532,1.877,535,4.986,552,1.92,664,2.942,738,3.345,754,6.22,851,2.277,896,2.942,979,2.586,1103,3.451,1296,2.738,1298,5.691,1344,2.133,1417,7.122,1418,3.252,1419,5.099,1420,3.252,1421,3.252,1422,3.252,1423,3.252,1424,3.252,1425,3.252,1426,3.252,1427,3.252,1428,5.099,1429,3.252,1430,3.252]],["t/256",[0,0.486,8,2.412,11,0.975,35,0.591,46,3.354,58,0.385,76,1.566,131,0.956,134,1.15,135,1.701,152,2.932,167,6.058,168,4.977,170,0.905,179,1.125,211,2.651,283,1.026,315,2.96,354,3.87,411,3.529,454,2.415,462,3.596,484,3.942,534,2.475,570,2.623,738,3.354,762,2.487,851,4.415,1103,4.268,1204,5.188,1273,2.75,1274,6.923,1275,2.475,1276,5.707,1284,2.75,1431,6.307,1432,3.265,1433,3.265,1434,3.265,1435,3.265,1436,3.265,1437,3.265,1438,3.265,1439,2.081,1440,3.265,1441,3.265,1442,3.265]],["t/258",[5,2.141,7,1.051,8,2.043,11,1.327,14,1.798,58,0.821,131,0.932,135,2.176,179,1.702,211,2.363,253,1.976,255,3.898,283,1.551,313,1.883,315,1.778,341,2.752,411,3.112,451,2.488,454,2.331,532,2.851,592,2.933,738,4.29,747,3.933,787,3.393,851,3.457,1262,4.468,1263,7.377,1328,5.278,1386,4.468,1387,3.589,1392,4.159,1393,4.159,1394,4.159,1395,4.159,1443,4.939,1444,4.939,1445,4.939,1446,4.939,1447,4.939,1448,4.939,1449,3.589]],["t/260",[5,2.147,7,1.236,8,2.285,11,1.483,14,2.115,58,0.918,131,1.043,135,2.369,179,2.002,253,3.515,254,4.671,283,1.825,411,3.004,451,2.927,454,2.742,495,5.762,532,3.354,592,3.28,738,4.671,787,3.794,1271,5.257,1272,3.992,1392,4.892,1393,4.892,1394,4.892,1395,4.892,1450,5.81,1451,5.81,1452,5.81]],["t/262",[58,0.914,135,1.556,170,2.149,211,2.09,259,3.127,293,3.784,298,2.53,313,2.199,336,2.857,369,3.067,411,3.61,451,5.064,459,3.257,480,3.489,484,2.765,493,2.53,542,4.808,610,3.011,730,4.191,738,3.067,1081,4.857,1185,9.095,1189,4.857,1210,4.857,1272,3.973,1453,5.767,1454,7.749,1455,5.767,1456,4.587,1457,5.767,1458,5.767]],["t/264",[0,0.956,7,1.367,8,1.885,11,1.224,35,1.163,36,4.425,38,3.353,58,0.757,76,3.08,130,2.059,131,1.307,134,2.262,135,2.244,136,3.13,202,2.742,251,2.636,252,2.603,257,2.038,283,2.018,483,5.109,710,5.409,752,4.214,762,2.238,1063,4.868,1064,5.812,1215,2.67,1285,4.868,1459,6.424,1460,6.424,1461,5.409,1462,5.409]],["t/266",[0,1.175,22,3.618,23,3.673,24,4.124,25,4.124,38,4.124,76,3.788,130,2.532,131,1.267,138,7.149,139,5.988,1063,5.988]],["t/268",[8,1.885,36,3.416,87,4.868,102,3.182,130,2.666,131,1.114,133,3.13,135,1.733,136,4.054,236,4.668,313,2.449,481,4.347,527,4.668,608,4.868,725,5.109,762,2.238,876,4.868,877,6.047,887,4.497,928,5.409,942,5.109,943,4.868,1133,4.668,1146,5.458,1215,2.67,1218,4.497,1230,5.409,1463,6.994,1464,6.424]],["t/270",[36,5.19,135,2.243,618,4.341,887,5.822,933,7.003,934,6.614,935,7.003]],["t/272",[31,2.983,36,3.309,58,0.734,116,3.373,133,3.031,136,3.031,170,1.725,180,4.355,190,5.239,218,2.892,223,2.937,245,2.892,283,1.954,295,4.21,298,3.574,441,4.927,885,3.373,887,4.355,1223,5.629,1414,4.948,1465,10.009,1466,6.221,1467,9.642,1468,5.629,1469,6.221,1470,5.239,1471,6.221,1472,6.221,1473,6.221,1474,6.221]],["t/274",[0,0.864,5,1.42,11,1.673,14,2.115,16,2.979,19,2.979,22,2.661,35,1.41,39,2.701,46,3.09,64,4.067,66,5.257,130,1.862,131,0.778,135,1.567,136,2.831,251,3.195,293,3.811,301,2.927,425,2.743,441,3.15,513,2.878,546,3.932,553,3.604,570,2.979,736,4.403,762,2.713,1177,3.932,1215,3.237,1218,6.149,1228,5.257,1237,3.676,1475,4.067,1476,5.257,1477,5.452,1478,5.81,1479,5.81,1480,5.257]],["t/276",[11,1.265,36,4.52,109,4.825,130,2.128,131,1.138,134,2.338,135,2.528,136,4.141,185,4.356,223,3.134,257,2.106,273,4.701,303,3.289,553,4.119,752,4.356,944,5.28,1068,3.921,1215,2.76,1218,4.648,1257,5.032,1344,4.356,1461,5.591,1481,6.64,1482,6.008,1483,4.825,1484,6.64]],["t/278",[21,3.26,22,3.26,54,4.416,55,2.884,99,4.67,131,0.953,145,4.67,185,4.67,218,3.309,302,2.998,303,3.526,454,3.36,462,3.586,534,5.395,570,3.649,752,4.67,1063,5.395,1096,5.994,1230,5.994,1461,7.479,1485,7.118,1486,5.994,1487,4.67]],["t/280",[0,0.588,8,1.159,11,1.128,22,1.809,25,2.062,28,2.518,35,1.072,36,2.101,45,1.621,47,1.837,58,0.698,76,1.894,117,1.783,122,1.894,130,1.266,131,1.187,135,2.278,136,1.925,137,1.601,140,2.766,141,2.062,142,2.994,143,3.142,144,4.01,145,2.592,146,2.062,147,2.871,150,1.783,167,2.231,168,2.101,170,1.096,179,1.362,202,1.686,211,2.55,231,2.185,232,3.21,242,1.758,251,1.621,252,1.601,256,1.686,257,1.254,269,2.101,283,2.23,313,1.506,328,4.193,341,1.562,343,2.231,378,3.575,386,2.185,404,2.592,405,2.451,406,2.518,447,4.893,462,1.991,521,3.21,763,1.686,819,2.674,901,6.271,1215,1.642,1273,3.327,1348,3.575,1349,4.986,1350,5.357,1462,3.327,1488,3.951,1489,5.921,1490,3.951,1491,3.142,1492,3.951,1493,3.142,1494,2.451,1495,3.951,1496,3.951,1497,3.142,1498,3.951,1499,3.951,1500,3.951]],["t/282",[7,1.413,11,1.786,17,3.404,25,3.466,43,3.289,82,4.232,117,2.996,223,3.134,255,3.24,256,2.834,257,2.106,258,3.921,302,2.796,317,2.76,330,3.627,341,2.624,342,3.279,367,4.119,543,4.648,748,4.232,759,4.493,762,2.313,770,4.119,1202,5.591,1501,5.032,1502,5.591,1503,6.008]],["t/284",[7,1.39,11,1.462,13,2.485,14,1.644,16,2.315,18,5.361,22,2.068,46,2.401,58,0.905,133,3.739,134,1.59,146,2.357,154,2.606,179,1.556,202,1.927,215,5.195,218,2.099,220,4.39,231,2.498,242,2.009,251,1.853,252,1.829,255,1.721,297,3.802,321,2.009,330,1.927,340,4.285,341,3.527,342,3.589,343,4.335,359,3.056,380,3.802,410,3.281,454,2.131,493,3.689,514,2.801,587,3.281,598,3.802,616,3.422,621,2.801,678,3.161,783,2.878,864,2.357,902,5.501,1073,4.085,1333,3.591,1504,4.515,1505,4.515,1506,3.591,1507,4.085,1508,4.085,1509,4.515,1510,4.085,1511,4.515,1512,4.515,1513,4.515]],["t/286",[9,3.406,340,5.235,341,3.154,342,3.079,412,4.951,454,3.767,514,4.951,582,7.221,898,5.8,1514,7.221,1515,6.048,1516,7.221]],["t/288",[0,0.749,5,1.23,7,1.879,9,2.148,14,1.832,17,2.58,20,4.238,43,2.493,58,0.832,116,2.729,170,1.396,179,1.735,202,2.148,213,1.965,237,3.523,253,2.014,254,2.677,255,3.107,257,2.239,275,2.972,313,1.919,341,3.676,342,3.589,459,2.842,480,3.044,486,2.842,513,3.496,614,2.536,656,3.904,673,3.438,735,4.378,762,1.753,763,2.148,921,3.122,1047,4.554,1095,4.554,1169,2.972,1214,2.784,1288,4.238,1449,3.658,1494,5.056,1517,3.658,1518,3.208,1519,4.238,1520,3.523,1521,2.972,1522,4.554,1523,3.208,1524,4.002]],["t/290",[7,1.044,9,2.095,11,1.755,13,2.245,14,1.787,17,2.516,35,0.889,46,2.61,55,1.989,58,0.948,97,2.61,116,2.661,133,2.391,148,2.431,179,1.692,200,2.74,202,2.959,211,2.823,215,3.903,220,2.562,232,2.661,269,2.61,315,1.767,321,2.183,330,2.095,341,2.74,342,2.675,343,2.772,359,4.692,360,3.567,411,1.893,564,3.903,645,3.22,902,4.133,963,4.133,1131,3.321,1293,3.321,1385,4.441,1494,3.045,1510,6.273,1521,2.898,1525,4.441,1526,3.903,1527,4.908,1528,3.567,1529,4.441,1530,6.933,1531,6.933,1532,4.908]],["t/292",[7,0.924,9,1.853,11,1.43,13,2.055,39,2.018,43,3.145,55,1.759,58,0.974,60,2.402,69,2.309,108,5.049,148,2.151,154,2.506,179,1.496,195,2.354,202,3.524,211,2.024,213,1.695,237,4.444,252,1.759,255,1.655,257,1.377,268,2.564,298,1.904,299,2.938,304,3.29,313,1.655,317,1.805,341,3.263,342,3.54,369,2.309,486,4.663,513,2.151,542,2.694,564,6.566,594,3.656,614,2.187,645,4.165,656,2.402,735,2.694,872,2.848,1167,5.049,1169,2.564,1177,4.296,1179,2.402,1288,3.656,1494,2.694,1506,3.453,1520,5.254,1533,4.342,1534,4.342,1535,4.342,1536,4.342,1537,4.342,1538,6.349,1539,7.505,1540,4.342,1541,4.342,1542,4.342]],["t/294",[0,0.744,3,2.887,4,3.281,5,1.222,7,1.064,8,1.467,16,3.602,25,2.611,35,1.272,42,2.164,45,2.052,58,0.828,74,3.501,91,2.398,109,3.634,117,2.257,120,5.916,131,1.087,154,2.887,159,2.66,170,1.948,176,2.437,185,4.609,198,3.634,202,2.134,257,1.587,265,2.026,274,1.51,299,3.384,302,2.106,317,2.079,330,2.134,446,3.025,449,2.66,560,3.187,647,4.478,772,4.919,799,3.977,843,3.634,948,4.403,1119,3.384,1147,3.634,1283,4.211,1520,3.501,1543,4.919,1544,4.525,1545,5.001,1546,3.977,1547,5.001,1548,3.977,1549,3.501,1550,3.977,1551,4.525,1552,3.384,1553,5.001,1554,5.001,1555,3.79,1556,5.001]],["t/296",[7,1.638,58,0.908,131,0.608,256,1.938,264,3.196,265,1.84,274,2.701,300,3.979,344,3.968,369,2.415,377,7.597,389,3.968,449,5.232,461,4.547,469,5.524,473,2.328,484,2.177,688,4.767,694,5.216,770,2.817,948,3.556,1146,2.979,1147,3.3,1227,6.123,1283,7.101,1557,4.109,1558,4.109,1559,4.109,1560,6.559,1561,6.484,1562,6.967,1563,6.559,1564,6.559,1565,6.559,1566,6.559,1567,6.559]],["t/298",[5,2.345,7,1.594,8,2.198,16,2.813,19,3.841,35,1.356,45,2.252,58,0.647,63,4.062,82,3.497,109,3.988,120,4.621,131,1.285,185,3.6,253,2.196,269,2.918,274,2.262,313,2.092,370,4.159,425,1.933,472,3.713,522,4.159,647,4.775,655,4.144,673,2.673,772,3.841,787,3.65,948,4.062,1123,3.841,1494,3.404,1548,4.364,1550,4.364,1555,4.159,1568,5.487,1569,3.6,1570,5.487,1571,5.487,1572,3.6,1573,4.965]],["t/300",[0,0.84,5,1.379,7,1.625,35,1.022,58,0.665,63,3.06,97,3.001,131,0.756,176,2.75,256,2.409,264,3.721,265,2.287,271,4.14,274,2.306,344,3.414,377,7.872,389,3.414,449,4.061,451,3.847,469,6.431,473,2.894,484,2.706,688,4.102,694,7.375,763,2.409,1227,6.073,1557,5.107,1558,6.91,1559,6.91,1561,4.753,1562,5.107,1574,3.819,1575,4.753]],["t/302",[0,0.918,2,3.038,5,2.572,8,1.227,11,1.176,14,1.522,24,3.223,35,1.118,42,1.809,63,2.267,65,2.469,76,2.005,80,2.743,91,2.961,106,2.529,131,0.983,148,2.071,154,2.413,176,2.037,191,2.267,200,1.652,218,1.943,223,1.973,251,1.716,252,1.694,253,1.673,254,2.223,255,1.594,256,1.784,257,1.326,263,2.223,264,2.037,265,3.285,274,1.865,276,2.665,283,1.313,288,4.911,330,2.635,392,3.325,429,3.783,432,2.743,439,2.87,447,2.594,472,2.829,614,2.106,674,2.106,762,2.151,766,3.521,898,3.038,943,3.169,948,2.267,1201,6.643,1315,2.743,1387,3.038,1526,3.325,1546,4.911,1576,3.038,1577,2.829,1578,3.325,1579,3.038,1580,6.175,1581,4.181,1582,3.783,1583,4.181,1584,3.783,1585,6.183,1586,4.181]],["t/304",[0,1.257,7,1.798,8,1.932,13,2.737,107,4.319,170,2.344,226,3.57,268,3.888,392,5.236,514,4.085,587,4.785,600,5.958,610,3.437,641,4.99,673,3.208,824,4.785,885,3.57,1494,5.245,1552,4.456,1587,4.99,1588,5.545,1589,5.958,1590,6.584,1591,6.584,1592,5.958,1593,4.456,1594,4.319,1595,4.785]],["t/306",[0,0.956,3,3.708,5,2.255,6,2.986,7,1.963,8,1.885,9,2.742,10,4.497,11,1.585,21,2.942,28,4.094,35,1.163,82,4.094,102,3.182,131,0.86,154,3.708,213,2.508,251,2.636,252,2.603,259,3.483,473,3.293,590,4.497,761,4.668,762,2.238,1214,3.553,1577,4.347,1596,5.409,1597,5.109,1598,4.668,1599,4.497,1600,5.812]],["t/308",[5,1.52,7,1.734,11,1.185,29,5.239,35,1.475,55,2.521,58,0.734,101,4.812,154,3.591,170,1.725,300,2.768,317,2.586,369,3.309,410,5.922,425,2.87,485,4.081,522,4.715,762,3.166,1215,3.777,1237,3.846,1487,4.081,1597,4.948,1601,4.21,1602,6.48,1603,3.86,1604,4.948,1605,5.239,1606,4.521,1607,4.355]],["t/310",[5,1.981,7,1.725,9,2.635,11,1.544,14,2.248,35,1.118,37,3.165,58,0.728,131,0.826,146,3.222,253,2.47,255,3.091,256,2.635,313,2.353,330,2.635,341,3.204,342,3.128,386,3.414,418,3.563,425,2.174,468,4.909,570,3.165,589,4.678,602,5.585,762,2.824,770,3.83,805,5.198,1235,4.084,1333,4.909,1569,4.049,1608,5.585,1609,4.049,1610,5.585]],["t/312",[5,1.485,7,1.911,8,1.783,11,1.711,18,3.874,35,1.453,47,2.825,58,0.717,131,0.814,133,2.961,200,2.402,242,2.704,255,2.317,256,3.834,257,3.031,274,1.835,313,2.317,437,3.771,605,4.417,674,3.062,762,2.796,763,2.594,793,3.874,811,4.834,812,3.173,885,3.295,1609,3.987,1611,5.118,1612,4.834,1613,5.499,1614,4.606,1615,4.834]],["t/314",[5,2.229,7,1.743,11,1.56,14,2.283,35,1.483,52,4.752,131,0.84,251,2.573,252,3.319,253,3.277,254,4.356,274,1.894,282,3.159,313,2.391,337,6.514,425,2.209,592,2.641,594,5.281,623,4.114,762,2.185,837,4.557,881,5.281,1235,3.159,1609,4.114,1616,7.411,1617,5.674,1618,6.271,1619,6.271,1620,4.114]],["t/316",[0,1.17,7,1.254,11,1.873,13,1.909,35,1.424,47,2.741,53,4.128,55,2.389,134,2.077,153,3.658,214,3.99,220,3.078,223,2.783,232,4.264,245,2.741,255,2.248,257,1.871,286,2.827,300,2.623,330,2.517,336,3.896,341,2.33,349,3.99,374,4.965,376,3.868,406,3.758,426,3.136,472,3.99,614,2.971,1621,9.153,1622,5.897,1623,5.897,1624,5.897,1625,5.335]],["t/318",[0,0.864,3,3.354,5,1.42,13,1.881,38,3.033,43,2.878,45,3.195,58,0.685,84,3.214,107,3.811,130,1.862,131,1.31,139,4.403,152,2.701,176,2.831,186,3.354,263,3.09,421,4.222,425,2.046,459,3.281,512,3.604,530,4.403,613,3.703,641,4.403,655,3.214,870,3.604,981,4.067,1179,3.214,1358,4.892,1548,4.62,1550,4.62,1552,3.932,1572,5.109,1594,3.811,1626,5.81,1627,5.81,1628,4.892,1629,4.892,1630,4.892,1631,5.81,1632,4.892,1633,5.81,1634,4.403]],["t/320",[58,0.932,80,5.183,131,1.267,274,2.386,300,3.515,377,5.988,694,6.283,699,7.149,870,4.902,1561,6.653,1635,7.901,1636,7.901]],["t/322",[0,1.336,2,5.268,35,1.312,74,5.074,76,3.475,132,4.755,200,2.865,532,4.184,542,5.573,1367,5.765,1525,6.559,1637,7.249,1638,5.765,1639,7.249,1640,6.559,1641,6.559,1642,7.249,1643,4.905,1644,5.074,1645,6.559]],["t/324",[0,1.231,5,2.023,7,1.356,14,2.32,35,1.154,43,3.156,58,0.751,63,3.455,82,4.061,91,3.968,122,3.055,131,0.853,153,3.953,159,3.389,160,3.326,202,2.72,245,2.962,265,3.353,269,3.389,317,2.649,330,2.72,340,4.18,439,2.962,447,3.953,484,3.055,608,4.829,948,3.455,1587,4.829,1615,5.067,1646,5.765,1647,6.372,1648,5.366,1649,5.765]],["t/326",[0,1.231,5,1.557,9,2.72,11,1.751,35,1.664,80,4.18,89,3.267,91,3.055,101,3.763,102,3.156,140,4.461,269,3.389,493,2.795,727,4.829,761,4.631,762,2.883,880,4.829,1214,3.525,1215,2.649,1521,3.763,1543,4.461,1577,4.312,1602,5.067,1650,5.765,1651,4.829,1652,6.97,1653,6.372,1654,5.067,1655,4.829,1656,5.067]],["t/328",[0,0.933,7,1.334,8,1.84,11,1.738,52,4.752,82,3.997,131,0.84,148,3.106,154,3.62,160,3.273,170,1.739,253,2.509,254,3.335,255,2.391,256,3.496,257,1.989,258,3.703,274,1.894,302,2.641,425,2.885,589,4.752,655,3.469,656,3.469,864,3.273,881,5.281,1235,4.596,1572,4.114,1612,4.987,1643,4.244,1657,4.987,1658,4.987,1659,6.271,1660,6.271]],["t/330",[0,0.573,7,0.82,11,1.864,35,1.052,55,1.562,76,1.848,113,1.848,131,1.4,150,1.74,196,3.515,213,1.505,226,2.09,252,1.562,254,2.05,255,2.667,256,1.645,257,2.219,269,2.05,315,1.388,319,2.609,341,2.297,342,3.389,386,3.215,387,2.801,406,2.457,514,2.391,532,3.355,541,5.563,623,2.529,637,2.225,673,1.878,746,2.921,761,5.084,762,1.343,763,1.645,787,2.832,793,2.457,812,2.012,837,5.084,883,3.246,944,5.563,1123,2.699,1272,1.976,1292,3.246,1344,5.982,1523,2.457,1577,2.609,1611,3.246,1614,2.921,1661,3.246,1662,3.855,1663,7.789,1664,8.358,1665,6.996,1666,3.488,1667,2.921]],["t/332",[0,1.264,58,1.002,418,4.904,1640,7.687,1668,7.154,1669,7.154]],["t/334",[0,1.141,5,2.272,35,1.684,131,1.027,176,3.737,265,3.108,274,2.316,316,3.188,446,4.64,447,4.759,560,4.889,1315,5.032,1577,5.191,1670,5.813]],["t/336",[7,1.632,8,2.25,11,1.771,17,3.933,223,3.621,256,3.274,330,3.274,341,3.032,342,2.959,367,4.759,543,5.37,614,3.865,667,6.459,748,4.889,770,4.759]],["t/338",[0,1.175,13,2.558,16,4.051,34,4.902,99,5.183,111,6.653,131,1.058,206,4.779,245,3.673,458,5.742,869,5.036,1671,7.901,1672,6.283]],["t/340",[3,4.262,4,4.844,5,1.804,35,1.337,58,0.871,91,3.54,106,4.466,109,5.366,170,2.047,257,2.343,265,2.992,449,3.927,948,4.003,1119,4.997,1147,5.366,1520,5.169,1543,6.36,1544,6.681,1673,7.384]],["t/342",[5,1.804,8,2.166,14,2.688,16,3.786,51,4.466,91,3.54,131,0.989,256,3.152,264,3.598,265,3.681,274,2.23,300,3.285,359,4.997,449,3.927,450,5.169,493,3.239,542,4.581,1084,5.872,1674,6.681]],["t/344",[6,3.279,7,1.501,8,2.07,35,1.277,58,0.832,82,4.496,131,1.291,245,3.279,265,2.858,269,3.752,274,2.13,283,2.216,300,3.138,322,3.494,330,3.011,449,4.697,673,3.437,1146,4.628,1147,5.127,1169,4.166,1197,5.346,1675,6.383]],["t/346",[5,1.804,7,1.571,8,2.166,11,1.407,35,1.337,37,3.786,58,0.871,131,0.989,253,2.955,255,2.815,330,3.152,341,2.918,342,2.849,386,4.084,438,5.872,468,5.872,570,3.786,762,2.573,770,4.581,1333,5.872]],["t/348",[7,1.698,16,4.091,34,4.951,35,1.445,58,0.941,107,5.235,128,4.713,154,4.606,673,3.888,1214,4.414,1676,7.981,1677,7.981]],["t/350",[5,2.272,7,1.978,13,2.483,14,2.793,16,3.933,35,1.684,43,3.8,59,3.737,153,4.759,473,3.933,1587,5.813,1678,7.671,1679,6.1]],["t/352",[35,1.445,131,1.275,253,3.193,425,2.811,570,4.091,592,3.361,655,4.414,762,2.78,1193,4.507,1569,5.235,1680,6.72]],["t/354",[5,1.893,7,1.648,8,2.272,11,1.476,35,1.402,131,1.037,251,3.178,252,3.79,253,3.743,254,4.119,762,2.699,1483,5.629,1616,7.008]],["t/356",[0,1.119,35,1.362,55,3.049,159,4.002,179,2.593,245,3.498,276,4.796,592,3.169,620,6.808,1569,4.936,1612,7.309,1648,6.336,1649,6.808,1657,5.984,1681,6.808,1682,7.74]],["t/358",[0,1.383,5,2.272,6,3.566,7,1.632,8,2.25,12,6.1,21,3.513,35,1.389,46,4.079,92,4.759,131,1.027,592,3.231,1569,5.032,1680,6.459]],["t/360",[0,1.13,46,4.04,131,1.238,152,4.297,265,3.078,286,3.642,354,4.119,367,4.713,513,4.579,758,5.318,1172,6.397,1173,6.397,1174,6.042,1399,6.874]],["t/362",[6,3.601,21,4.284,24,4.043,28,4.937,63,4.2,89,3.971,106,4.685,172,4.685,316,3.22,653,6.16,673,3.774,1325,5.87,1595,5.629,1641,7.008]],["t/364",[0,1.422,11,1.822,13,2.828,47,3.222,226,3.758,232,5.185,259,5.185,316,2.881,336,3.433,359,4.69,369,3.686,426,3.686,438,5.512,532,4,592,2.919,1577,4.69,1683,6.271,1684,6.931]],["t/366",[0,1.224,5,2.011,6,3.826,35,1.49,76,3.946,131,1.102,172,4.978,437,5.106,799,6.545]],["t/368",[0,1.224,5,2.37,35,1.49,131,1.102,265,3.334,447,5.106,673,4.01,1685,5.981]],["t/370",[5,2.405,8,2.166,14,2.688,19,3.786,35,1.337,63,4.003,91,3.54,131,1.216,176,3.598,252,2.992,253,2.955,265,2.992,274,2.23,787,3.598,854,5.169,948,4.003,1630,6.218]],["t/372",[0,1.187,35,1.445,131,1.068,286,3.826,513,3.953,656,4.414,758,5.587,949,5.235,1169,4.713,1506,6.347,1520,5.587,1686,7.221]],["t/374",[0,1.109,7,1.586,8,2.187,11,1.42,35,1.35,131,0.998,153,4.624,200,2.946,251,3.059,255,2.842,256,3.181,257,2.365,269,3.964,302,3.139,317,3.098,439,3.465,536,5.417,762,2.597,864,3.891]],["t/376",[6,3.465,11,1.882,14,2.714,154,4.302,251,3.059,252,3.02,282,3.755,342,3.525,386,4.123,590,5.218,761,5.417,1272,3.821,1517,5.417,1687,7.454,1688,6.744,1689,7.454]],["t/378",[5,2.233,11,1.42,81,4.89,252,3.02,274,2.251,342,3.974,367,4.624,456,4.508,532,4.302,761,5.417,837,5.417,1169,4.402,1214,4.123,1517,6.641]],["t/380",[8,2.25,200,3.032,425,3.275,614,3.865,1215,3.188,1237,4.389,1240,4.332,1494,4.759,1521,4.53,1601,5.191,1690,6.94,1691,6.459,1692,6.1,1693,7.671]],["t/382",[0,1.078,3,4.184,4,4.755,5,1.771,7,1.911,8,2.127,9,3.094,11,1.381,21,3.319,35,1.312,131,0.97,154,4.184,251,2.974,252,2.937,590,5.074,762,2.525,1214,4.009,1521,4.28,1597,5.765,1599,5.074,1600,6.559]],["t/384",[160,4.043,172,4.685,245,3.601,425,2.728,530,5.87,655,5.174,674,3.902,1235,3.902,1381,5.629,1569,5.081,1694,5.423,1695,7.746,1696,7.746,1697,6.523]],["t/386",[7,1.501,11,1.344,35,1.277,55,2.858,58,0.832,82,4.496,101,4.166,369,3.752,410,5.127,425,3.11,522,5.346,762,3.077,1215,3.671,1237,4.168,1487,4.628,1601,4.774,1602,5.61,1603,4.377,1605,5.941,1606,5.127,1698,7.054]],["t/388",[3,4.515,6,3.636,13,2.533,15,4.241,17,4.01,21,3.582,46,4.16,149,5.476,153,4.853,504,5.132,640,5.928,655,4.327,890,6.221,1699,6.221]],["t/390",[5,1.875,7,1.632,8,2.25,11,1.771,14,2.793,35,1.684,51,4.64,256,3.274,257,2.434,762,2.672,793,4.889,811,6.1,1612,6.1,1613,6.94]],["t/392",[5,1.912,8,2.295,35,1.416,47,3.636,48,5.928,80,5.132,91,3.751,154,4.515,226,4.241,274,2.362,319,5.294,520,5.476,1654,6.221,1700,7.078]],["t/394",[0,1.306,1,5.299,5,2.146,6,3.25,7,1.868,12,5.561,13,2.264,16,3.585,21,3.202,35,1.266,37,3.585,38,3.65,46,3.718,58,0.824,119,4.895,131,0.936,160,3.65,425,2.463,608,5.299,655,3.868,1615,5.561,1644,4.895,1655,5.299]],["t/396",[0,1.391,11,1.782,13,2.508,35,1.402,214,5.242,223,3.656,232,4.2,245,3.601,330,3.306,341,3.061,342,2.988,465,4.685,1202,6.523]],["t/398",[0,1.321,6,3.309,10,4.983,11,1.692,15,3.859,21,3.26,35,1.289,46,3.785,92,4.416,170,1.974,232,4.815,259,4.815,260,4.67,261,4.983,316,2.959,666,5.661,1701,7.118,1702,5.994,1703,5.661,1704,5.994]],["t/400",[0,1.141,5,2.272,9,3.274,11,1.461,35,1.684,99,5.032,102,3.8,107,5.032,425,2.702,570,4.767,655,4.243,1569,5.032,1705,7.671]],["t/402",[0,1.04,6,3.25,7,1.868,8,2.051,15,3.791,21,3.202,58,0.824,59,3.407,63,3.791,91,3.352,259,3.791,336,3.463,415,6.656,513,3.463,666,5.561,711,4.338,837,5.081,954,5.888,1222,5.081,1522,6.326,1703,5.561,1706,6.326,1707,6.992,1708,6.326]],["t/404",[0,1.455,7,1.234,8,0.843,9,1.973,10,3.236,11,1.753,13,0.93,14,1.683,23,1.336,24,1.5,25,1.5,35,1.05,36,1.528,37,2.37,40,3.676,41,3.503,42,1.243,43,1.423,45,1.179,46,1.528,47,2.695,49,3.236,50,2.796,51,2.796,52,2.178,53,2.012,54,1.783,55,1.873,58,0.917,59,1.4,87,3.503,101,1.697,102,1.423,106,1.738,130,0.921,131,0.975,133,1.4,134,1.012,135,0.775,137,1.164,149,2.012,150,1.297,182,2.088,191,1.558,202,1.226,216,1.783,218,1.336,226,1.558,232,1.558,242,2.579,251,1.897,252,1.164,257,1.839,259,3.947,269,1.528,274,0.868,302,1.21,315,1.035,316,1.921,317,1.194,330,1.226,352,2.285,369,1.528,406,1.832,415,2.178,417,2.088,424,1.697,425,1.628,442,3.892,455,1.832,473,1.473,522,2.178,531,1.783,536,2.088,562,1.832,587,2.088,640,3.503,641,3.503,642,1.885,643,2.6,665,2.285,673,1.4,674,1.448,732,1.356,762,1.001,796,2.285,856,2.42,1169,1.697,1179,1.589,1215,1.194,1237,2.182,1240,2.61,1270,1.5,1272,2.973,1303,2.178,1521,1.697,1552,1.945,1601,3.128,1609,1.885,1685,2.088,1691,2.42,1692,2.285,1709,2.874,1710,2.874,1711,2.874,1712,2.6,1713,3.892,1714,2.6,1715,2.874,1716,2.874,1717,2.285,1718,5.798,1719,2.178,1720,2.874,1721,2.874,1722,2.874]],["t/406",[17,4.264,92,5.16,134,2.929,191,4.509,880,6.303,1068,4.911,1549,5.822,1670,6.303]],["t/408",[5,1.485,8,1.783,11,1.158,29,5.118,58,0.717,92,3.771,101,3.589,102,3.011,106,3.676,278,3.676,291,5.832,300,2.704,316,3.336,317,2.526,424,3.589,425,2.826,485,3.987,597,3.987,762,2.796,1215,3.336,1237,4.24,1270,3.173,1462,5.118,1508,5.499,1601,4.113,1603,3.771,1604,4.834,1605,5.118,1606,4.417,1607,4.255,1723,4.834,1724,5.499,1725,4.834,1726,6.078,1727,4.417,1728,6.078]],["t/410",[0,0.691,5,1.906,9,1.984,31,2.229,35,0.842,38,2.426,58,0.786,96,3.523,102,3.304,122,2.229,128,2.745,131,0.622,167,2.625,170,1.849,255,1.772,257,1.475,278,2.812,317,2.773,472,3.146,514,4.84,572,3.254,611,4.847,616,3.523,618,2.426,732,2.194,735,2.884,787,2.265,788,2.745,864,2.426,885,4.23,949,3.049,1014,3.914,1179,2.571,1193,5.306,1204,3.378,1215,1.932,1414,5.304,1524,3.696,1528,5.669,1598,3.378,1625,4.206,1632,3.914,1655,3.523,1713,3.914,1729,4.648,1730,4.648,1731,4.648,1732,4.648,1733,6.204,1734,4.648,1735,4.206,1736,4.648,1737,3.696,1738,3.378,1739,4.648,1740,4.648,1741,3.914,1742,3.378,1743,4.206,1744,4.648,1745,4.206,1746,4.648]],["t/412",[0,1.231,7,1.761,17,3.267,21,4.618,74,4.461,93,5.067,99,4.18,134,2.244,150,2.876,156,3.678,170,1.767,172,3.854,202,2.72,245,2.962,425,2.244,581,5.366,597,4.18,640,6.273,732,3.008,869,4.061,945,4.631,1193,3.599,1592,5.765,1609,4.18,1741,5.366,1747,6.372,1748,5.366,1749,5.366,1750,6.372,1751,6.372]],["t/414",[0,0.988,7,1.413,58,0.783,93,5.28,170,1.841,210,2.657,218,3.086,309,3.6,456,4.016,473,3.404,480,4.016,521,3.6,698,5.28,758,5.95,864,3.466,921,4.119,1068,3.921,1169,3.921,1222,4.825,1397,5.591,1494,4.119,1523,4.232,1610,6.008,1752,9.374,1753,5.032,1754,5.28,1755,6.64,1756,6.64,1757,6.008]],["t/416",[0,0.89,7,1.69,11,1.698,17,3.069,47,2.782,94,4.76,134,2.108,170,1.66,218,3.693,274,1.808,342,3.44,386,4.932,432,3.927,637,3.455,673,2.916,762,2.768,921,5.531,1169,3.535,1272,4.571,1494,5.531,1518,3.815,1519,5.041,1524,4.76,1576,4.35,1704,6.689,1754,4.76,1757,7.188,1758,5.986]],["t/418",[5,1.941,11,1.14,17,3.069,43,2.965,58,0.706,89,3.069,91,2.87,101,3.535,102,3.935,128,3.535,182,4.35,218,2.782,245,2.782,274,1.808,358,3.125,425,2.108,590,4.191,614,3.016,621,3.714,762,2.085,1214,3.311,1215,2.488,1237,2.825,1487,3.927,1524,4.76,1549,4.191,1572,3.927,1576,4.35,1601,4.051,1735,5.416,1745,5.416,1759,5.986,1760,5.986,1761,5.416,1762,5.986,1763,7.09,1764,5.986,1765,4.76,1766,4.76,1767,5.041,1768,4.35]],["t/420",[0,1.378,7,1.779,11,1.234,15,3.511,21,3.83,28,4.128,35,1.173,47,3.01,74,4.534,82,4.128,85,7.043,89,4.288,218,3.01,231,3.582,232,3.511,259,5.023,269,3.444,321,2.881,415,6.339,666,5.15,674,3.263,1576,4.707,1703,5.15,1769,6.476,1770,4.128,1771,5.15]],["t/422",[7,1.649,37,2.957,45,2.367,58,0.68,131,1.253,253,2.308,255,3.336,257,2.458,274,2.34,341,2.279,342,2.225,454,2.722,621,3.578,673,2.81,732,2.722,758,6.55,763,3.735,836,5.632,885,3.127,921,4.808,949,3.784,976,4.587,1169,4.576,1193,4.377,1494,3.578,1518,3.676,1519,4.857,1609,3.784,1704,4.857,1738,4.191,1772,5.767,1773,5.767,1774,5.767]],["t/424",[0,1.224,13,2.664,137,3.334,814,4.648,870,5.106,1261,5.981,1775,8.23,1776,8.23,1777,7.446]],["t/426",[0,1.049,35,1.599,168,3.752,200,2.788,263,3.752,283,3.028,315,2.54,322,4.374,326,4.939,341,2.788,342,2.722,783,5.629,1119,4.774,1243,4.496,1261,5.127,1406,5.61,1487,4.628,1491,5.61,1777,6.383,1778,7.054]],["t/428",[0,1.152,14,2.82,35,1.402,113,3.714,131,1.037,263,4.119,283,2.433,302,3.262,322,4.633,326,5.423,327,4.806,711,4.806,1491,6.16,1672,6.16]],["t/430",[0,1.379,35,1.567,58,1.021,131,0.756,157,2.781,170,1.565,210,3.056,211,2.897,213,2.204,253,2.258,283,2.719,305,5.238,306,3.134,307,3.397,315,3.116,320,3.597,321,2.511,322,2.796,323,4.753,342,2.177,609,3.122,750,4.102,751,4.102,1243,3.597,1574,3.819]],["t/432",[0,1.194,97,4.267,157,2.922,210,3.211,211,2.952,305,5.396,306,3.293,307,3.57,320,5.114,321,4.25,322,3.975,327,3.771,331,5.264,332,4.978,609,3.362,1779,4.606]],["t/434",[0,1.231,157,3.013,210,3.312,211,2.973,305,5.496,306,3.396,307,3.682,320,5.275,321,3.682,327,3.953,328,4.888,329,7.489,609,3.525,1779,4.829]],["t/436",[0,1.184,42,2.084,58,0.938,97,2.562,157,2.898,210,3.184,211,2.919,263,3.639,283,1.513,305,5.37,306,3.266,307,3.54,320,4.362,321,3.54,322,4.533,326,4.791,327,4.246,328,2.845,331,3.161,332,2.989,342,2.64,493,2.113,609,2.665,750,3.502,751,3.502,862,3.832,1243,4.362,1265,3.832,1387,3.502,1449,3.502,1780,4.359,1781,3.832,1782,4.359]],["t/438",[0,1.005,13,2.551,58,1.072,60,2.617,134,1.666,157,2.46,168,2.516,210,2.703,211,2.831,231,4.358,263,2.516,305,5.337,306,2.772,307,3.005,320,4.306,321,3.505,322,3.903,326,4.729,327,5.331,328,2.794,336,2.344,341,1.87,342,1.825,367,4.191,411,2.606,480,4.766,609,3.737,1487,3.104,1491,3.763,1574,3.202,1779,5.12,1781,3.763,1782,4.281,1783,6.756,1784,4.281]],["t/440",[58,0.879,188,6.925,211,2.01,325,7.695,327,5.669,465,4.508,480,4.508,1487,4.89,1574,5.044,1779,5.649,1784,6.744,1785,7.454,1786,9.138,1787,9.138]],["t/442",[0,0.73,35,1.255,39,2.281,58,0.818,69,2.61,84,3.835,113,3.324,200,3.453,210,2.774,211,2.708,283,1.542,304,6.093,306,2.845,315,1.767,320,3.128,321,2.183,322,2.431,323,4.133,327,3.045,342,2.675,370,3.72,421,3.567,480,4.194,521,2.661,548,4.441,609,2.715,644,5.839,819,3.321,870,3.045,1243,4.419,1406,5.514,1487,3.22,1515,3.72,1574,4.692,1650,4.441,1779,3.72,1781,3.903,1788,6.933,1789,8.039,1790,4.908,1791,4.908,1792,4.908,1793,4.908,1794,4.908,1795,4.908,1796,4.908,1797,4.908]],["t/444",[0,1.221,9,3.039,11,1.563,17,2.614,22,2.334,25,2.661,35,1.608,51,3.084,58,0.601,99,3.344,102,2.525,107,4.671,116,2.764,117,2.301,131,0.682,170,1.414,245,3.31,255,1.944,256,2.176,258,3.01,286,2.444,293,3.344,317,2.119,322,3.527,341,2.015,342,2.747,425,1.795,530,5.397,570,3.651,583,4.054,614,2.568,655,3.939,770,3.163,1068,3.01,1171,3.569,1177,3.45,1193,2.879,1203,4.054,1237,2.406,1243,3.249,1285,3.863,1330,3.705,1482,4.613,1521,4.205,1569,3.344,1601,3.45,1798,3.863,1799,5.098,1800,5.098,1801,3.863,1802,5.098,1803,5.098]],["t/446",[0,0.918,3,3.563,4,4.049,6,2.869,7,1.313,9,2.635,13,1.998,24,3.222,31,2.96,35,1.74,38,3.222,42,3.507,59,3.008,96,6.144,116,3.347,130,1.978,131,1.085,164,4.909,170,1.712,178,3.058,278,3.734,317,2.566,642,4.049,656,3.414,1171,4.321,1193,3.486,1521,3.645,1719,6.144,1804,6.173,1805,6.173,1806,6.173,1807,5.198,1808,4.678,1809,6.173]],["t/448",[35,1.015,45,2.3,58,0.896,64,3.923,76,2.687,87,7.008,117,3.43,131,1.017,137,3.079,213,2.188,411,2.162,527,4.073,570,2.873,725,4.457,757,3.792,898,4.073,1133,4.073,1146,6.341,1215,3.159,1218,5.321,1226,3.792,1272,2.873,1294,4.457,1463,7.86,1477,3.923,1699,4.457,1738,4.073,1810,5.604,1811,3.676,1812,7.6,1813,5.604,1814,5.604,1815,5.07]],["t/450",[0,1.292,35,1.573,36,3.023,58,0.905,87,4.308,93,4.521,102,2.816,107,3.729,116,4.16,117,2.565,130,2.459,131,1.027,135,2.07,136,2.77,137,2.303,178,2.816,183,3.98,188,4.308,191,3.082,216,3.527,313,2.167,315,2.047,319,3.847,342,2.96,417,4.131,418,3.281,614,2.864,642,3.729,656,4.245,750,4.131,751,4.131,880,4.308,1013,4.131,1235,2.864,1243,4.891,1261,4.131,1463,4.308,1528,4.131,1738,4.131,1816,4.521]],["t/452",[3,2.534,8,1.288,14,2.33,16,2.251,35,0.795,38,2.292,39,2.041,45,1.801,51,2.655,65,2.592,84,2.428,88,3.972,107,2.88,129,3.697,131,1.111,170,1.217,172,2.655,176,3.118,183,3.073,186,4.791,221,3.491,245,2.975,252,1.779,256,1.874,264,3.118,265,2.593,268,2.592,274,1.326,300,1.953,316,1.825,359,2.971,425,1.546,449,4.017,450,4.48,451,2.212,459,2.479,462,2.212,493,3.871,512,2.724,530,3.327,542,5.715,621,2.724,655,2.428,763,1.874,783,2.798,793,2.798,870,3.971,898,3.19,981,3.073,1084,3.491,1272,2.251,1293,2.971,1477,3.073,1548,3.491,1550,3.491,1572,4.198,1594,2.88,1628,3.697,1645,3.972,1674,3.972,1817,4.39,1818,4.39,1819,4.39,1820,4.39,1821,4.39,1822,4.39,1823,3.491,1824,4.39]],["t/454",[5,1.27,25,2.714,47,3.855,131,0.966,152,2.416,256,3.539,257,2.631,264,4.04,274,1.57,298,3.166,300,2.313,344,3.144,389,5.419,426,2.765,439,2.416,449,4.41,450,3.639,459,2.936,462,2.619,486,2.936,490,6.983,542,5.145,746,3.94,763,3.539,781,6.983,929,5.74,1084,6.595,1147,3.778,1295,7.503,1520,5.053,1825,5.198,1826,7.218,1827,5.198,1828,5.198,1829,5.198]],["t/456",[0,1.164,116,4.241,150,3.53,183,5.476,226,5.102,473,4.01,513,3.875,521,4.241,964,6.587,1551,7.078,1669,6.587,1830,6.587,1831,7.823]],["t/458",[0,1.314,16,3.617,35,1.599,42,3.052,43,3.494,58,0.832,91,3.382,96,5.346,130,2.83,131,1.182,202,3.011,227,4.628,278,4.267,642,4.628,1193,3.984,1634,5.346,1655,5.346,1832,5.941,1833,7.054,1834,7.054,1835,7.054]],["t/460",[0,1.257,3,3.801,4,4.319,7,1.798,8,1.932,9,2.81,14,2.397,24,3.437,58,0.776,111,7.119,122,3.157,130,2.11,134,2.319,153,4.085,160,3.437,170,1.826,245,3.061,425,2.319,542,4.085,606,5.958,1521,3.888,1569,4.319,1657,5.236,1702,5.545,1807,5.545,1836,6.584,1837,6.584,1838,6.584,1839,6.584,1840,5.958]],["t/462",[0,1.164,7,1.664,43,3.875,101,4.619,102,3.875,473,4.01,621,4.853,762,2.725,788,4.619,1215,3.252,1579,5.685,1609,5.132,1706,7.078,1841,7.078]],["t/464",[9,4.166,84,4.009,145,4.755,202,3.094,268,4.28,531,4.497,673,3.532,814,4.094,866,5.493,1251,5.573,1280,5.004,1475,5.074,1593,4.905,1832,6.104,1842,6.559,1843,6.559,1844,6.559]],["t/466",[9,2.655,47,2.892,119,6.75,152,2.892,172,5.496,223,2.937,824,4.521,1251,3.86,1286,3.514,1477,4.355,1518,3.965,1638,4.948,1643,4.21,1845,4.081,1846,8.724,1847,8.222,1848,5.629,1849,6.862,1850,4.715,1851,5.629,1852,5.629,1853,5.629,1854,5.629,1855,5.629,1856,5.629,1857,5.629,1858,4.948,1859,5.629,1860,4.355]],["t/468",[9,2.095,13,1.589,21,2.247,39,3.223,47,4.283,55,2.809,58,0.818,106,2.969,119,6.116,134,1.729,152,4.061,200,1.94,202,2.095,218,2.281,223,4.515,227,3.22,257,2.551,330,2.095,369,2.61,424,2.898,425,1.729,439,3.223,459,4.934,597,3.22,623,3.22,711,3.045,1068,2.898,1169,2.898,1280,4.479,1287,3.045,1517,3.567,1518,5.873,1593,3.321,1643,4.692,1770,3.128,1801,3.72,1850,3.72,1861,4.133,1862,4.133,1863,4.908,1864,4.908,1865,4.908]],["t/470",[9,2.858,17,4.381,47,3.972,58,0.79,69,3.561,76,3.21,119,5.982,170,1.857,223,3.16,341,3.377,424,5.046,425,2.358,439,3.112,472,4.531,531,4.154,757,5.783,885,3.63,1251,4.154,1280,3.433,1475,4.688,1518,5.446,1811,5.606,1866,5.075]],["t/472",[21,4.209,47,4.272,67,5.984,81,4.936,92,4.668,268,4.443,286,3.608,439,3.498,610,3.928,673,3.666,1280,3.858,1518,4.796,1770,4.796,1867,6.808,1868,6.336,1869,7.525]],["t/474",[9,3.109,13,1.705,45,2.162,47,4.396,48,3.992,58,0.621,67,4.189,102,4.463,170,2.02,218,2.449,223,2.486,239,4.766,279,3.828,330,2.248,439,3.386,456,3.186,507,4.436,637,3.041,748,3.357,774,3.992,975,4.436,1096,6.135,1319,4.189,1518,6.028,1644,5.1,1811,3.456,1858,7.165,1862,4.436,1870,4.766,1871,5.793,1872,8.351,1873,7.285,1874,4.766,1875,5.268,1876,4.766,1877,5.268,1878,5.268,1879,4.766,1880,4.436,1881,5.268]],["t/476",[9,2.8,24,2.371,47,4.731,84,2.512,102,2.249,119,4.592,128,2.682,216,2.817,223,4.644,358,2.371,370,3.442,424,2.682,425,1.599,432,5.051,437,4.069,439,2.111,441,2.462,572,3.179,587,3.3,609,2.512,614,2.288,673,2.213,787,2.213,824,3.3,978,3.3,1041,4.767,1251,2.817,1475,3.179,1487,2.979,1518,6.27,1845,2.979,1862,3.824,1882,3.442,1883,4.541,1884,4.541,1885,4.541,1886,8.433,1887,4.541,1888,4.109,1889,4.541,1890,4.541,1891,8.433,1892,4.971,1893,4.109,1894,4.541,1895,4.541,1896,3.824,1897,4.541,1898,4.541,1899,3.824,1900,4.541]],["t/478",[9,3.122,341,2.891,432,4.799,757,6.632,812,3.819,921,4.539,1092,5.544,1251,4.539,1280,5.024,1325,5.544,1667,5.544,1811,6.429,1901,6.619,1902,6.619,1903,6.619]],["t/480",[9,3.855,19,3.751,23,3.401,55,2.964,113,3.508,144,4.132,225,5.317,227,4.799,512,4.539,622,5.121,783,4.663,793,4.663,1160,4.951,1251,5.604,1280,4.631,1607,5.121,1725,5.818,1816,5.818]],["t/482",[9,3.406,144,4.507,156,4.606,1068,4.713,1251,4.951,1866,6.048,1904,7.221,1905,6.72,1906,7.221,1907,6.72,1908,6.72,1909,7.221]],["t/484",[0,1.152,35,1.402,45,3.178,322,3.837,425,2.728,1215,3.22,1235,3.902,1237,3.656,1268,5.87,1270,4.043,1576,5.629,1607,5.423,1882,5.87,1910,7.008,1911,5.629]],["t/486",[0,0.9,5,0.748,11,1.312,13,0.992,19,1.57,31,1.469,34,1.9,35,0.881,39,1.424,40,2.436,45,3.283,49,2.144,55,1.241,58,0.361,60,1.694,130,2.208,131,1.071,132,2.009,202,1.307,210,1.226,216,1.9,227,2.009,233,1.694,242,1.363,257,0.972,274,0.925,276,1.952,282,3.048,289,4.585,298,1.344,302,2.901,303,2.997,322,1.517,340,2.009,342,2.899,386,1.694,406,1.952,425,1.713,427,2.009,439,1.424,486,1.73,493,1.344,546,2.073,567,4.811,569,2.579,591,2.321,597,2.009,621,3.018,627,2.144,640,2.321,645,2.009,674,1.543,752,2.009,762,2.108,859,5.094,979,2.436,980,2.321,981,2.144,1177,4.094,1191,3.868,1192,1.853,1193,1.73,1235,4.627,1243,1.952,1270,1.599,1319,2.436,1381,2.226,1523,1.952,1582,2.771,1595,2.226,1609,2.009,1669,2.579,1682,2.579,1694,2.144,1860,2.144,1874,2.771,1910,6.233,1911,2.226,1912,3.063,1913,4.864,1914,2.321,1915,3.063,1916,2.771,1917,2.073,1918,3.063,1919,3.063,1920,2.771,1921,4.864,1922,3.063,1923,2.436,1924,4.864,1925,3.063,1926,2.771,1927,4.401,1928,2.771,1929,4.396,1930,3.063,1931,3.063,1932,3.063,1933,2.579,1934,2.771,1935,3.063,1936,2.436,1937,3.063,1938,3.063,1939,3.063,1940,3.063,1941,3.063,1942,3.063,1943,2.771]],["t/488",[0,1.05,7,1.071,9,2.148,11,1.683,14,2.967,35,1.278,39,2.339,74,4.94,91,2.413,191,2.729,202,2.148,242,2.239,248,4.554,251,2.065,283,1.581,321,2.239,425,3.111,455,3.208,567,4.002,590,3.523,612,3.814,711,3.122,732,2.376,747,3.986,885,2.729,1027,7.439,1131,3.406,1215,2.933,1237,4.169,1268,3.814,1494,3.122,1521,2.972,1528,3.658,1529,6.385,1572,3.302,1634,3.814,1656,5.612,1733,4.002,1944,4.554,1945,5.033,1946,5.033,1947,3.658,1948,5.033,1949,5.033,1950,3.814,1951,5.033,1952,5.033,1953,4.238,1954,3.814]],["t/490",[11,1.631,14,2.012,24,1.884,35,1.216,79,3.039,133,1.758,134,1.271,191,2.997,202,2.359,219,3.039,233,3.716,298,1.583,322,3.328,340,2.367,406,3.523,418,2.083,425,2.859,427,2.367,521,1.956,567,2.87,612,2.735,637,3.19,692,2.526,747,3.122,854,2.526,964,3.039,1027,3.039,1177,4.546,1192,3.343,1214,1.996,1215,2.297,1218,3.869,1226,3.74,1235,1.818,1237,3.554,1268,2.735,1270,3.507,1287,4.168,1296,3.039,1330,2.622,1344,2.367,1387,4.882,1477,3.869,1503,3.265,1543,3.869,1576,2.622,1603,2.239,1724,5.001,1914,2.735,1929,4.017,1933,3.039,1954,2.735,1955,3.608,1956,5.527,1957,3.608,1958,3.608,1959,6.079,1960,5.527,1961,3.608,1962,3.608,1963,2.735,1964,6.718,1965,3.039,1966,3.608,1967,3.608,1968,3.608,1969,3.265,1970,4.401,1971,6.718,1972,3.608,1973,3.608,1974,4.189,1975,3.608,1976,3.039,1977,5.527,1978,3.608,1979,3.265,1980,3.608]],["t/492",[58,0.764,130,2.969,131,0.867,134,2.946,135,1.747,144,3.658,179,2.232,191,5.023,230,5.86,231,5.124,282,3.263,293,4.249,417,6.079,613,4.128,731,4.128,732,3.057,734,4.534,1261,4.707,1517,4.707,1526,5.15,1981,6.476,1982,6.476,1983,6.476,1984,7.568,1985,6.476,1986,5.86]],["t/494",[0,0.585,11,0.749,13,1.91,23,1.827,39,3.291,42,1.701,45,1.613,58,0.695,76,1.885,84,2.175,102,3.896,113,2.828,122,1.885,130,1.89,131,1.053,134,1.385,167,2.22,168,2.091,170,1.09,179,1.355,191,2.131,192,2.579,220,4.4,229,3.557,231,3.263,251,1.613,263,4.183,283,2.648,284,2.378,291,2.857,298,1.724,322,4.384,342,3.541,351,2.661,386,2.175,408,3.126,412,3.659,465,2.378,480,2.378,493,1.724,565,3.126,592,2.484,622,2.752,637,2.269,731,2.506,885,2.131,955,3.311,1013,2.857,1243,5.641,1244,5.337,1261,4.287,1555,2.979,1574,2.661,1725,3.126,1816,4.691,1984,3.557,1986,3.557,1987,5.898,1988,3.931,1989,3.931,1990,3.931,1991,3.931,1992,5.961,1993,3.931,1994,3.931,1995,3.931]],["t/497",[0,0.96,7,1.373,8,1.302,11,1.688,13,1.437,14,1.616,35,0.804,43,2.199,55,1.799,69,2.361,76,2.128,131,1.187,135,1.197,139,3.364,168,3.431,170,1.231,191,2.407,196,2.685,233,2.455,265,1.799,299,3.004,300,1.975,303,3.196,317,1.845,418,3.724,513,2.199,552,2.621,615,3.738,691,2.829,748,2.829,752,2.912,759,3.004,762,2.248,814,2.507,843,3.226,864,3.368,921,2.754,948,3.498,1177,4.366,1235,3.251,1237,2.095,1270,2.317,1286,2.507,1315,2.912,1330,3.226,1439,4.112,1483,3.226,1501,3.364,1614,3.364,1620,2.912,1679,3.53,1753,3.364,1970,4.121,1996,4.439,1997,3.226,1998,4.439,1999,6.045,2000,4.017,2001,3.226,2002,3.108,2003,3.53,2004,5.433,2005,5.838,2006,4.017,2007,4.017,2008,3.364]],["t/499",[0,1.009,7,1.443,8,1.396,11,1.735,13,1.541,14,1.733,35,0.862,43,2.358,55,1.929,69,2.531,76,2.282,131,1.219,139,3.608,168,3.608,191,2.581,196,2.879,233,2.633,265,1.929,299,3.221,303,3.361,317,1.979,418,3.916,615,4.008,691,3.034,748,3.034,759,3.221,762,2.364,843,3.459,864,2.485,948,3.678,1177,4.591,1235,3.418,1237,2.247,1270,2.485,1286,2.688,1315,3.123,1330,3.459,1439,4.324,1483,3.459,1501,3.608,1614,3.608,1620,3.123,1679,3.786,1753,3.608,1970,4.286,1999,6.287,2000,4.307,2001,3.459,2002,3.332,2003,3.786,2004,5.713,2005,6.139,2006,4.307,2007,4.307,2008,3.608]],["t/502",[11,1.585,35,1.163,131,1.114,321,3.701,418,3.708,473,4.731,759,4.347,762,2.238,1235,4.649,1237,3.927,1269,4.668,1270,3.353,1501,4.868,1970,5.003,1999,6.617,2001,4.668,2002,5.825,2009,5.812,2010,6.424,2011,6.424,2012,6.424,2013,6.424,2014,6.424,2015,6.424]],["t/504",[8,1.214,11,1.778,35,1.109,55,1.676,131,1.353,134,1.457,150,2.765,176,2.016,217,2.8,233,2.288,255,1.577,257,1.944,283,1.925,300,1.84,314,2.337,330,1.766,351,5.828,484,2.938,495,2.714,552,3.618,592,2.58,691,2.637,762,3.252,765,2.16,914,5.544,1190,3.484,1206,6.416,1237,1.953,1269,4.453,1272,2.121,1286,2.337,1439,2.637,1594,5.292,1620,4.787,1770,2.637,1914,4.643,1959,3.743,1970,2.243,1997,3.007,2001,3.007,2002,2.896,2003,3.29,2016,3.484,2017,2.288,2018,6.127,2019,6.127,2020,5.303,2021,4.137,2022,4.137,2023,4.137,2024,4.137,2025,6.127,2026,4.137,2027,4.137,2028,4.137]],["t/506",[5,1.463,11,1.698,35,1.438,131,1.063,233,3.311,274,1.808,331,3.927,418,3.455,614,3.016,759,4.051,948,4.834,1235,4.492,1237,2.825,1361,5.416,1439,3.815,1501,4.537,1546,4.76,1644,4.191,1770,3.815,1970,4.834,1999,6.317,2001,4.35,2002,5.561,2003,4.76,2029,5.986,2030,4.76,2031,5.986,2032,5.986,2033,5.986,2034,5.986,2035,4.537,2036,5.986,2037,5.986]],["t/509",[0,1.013,7,1.449,35,1.564,54,4.226,113,3.266,135,1.837,188,5.162,231,3.768,283,2.139,379,5.736,418,3.932,552,5.101,613,4.341,691,4.341,788,4.022,864,4.509,1197,5.162,1713,5.736,1868,5.736,1997,6.278,2017,3.768,2038,6.163,2039,8.638,2040,6.811]],["t/511",[0,1.013,7,1.838,17,3.492,58,0.803,59,3.319,130,2.183,135,1.837,171,5.417,200,2.692,224,5.736,290,4.95,330,2.907,552,5.602,562,4.341,732,3.215,788,4.022,864,3.555,929,5.417,1526,5.417,1595,4.95,1997,6.278,2038,6.163,2041,8.638,2042,6.811]],["t/513",[23,3.369,134,2.553,135,2.423,214,4.905,223,3.421,358,3.784,613,6.502,788,4.28,864,3.784,931,6.559,1552,4.905,1634,5.493,2043,8.982,2044,7.249,2045,7.249,2046,6.104,2047,7.249]],["t/515",[0,1.516,37,3.376,81,4.319,270,4.319,358,3.437,552,5.514,645,4.319,788,3.888,864,3.437,1240,3.719,1549,5.918,1599,4.609,1643,4.456,1767,5.545,1830,5.545,1868,5.545,1997,6.144,2008,4.99,2017,5.165,2048,5.958,2049,5.545,2050,6.584,2051,6.584]],["t/518",[0,0.89,7,1.69,11,1.698,38,3.125,39,2.782,58,0.706,106,3.621,131,1.194,135,2.405,257,1.899,277,4.537,424,3.535,425,2.108,618,3.125,645,3.927,668,5.041,735,3.714,762,2.085,853,4.537,864,3.125,1092,6.02,1259,6.02,1275,4.537,1334,5.041,1585,5.041,2052,6.689,2053,5.416,2054,5.416,2055,5.986,2056,6.02,2057,5.416,2058,4.537,2059,5.986,2060,5.986]],["t/520",[7,1.501,11,1.344,131,0.944,135,2.6,146,3.682,177,4.267,242,3.138,257,3.059,314,4.988,317,2.932,411,2.722,452,5.61,885,3.825,1160,4.774,1233,5.346,1382,6.383,2061,7.054,2062,7.054,2063,7.054,2064,6.383]],["t/522",[0,1.25,36,4.47,618,5.125,763,3.587,934,6.684,2065,7.078]],["t/524",[0,1.164,134,2.755,213,3.054,226,4.241,295,5.294,504,5.132,618,4.083,691,4.986,763,3.339,864,4.083,2065,6.587,2066,7.078,2067,7.823,2068,7.823]],["t/526",[0,0.494,7,1.532,11,1.751,23,1.543,24,1.733,31,1.592,38,1.733,42,2.758,58,0.391,130,1.064,131,1.231,148,1.645,177,2.008,179,1.786,216,2.06,246,3.004,252,1.345,257,2.285,269,2.756,274,1.003,284,3.856,302,1.398,317,1.38,321,1.477,349,2.247,386,1.837,423,2.413,424,1.961,425,1.169,457,1.875,473,1.702,485,2.178,500,4.364,552,1.961,591,2.516,638,3.004,688,2.413,692,2.324,732,1.567,762,2.221,764,2.324,1092,3.928,1179,1.837,1192,3.856,1214,1.837,1236,3.004,1237,3.4,1257,3.928,1259,5.459,1264,3.004,1272,3.693,1275,2.516,1284,2.796,1286,1.875,1493,2.64,1579,2.413,1629,2.796,1658,2.64,1781,4.122,1923,2.64,1950,2.516,1953,2.796,1954,3.928,1963,2.516,2017,1.837,2046,2.796,2058,5.459,2064,3.004,2069,5.368,2070,2.796,2071,3.32,2072,3.32,2073,3.32,2074,3.32,2075,3.32,2076,3.32,2077,3.32,2078,3.32,2079,2.64,2080,3.004,2081,3.928,2082,4.689,2083,3.32,2084,3.32,2085,4.122,2086,3.32,2087,3.32,2088,3.32,2089,5.183,2090,5.183,2091,3.32,2092,3.32,2093,3.004,2094,3.004,2095,2.64]],["t/528",[8,1.901,58,0.899,69,2.374,122,2.14,130,1.431,131,1.311,134,1.572,135,1.204,167,5.233,178,2.211,202,1.905,257,2.94,274,1.348,282,4.215,284,2.7,321,1.986,426,2.374,505,3.244,591,3.383,592,2.728,623,2.929,637,2.577,691,2.845,732,2.107,787,3.157,864,3.382,885,2.42,1193,2.521,1259,5.779,1286,2.521,1304,3.55,1593,3.021,1658,3.55,1770,2.845,1923,3.55,1953,3.759,2058,4.91,2070,3.759,2079,3.55,2096,4.464,2097,8.366,2098,4.464,2099,4.464,2100,4.464,2101,4.535,2102,6.479,2103,6.479,2104,7.626,2105,4.464,2106,4.464,2107,4.464,2108,4.464,2109,3.55]],["t/530",[0,0.961,7,0.33,11,0.522,19,2.28,23,0.72,36,1.958,38,0.809,55,1.802,58,0.762,60,2.46,69,1.457,97,1.958,106,0.937,122,2.132,128,0.915,130,1.18,131,0.493,134,0.965,135,1.514,136,1.794,150,0.699,167,0.875,171,3.537,177,2.227,179,0.534,191,1.996,200,0.612,202,3.247,211,0.739,216,0.961,223,0.731,231,0.857,257,2.908,268,0.915,274,0.468,284,0.937,286,4.004,317,2.112,321,3.78,332,1.7,397,1.126,412,0.961,427,1.797,441,0.84,445,2.479,446,0.937,454,0.731,455,0.988,456,1.657,457,0.875,465,0.937,482,1.402,505,1.991,531,1.7,552,2.174,572,1.085,591,3.37,592,1.551,598,1.305,604,1.402,605,1.126,614,0.781,621,1.7,622,1.918,623,1.017,629,1.174,645,1.017,647,0.988,649,1.232,691,2.347,692,2.578,732,2.65,734,1.918,748,0.988,762,2.37,763,3.247,765,0.809,774,1.174,776,1.402,782,1.126,787,0.755,813,4.727,862,1.232,864,3.372,874,1.232,978,1.126,981,1.918,1092,2.791,1136,1.085,1160,3.799,1179,0.857,1237,3.866,1259,4.896,1272,2.28,1286,2.08,1486,2.307,1593,1.854,1617,3.332,1651,1.174,1658,4.826,1661,1.305,1679,1.232,1683,1.402,1688,1.402,1694,1.085,1738,1.991,1742,1.126,1798,1.174,1808,1.174,1860,1.085,1893,2.479,1950,1.174,1965,1.305,1970,0.84,1976,1.305,2004,2.307,2035,4.254,2046,1.305,2052,2.307,2057,1.402,2058,4.896,2079,2.179,2081,1.174,2085,2.179,2093,1.402,2101,1.085,2110,1.402,2111,1.402,2112,1.55,2113,1.55,2114,1.305,2115,1.55,2116,2.74,2117,2.74,2118,2.479,2119,2.479,2120,2.479,2121,2.479,2122,2.74,2123,6.803,2124,5.613,2125,1.305,2126,1.55,2127,1.55,2128,3.682,2129,1.402,2130,1.55,2131,3.682,2132,1.55,2133,1.55,2134,1.55,2135,1.55,2136,1.55,2137,1.55,2138,1.55,2139,1.55,2140,1.55,2141,1.55,2142,1.55,2143,1.55,2144,1.55]],["t/532",[0,1.071,11,1.372,38,1.468,47,1.307,55,1.84,58,0.674,69,3.039,97,1.496,116,1.525,117,1.269,122,2.178,130,0.901,131,0.878,134,2.013,135,1.541,141,1.468,178,1.393,185,1.845,256,1.2,257,0.892,274,0.849,282,1.417,298,1.234,317,2.375,395,4.181,424,1.661,437,1.745,439,1.307,446,1.701,455,1.792,456,3.456,472,3.867,505,3.301,513,2.25,552,1.661,575,2.131,579,2.131,597,2.98,618,2.371,645,1.845,678,1.969,747,3.227,750,2.044,751,2.044,763,2.8,765,1.468,770,4.467,864,1.468,885,3.098,889,2.545,947,2.044,1136,1.969,1140,2.236,1167,2.236,1191,3.612,1233,4.972,1237,1.327,1257,4.972,1270,2.983,1286,3.227,1334,3.825,1367,2.236,1415,2.545,1439,1.792,1468,2.545,1486,2.368,1493,2.236,1506,2.236,1515,2.131,1661,2.368,1685,2.044,1738,2.044,1860,1.969,1943,2.545,1970,1.525,2030,2.236,2052,2.368,2058,6.141,2065,2.368,2066,4.11,2069,6.824,2079,2.236,2114,2.368,2118,2.545,2119,2.545,2120,2.545,2121,2.545,2145,2.131,2146,2.545,2147,2.812,2148,2.368,2149,2.368,2150,2.812,2151,2.545,2152,2.545,2153,2.812,2154,2.812,2155,2.812,2156,2.812,2157,2.812,2158,2.812,2159,2.812,2160,2.368,2161,2.812,2162,2.812,2163,2.812,2164,2.812,2165,2.812,2166,6.56,2167,2.812,2168,2.812,2169,2.812,2170,5.714,2171,5.714,2172,2.812,2173,2.812,2174,2.236]],["t/534",[0,1.248,5,1.097,6,3.024,7,1.628,8,1.317,14,1.635,15,2.434,21,3.503,35,1.178,42,1.942,43,2.224,45,1.842,47,3.024,48,3.403,58,0.767,80,2.945,131,1.192,133,3.17,134,2.291,146,2.344,148,2.224,154,2.591,159,3.46,160,2.344,192,2.945,218,3.024,226,2.434,271,3.527,274,2.31,299,3.038,302,1.891,303,2.224,313,1.712,315,1.616,319,3.038,340,2.945,354,2.434,461,4.518,465,2.716,520,5.872,532,2.591,535,3.143,536,3.263,642,2.945,759,3.038,954,3.781,1193,3.674,1523,2.862,1549,3.143,1577,3.038,1585,3.781,1654,3.57,1700,4.062,2145,3.403,2175,4.49,2176,4.49,2177,4.062,2178,4.49,2179,4.49,2180,4.49,2181,4.49]],["t/537",[0,0.933,7,0.909,11,1.416,14,1.555,34,2.65,35,0.773,58,0.877,64,2.99,91,2.048,101,2.522,102,2.116,113,3.564,130,1.369,131,0.572,134,1.504,135,1.152,141,2.23,150,1.928,226,2.316,237,2.99,253,1.709,257,1.355,280,3.104,282,2.152,286,2.048,342,1.648,358,3.274,359,4.245,387,3.104,412,2.65,426,2.272,562,2.722,616,3.237,667,3.597,732,2.961,747,2.412,762,2.854,796,3.397,819,2.891,854,2.99,945,3.104,947,3.104,1103,2.891,1146,4.115,1215,3.792,1218,4.391,1226,4.245,1240,4.199,1272,3.216,1286,2.412,1439,2.722,1463,3.237,1477,2.99,1514,5.676,1595,4.559,1634,3.237,1651,4.754,1742,3.104,1882,3.237,2008,3.237,2017,3.47,2182,4.271,2183,3.865,2184,4.271,2185,4.271,2186,4.271,2187,3.597,2188,4.271,2189,4.271,2190,4.271]],["t/539",[5,1.52,35,1.126,131,0.833,195,3.373,235,5.239,274,1.879,286,2.983,358,3.248,480,3.763,732,2.937,747,5.132,1214,3.441,1215,2.586,1239,4.948,1240,5.132,1381,4.521,1575,5.239,1606,4.521,1763,4.948,2017,3.441,2056,4.715,2101,4.355,2191,6.48,2192,8.149,2193,4.948,2194,5.239,2195,5.239,2196,4.948,2197,4.521,2198,5.629,2199,4.715,2200,4.715,2201,5.239,2202,4.715]],["t/541",[11,1.782,31,2.765,39,2.681,55,3.14,131,0.772,134,2.031,216,3.578,233,3.19,251,2.367,286,3.715,289,4.371,427,3.784,546,3.903,610,3.011,637,3.329,698,4.587,747,4.377,1131,3.903,1179,3.19,1240,5.284,1270,3.011,1272,2.957,1293,3.903,1681,5.218,1969,5.218,1970,3.127,2001,4.191,2017,3.19,2035,4.371,2101,4.038,2114,4.857,2191,4.587,2193,4.587,2203,7.011,2204,4.371,2205,5.767,2206,4.587,2207,5.767,2208,5.767,2209,5.767]],["t/543",[11,1.608,35,0.973,55,2.178,122,2.577,131,0.72,195,4.005,211,1.45,216,4.583,223,2.537,233,2.973,235,4.526,303,2.663,358,3.856,562,3.426,610,3.856,747,4.172,764,3.763,1179,2.973,1214,2.973,1215,3.508,1240,3.036,1289,4.526,1290,4.074,1293,4.999,1344,3.526,1594,3.526,1675,4.864,1780,4.864,1892,4.074,1936,4.275,1950,4.074,1965,4.526,1970,4.005,1974,4.074,2125,4.526,2194,4.526,2195,4.526,2196,4.275,2197,3.906,2198,4.864,2203,7.636,2210,5.375,2211,4.864,2212,4.526,2213,5.375,2214,4.864,2215,5.375]],["t/545",[5,1.717,11,0.953,19,2.564,35,1.272,45,2.052,55,2.026,58,0.59,64,3.501,92,5.039,101,4.149,131,1.087,134,1.761,135,1.349,148,2.477,196,3.025,242,2.225,276,3.187,282,2.52,331,3.281,358,2.611,376,3.281,425,1.761,439,2.325,480,3.025,546,3.384,613,3.187,736,3.79,747,2.825,765,4.24,978,3.634,1214,2.766,1215,3.376,1219,4.525,1237,2.361,1439,3.187,1604,3.977,1606,3.634,1670,3.79,1733,3.977,1763,3.977,1798,3.79,2017,2.766,2174,3.977,2199,3.79,2200,6.676,2216,5.001,2217,5.001,2218,5.001,2219,5.001,2220,5.001,2221,5.001,2222,5.001,2223,5.001,2224,5.001,2225,5.001,2226,4.525,2227,5.001]],["t/547",[0,0.73,11,0.935,14,2.524,24,2.562,34,3.045,39,2.281,47,2.281,58,0.948,122,2.353,213,1.916,251,2.014,258,2.898,289,3.72,290,3.567,303,2.431,321,2.183,324,3.22,358,2.562,426,2.61,450,6.116,457,2.772,610,3.619,732,2.317,736,3.72,787,3.378,796,6.393,859,4.133,981,4.854,1133,3.567,1146,3.22,1179,2.715,1215,2.882,1226,3.321,1240,2.772,1266,4.441,1315,3.22,1449,3.567,1463,3.72,1574,3.321,1588,4.133,1690,4.441,1699,3.903,1871,5.514,1974,5.255,2054,6.273,2145,3.72,2195,5.839,2228,3.903,2229,4.908,2230,4.908,2231,4.441,2232,4.908,2233,4.908,2234,4.441,2235,4.908,2236,4.908,2237,4.441,2238,4.908]],["t/549",[11,1.286,19,4.405,131,0.904,150,3.048,423,4.908,456,4.085,545,4.304,747,3.814,752,4.43,764,4.728,974,6.11,1215,4.268,1222,4.908,1227,5.37,1270,3.525,1381,4.908,1439,4.304,1694,4.728,1723,5.37,2002,4.728,2017,3.735,2202,5.118,2239,6.753,2240,6.11,2241,5.687]],["t/551",[0,1.031,7,1.474,21,4.379,65,4.093,118,4,144,4.933,146,3.618,218,3.222,610,3.618,795,6.271,1628,5.836,1699,5.512,1717,5.512,1867,6.271,1997,6.347,2174,5.512,2242,6.271,2243,6.931,2244,6.931,2245,6.931,2246,6.931,2247,6.931,2248,6.271]],["t/553",[0,0.789,11,1.914,35,1.325,54,4.54,58,0.863,69,2.82,121,4.466,130,1.699,131,0.71,135,1.43,150,2.393,160,2.768,233,4.635,314,2.995,324,3.479,425,1.868,623,3.479,765,2.768,845,3.38,852,5.82,1215,3.042,1235,2.672,1269,3.854,1293,3.589,1515,4.019,1543,3.713,1579,3.854,1620,5.498,1808,4.019,1892,5.546,1911,3.854,1936,4.217,1970,2.875,2017,2.933,2035,4.019,2145,4.019,2197,6.566,2249,4.798,2250,7.319,2251,4.798,2252,4.798,2253,4.798]],["t/555",[0,0.646,7,1.351,11,1.919,31,2.082,54,2.694,55,3.345,58,0.512,69,2.309,131,1.301,132,2.848,134,1.529,135,1.171,141,2.266,148,2.151,150,1.959,166,3.656,171,3.453,218,2.018,252,1.759,277,4.811,319,4.296,342,2.895,386,4.567,405,2.694,483,3.453,572,3.039,597,2.848,637,2.506,762,2.615,845,2.767,852,5.049,945,3.155,1074,5.744,1180,3.928,1214,2.402,1215,1.805,1272,3.848,1287,2.694,1290,4.811,1517,3.155,1596,3.656,1620,4.923,1651,3.29,1652,3.656,1685,3.155,1719,3.29,1770,2.767,1911,3.155,2016,5.346,2017,2.402,2254,4.342,2255,5.346,2256,4.342,2257,3.928,2258,3.928,2259,5.346]],["t/557",[0,0.629,11,1.857,35,0.466,39,1.965,49,1.802,55,3.749,58,0.304,64,1.802,122,2.026,131,1.305,132,1.689,148,1.275,150,2.427,179,0.887,195,1.396,210,1.691,211,1.14,226,2.292,233,2.338,242,1.145,252,1.712,274,1.624,282,2.129,283,0.809,302,1.084,314,1.454,317,2.235,321,1.88,330,1.804,342,0.993,358,2.206,376,1.689,386,1.424,421,3.072,431,1.951,438,2.047,440,1.951,521,1.396,531,1.597,610,2.206,621,1.597,732,2.938,748,1.641,754,1.951,765,2.206,854,3.764,872,1.689,979,2.047,1068,1.52,1123,1.802,1131,1.742,1160,1.742,1192,1.557,1214,1.424,1215,1.07,1235,3.136,1269,1.871,1272,3.191,1287,1.597,1290,6.585,1294,3.361,1344,4.083,1449,3.908,1552,1.742,1594,1.689,1620,5.538,1644,1.802,1652,2.168,1748,2.168,1749,2.168,1768,3.072,1770,1.641,1923,3.361,1970,1.396,1974,1.951,2016,5.242,2017,1.424,2095,2.047,2125,2.168,2129,2.329,2183,2.329,2196,2.047,2197,1.871,2202,1.951,2204,1.951,2206,3.361,2212,2.168,2214,2.329,2228,2.047,2255,2.168,2258,6.22,2259,2.168,2260,2.329,2261,2.047,2262,5.377,2263,2.574,2264,2.329,2265,2.574,2266,2.574,2267,2.574,2268,2.574,2269,2.329,2270,2.168,2271,2.329,2272,2.574,2273,2.574,2274,2.574,2275,2.574,2276,2.574]],["t/559",[0,0.609,11,1.382,14,1.491,35,0.741,43,2.028,45,1.68,47,1.903,55,2.463,58,0.946,97,2.177,130,1.312,131,0.548,135,1.956,146,2.137,191,3.296,211,1.104,241,3.705,242,1.821,252,1.659,274,1.236,283,1.91,286,1.963,351,2.771,485,2.686,504,3.989,512,2.54,521,2.22,610,2.137,611,2.975,618,2.137,655,2.265,736,3.103,747,3.434,765,3.174,877,2.975,929,3.256,1119,2.771,1239,3.256,1240,3.434,1270,2.137,1272,2.099,1286,2.312,1287,3.772,1546,3.256,1574,2.771,1594,2.686,1620,2.686,1694,2.866,1770,3.875,1914,3.103,1970,2.22,2017,4.97,2030,3.256,2193,3.256,2194,3.448,2196,3.256,2197,2.975,2201,3.448,2240,3.705,2277,5.501,2278,4.094,2279,3.705,2280,4.094,2281,6.08,2282,4.094,2283,4.094,2284,4.094,2285,4.094,2286,4.094,2287,3.256,2288,4.094,2289,4.094,2290,3.448,2291,4.094,2292,4.094,2293,3.705,2294,3.705,2295,4.094,2296,3.705,2297,4.094,2298,4.094,2299,4.094,2300,3.705]],["t/561",[0,0.768,11,1.665,13,0.787,17,1.247,31,1.933,35,0.44,47,1.13,48,3.056,54,1.509,55,3.228,58,0.709,108,1.934,112,2.048,121,3.396,122,2.477,131,1.067,134,0.856,150,1.097,167,1.373,191,2.186,196,1.471,203,1.148,210,0.973,216,1.509,227,1.595,233,2.858,242,1.082,251,0.998,252,0.985,274,0.734,277,1.843,283,0.764,286,1.166,298,2.266,317,2.148,321,2.298,324,2.645,376,1.595,406,2.57,423,1.767,426,1.293,427,1.595,439,1.13,443,3.207,461,1.436,486,1.373,505,3.755,514,2.502,521,2.801,546,1.646,603,2.2,610,1.269,611,1.767,614,1.225,623,1.595,627,1.702,673,1.185,731,1.55,747,2.277,764,1.702,765,2.105,819,1.646,824,1.767,851,1.702,921,1.509,1013,1.767,1041,1.767,1131,1.646,1194,2.2,1215,1.011,1235,2.603,1237,1.903,1240,1.373,1269,1.767,1272,2.067,1290,3.056,1293,3.496,1315,1.595,1344,2.645,1367,1.934,1387,1.767,1449,1.767,1543,1.702,1588,2.048,1594,1.595,1599,1.702,1620,5.226,1666,2.2,1694,1.702,1807,2.048,1808,1.843,1860,1.702,1882,1.843,1892,1.843,1928,2.2,1963,1.843,1970,2.801,2017,3.325,2035,3.915,2049,2.048,2056,1.843,2081,1.843,2094,2.2,2193,1.934,2197,4.369,2201,3.396,2251,2.2,2252,4.675,2253,3.649,2260,4.675,2261,1.934,2269,4.675,2277,3.649,2290,2.048,2301,2.432,2302,4.032,2303,4.032,2304,2.432,2305,2.432,2306,2.432,2307,2.432,2308,2.432,2309,2.2,2310,2.432,2311,2.432,2312,2.432,2313,2.048,2314,2.432,2315,2.432,2316,2.432,2317,2.432,2318,2.432,2319,2.432,2320,4.032,2321,2.432,2322,2.432,2323,2.432,2324,4.032,2325,2.432,2326,2.432,2327,2.432,2328,2.432,2329,2.432,2330,2.048,2331,2.432,2332,2.432,2333,2.048]],["t/563",[0,1.53,1,4.102,3,3.124,4,3.55,5,1.814,6,2.516,7,1.939,9,2.31,11,1.031,18,3.449,21,2.478,35,0.98,37,2.775,42,2.341,69,2.878,92,3.358,96,4.102,101,3.196,102,2.681,134,1.906,211,1.46,425,1.906,545,3.449,592,2.279,762,2.586,1171,3.789,1215,2.25,1237,2.554,1260,4.897,1272,2.775,1280,2.775,1521,3.196,1549,5.196,1587,4.102,1594,3.55,1601,3.663,1602,4.304,1668,4.557,1749,4.557,2008,5.625,2017,2.994,2145,4.102,2148,4.557,2271,4.897,2334,4.897]],["t/565",[0,1.537,6,2.962,13,2.063,31,3.968,76,3.055,146,3.326,178,4.1,285,5.765,302,2.684,335,5.067,536,4.631,639,5.765,692,5.794,734,4.461,788,5.428,814,3.599,978,4.631,1025,5.765,1300,4.829,1680,5.366,1717,6.582,2313,5.366,2335,6.372,2336,5.765,2337,5.366,2338,5.765]],["t/567",[0,1.17,5,1.922,6,2.741,7,1.254,39,3.656,54,3.658,55,2.389,76,3.771,146,3.078,156,3.404,170,2.181,178,2.921,179,2.032,287,5.716,330,2.517,369,3.136,397,4.285,411,2.275,436,4.469,439,2.741,446,3.567,545,3.758,583,4.689,605,4.285,642,3.868,678,4.128,788,4.644,828,5.335,845,3.758,952,4.965,976,4.689,1518,3.758,1614,4.469,1670,5.96,1768,4.285,1871,4.689,2248,5.335,2339,5.335,2340,4.965]],["t/569",[0,1.53,37,4.541,44,5.969,55,2.052,58,0.597,59,2.468,141,3.7,156,2.924,170,1.404,178,4.051,202,3.025,242,3.638,282,2.552,287,3.681,303,2.509,330,2.162,369,2.694,446,3.064,455,3.228,612,3.839,735,3.142,788,4.829,790,5.969,845,3.228,890,4.028,1584,4.583,1599,3.546,1667,3.839,1727,3.681,1766,4.028,1947,3.681,2204,3.839,2313,4.265,2338,4.583,2341,7.089,2342,5.065,2343,5.065,2344,5.065,2345,7.089,2346,5.065,2347,5.065,2348,5.065,2349,5.065,2350,6.414,2351,5.065]],["t/571",[0,1.464,6,2.499,7,1.144,13,1.74,15,2.914,37,4.327,58,0.634,59,2.619,170,2.34,178,4.181,296,6.712,303,2.663,411,2.074,425,1.893,439,2.499,521,2.914,612,6.887,785,4.526,788,5.812,812,2.806,845,3.426,945,3.906,1169,3.174,1523,5.379,1654,4.275,1798,4.074,1801,4.074,2270,4.526,2339,6.684,2340,4.526,2352,5.375,2353,4.864,2354,6.684,2355,4.864,2356,5.375]],["t/573",[0,1.464,14,1.539,42,1.828,49,2.958,58,0.871,59,2.059,99,4.083,106,2.556,122,2.026,140,2.958,141,3.856,144,2.387,146,3.249,156,3.592,168,3.31,170,1.726,178,4.304,221,3.36,234,3.558,242,1.88,292,5.241,295,2.86,296,3.36,299,2.86,301,2.129,418,3.592,521,3.374,545,2.693,568,7.374,575,3.202,578,3.823,782,3.071,788,5.367,843,3.071,869,2.693,870,4.584,890,3.36,928,3.558,1068,2.495,1470,5.241,1593,2.86,1629,3.558,1768,4.523,1801,3.202,2241,3.558,2337,3.558,2350,3.823,2354,5.631,2357,6.224,2358,4.226,2359,6.224,2360,6.224,2361,4.226,2362,3.823,2363,4.226,2364,6.224,2365,4.226,2366,4.226,2367,4.226]],["t/575",[0,1.392,7,1.227,13,1.867,43,2.857,58,0.68,81,3.784,113,4.196,178,4.335,200,2.279,202,2.462,245,2.681,287,4.191,292,4.857,301,2.906,321,2.566,430,4.857,610,3.011,788,5.168,805,4.857,845,3.676,864,3.011,865,5.218,950,4.857,952,4.857,1037,5.218,1203,4.587,1315,3.784,1597,4.587,1845,3.784,1905,4.857,2212,4.857,2264,5.218,2270,4.857,2287,4.587,2337,6.525,2340,4.857,2353,5.218,2368,5.767,2369,5.767,2370,5.767]],["t/577",[0,1.394,130,2.128,131,0.889,141,3.466,302,2.796,303,3.289,322,4.21,336,3.289,425,2.338,427,4.356,597,4.356,618,3.466,732,4.012,1192,5.67,1235,3.345,1286,3.75,1287,4.119,1603,4.119,1917,4.493,1929,6.177,1954,5.032,2081,5.032,2249,6.008,2371,6.008,2372,5.591]],["t/579",[0,0.959,5,1.283,8,0.991,10,3.677,11,0.643,37,1.731,38,1.763,39,1.57,45,2.155,47,2.995,107,2.215,129,4.422,130,2.524,131,1.054,132,2.215,141,3.364,148,1.673,150,1.524,202,2.241,218,1.57,267,2.559,268,3.101,274,1.02,282,1.701,287,2.454,299,2.285,303,1.673,309,1.831,322,3.601,330,1.441,412,2.095,425,2.27,447,2.095,455,2.152,484,1.619,521,1.831,546,2.285,592,1.422,608,2.559,610,1.763,618,3.364,645,2.215,655,3.564,674,1.701,711,2.095,731,2.152,757,2.285,845,2.152,1038,2.844,1105,2.686,1179,1.868,1192,3.177,1215,2.183,1235,4.2,1239,2.686,1240,1.907,1270,1.763,1287,2.095,1381,2.454,1497,2.686,1516,3.056,1555,2.559,1572,2.215,1595,2.454,1596,4.422,1603,2.095,1667,2.559,1682,2.844,1694,2.364,1697,4.422,1719,2.559,1742,2.454,1811,2.215,1896,4.422,1911,3.817,1916,3.056,1917,2.285,1920,3.056,1929,4.683,1970,1.831,2030,2.686,2056,2.559,2085,2.686,2148,2.844,2202,3.98,2279,3.056,2300,3.056,2372,2.844,2373,3.056,2374,3.377,2375,3.056,2376,3.377,2377,3.377,2378,3.377,2379,3.377,2380,3.377,2381,3.377,2382,3.377,2383,3.377,2384,5.252,2385,3.377,2386,3.377,2387,3.377]],["t/581",[45,1.467,47,1.662,97,2.919,133,1.742,134,1.259,150,1.614,231,1.978,321,2.442,332,4.144,436,4.16,440,4.16,505,2.599,514,2.218,521,1.939,570,1.833,674,2.765,734,2.503,772,3.843,862,2.844,869,2.279,872,4.382,1119,6.012,1136,2.503,1138,4.365,1179,1.978,1191,4.365,1208,3.011,1235,3.775,1265,2.844,1275,2.71,1304,2.844,1310,3.235,1880,3.011,1917,2.42,1929,6.974,1970,3.622,1979,4.966,2152,3.235,2293,6.044,2309,3.235,2330,4.622,2388,6.68,2389,6.68,2390,5.489,2391,3.235,2392,3.576,2393,3.576,2394,3.576,2395,3.576,2396,3.576,2397,3.576,2398,3.576,2399,3.235,2400,3.235,2401,3.235,2402,4.966,2403,3.576,2404,3.576,2405,3.576,2406,4.966,2407,3.576,2408,3.576,2409,3.235,2410,3.576,2411,3.576,2412,5.489,2413,3.576,2414,5.489,2415,3.576,2416,3.576,2417,3.576,2418,3.576,2419,3.235,2420,3.576,2421,3.576,2422,3.576,2423,3.576,2424,3.235,2425,3.576,2426,3.576,2427,3.576,2428,3.235,2429,3.235,2430,3.235,2431,3.576,2432,3.576,2433,4.966,2434,3.576]],["t/583",[0,1.22,7,0.963,13,0.656,31,2.17,35,0.969,38,1.058,45,1.857,47,1.608,58,0.708,130,1.45,131,0.935,132,2.269,170,0.562,202,1.476,211,1.885,218,0.942,226,1.099,236,1.473,253,1.811,257,0.643,268,1.197,274,0.612,282,1.021,289,1.536,302,1.906,303,1.004,317,0.842,322,1.713,324,1.329,332,1.257,340,2.269,413,2.621,418,1.17,423,1.473,425,1.218,427,3.51,436,2.621,437,1.257,440,4.055,446,1.226,456,2.737,468,1.611,521,1.875,531,1.257,546,2.341,572,1.419,592,1.457,610,3.136,611,2.514,618,1.806,637,1.997,655,1.913,673,0.987,691,1.291,711,1.257,728,1.371,731,2.205,732,0.956,762,1.864,765,1.058,783,1.291,872,3.51,955,2.913,978,1.473,1013,1.473,1038,1.706,1105,1.611,1119,1.371,1132,1.536,1179,2.959,1192,1.226,1193,1.954,1203,1.611,1214,1.121,1235,4.69,1247,1.611,1270,1.058,1286,1.954,1294,3.599,1344,1.329,1476,1.833,1480,1.833,1502,3.811,1572,2.269,1578,1.611,1589,1.833,1599,1.419,1603,2.808,1608,1.833,1648,1.706,1657,1.611,1667,1.536,1697,1.706,1719,1.536,1723,1.611,1742,1.473,1748,1.706,1808,1.536,1842,1.833,1880,1.706,1882,1.536,1896,1.706,1917,3.063,1926,4.095,1927,1.833,1929,4.366,1936,1.611,1947,1.473,1954,2.621,1963,1.536,1970,2.454,2070,2.913,2081,1.536,2085,1.611,2101,1.419,2151,1.833,2202,2.621,2211,1.833,2226,1.833,2290,1.706,2294,3.13,2296,1.833,2330,1.706,2336,1.833,2371,1.833,2372,1.706,2373,1.833,2375,1.833,2391,3.13,2399,1.833,2400,1.833,2401,1.833,2402,3.13,2406,1.833,2409,1.833,2419,1.833,2424,1.833,2428,4.095,2429,1.833,2430,3.13,2433,1.833,2435,1.833,2436,2.026,2437,2.026,2438,2.026,2439,3.459,2440,2.026,2441,2.026,2442,1.706,2443,2.026,2444,2.026,2445,2.026,2446,2.026,2447,2.026,2448,1.833,2449,2.026,2450,2.026,2451,2.026,2452,3.459,2453,2.026,2454,1.611,2455,3.459,2456,2.026,2457,3.459,2458,4.525,2459,2.026,2460,2.026,2461,3.459,2462,1.833,2463,2.026,2464,2.026,2465,2.026]],["t/585",[0,1.427,1,4.159,6,2.551,7,1.815,8,1.61,11,1.045,16,2.813,31,3.592,35,0.993,39,2.551,130,1.758,131,1.003,156,3.167,170,1.521,186,3.167,196,3.319,217,3.713,218,2.551,234,4.621,257,2.377,258,3.24,268,3.24,278,3.319,472,3.713,484,2.631,583,4.364,592,2.311,763,2.342,836,3.988,1549,3.841,1579,3.988,1656,4.364,1766,4.364,1845,3.6,1902,4.965,2466,8.531,2467,5.487,2468,6.784,2469,4.965,2470,5.487,2471,5.487,2472,4.621,2473,4.965,2474,5.487]],["t/587",[814,5.07]],["t/589",[16,2.315,24,2.357,31,2.165,131,1.245,179,1.556,219,3.802,268,2.666,278,2.731,437,2.801,455,4.163,457,2.55,504,2.962,605,3.281,614,2.275,732,2.131,757,3.056,772,4.573,798,6.112,811,3.591,940,3.591,949,4.285,1131,3.056,1132,3.422,1293,3.056,1304,3.591,1523,2.878,1552,3.056,1572,2.962,1573,4.085,1644,3.161,1685,4.747,1714,4.085,1763,6.104,1765,3.591,1811,2.962,1815,4.085,1963,3.422,2080,5.91,2109,3.591,2187,5.501,2199,5.817,2200,3.422,2261,3.591,2454,3.591,2475,3.802,2476,4.515,2477,6.104,2478,7.481,2479,4.515,2480,4.515,2481,4.515,2482,4.515,2483,4.515,2484,4.515,2485,4.515,2486,6.532,2487,4.515]],["t/591",[16,4.942,34,5.053,35,1.475,51,4.927,116,4.416,441,4.416,2488,6.859,2489,8.145,2490,6.859]],["t/593",[5,2.204,7,1.303,31,2.937,35,1.109,116,4.373,252,2.482,268,3.617,315,2.205,440,6.113,441,4.373,609,3.388,614,3.086,665,4.871,674,3.086,798,4.451,854,4.288,872,5.291,1171,4.288,1235,3.086,1251,3.8,1577,4.145,1651,4.642,1950,4.642,1976,5.158,2020,4.451,2146,5.542,2149,5.158,2468,4.871,2477,4.871,2478,4.451,2490,5.158,2491,6.125,2492,6.125,2493,6.125,2494,5.542,2495,5.542]],["t/595",[31,2.668,35,1.007,58,0.656,193,5.732,286,3.626,303,2.756,358,3.948,566,4.686,590,3.895,655,3.078,798,5.497,981,6.455,1055,5.035,1093,5.035,1146,3.65,1171,3.895,1240,4.272,1285,4.217,1656,6.015,1765,4.425,2199,5.732,2200,4.217,2477,6.834,2496,5.035,2497,7.564,2498,6.844,2499,5.564,2500,5.564,2501,5.564,2502,5.564,2503,5.035,2504,5.564,2505,5.564,2506,7.564,2507,7.564,2508,5.564,2509,5.564,2510,4.425,2511,5.564]],["t/597",[16,3.682,34,4.456,35,1.3,51,4.345,91,3.444,116,3.894,123,6.499,245,3.339,316,2.986,441,3.894,442,6.049,727,5.444,798,5.22,1171,5.028,1607,5.028,1712,6.499,1723,5.712,2468,5.712,2490,6.049,2496,6.499,2512,7.183,2513,7.183,2514,7.183]],["t/599",[0,1.089,1,3.152,3,2.401,4,2.728,6,1.933,7,2.085,9,1.775,11,1.394,16,2.132,35,1.114,101,2.456,102,2.06,130,1.971,131,1.21,172,3.72,231,2.3,251,1.707,253,3.741,255,2.791,257,1.951,282,2.095,287,3.022,302,1.752,389,2.516,452,3.307,484,4.7,495,4.035,541,3.307,543,2.912,592,3.806,593,5.18,762,3.148,765,2.171,787,2.997,812,3.211,814,2.349,864,2.171,1123,2.912,1215,1.729,1272,2.132,1521,2.456,1587,3.152,1655,3.152,1668,3.502,1754,3.307,1917,4.163,2187,3.502,2362,3.763,2515,4.159,2516,3.763,2517,4.159]],["t/601",[0,1.172,2,3.439,6,2.199,34,4.191,35,1.427,38,2.47,47,2.199,81,3.104,112,3.984,116,2.565,193,3.586,195,2.565,278,2.862,317,1.967,324,3.104,358,2.47,392,3.763,432,3.104,441,2.565,562,3.016,605,3.439,614,3.403,665,3.763,707,4.281,727,3.586,762,2.354,798,4.909,921,2.936,949,3.104,1068,2.794,1136,3.312,1215,1.967,1285,3.586,1303,3.586,1470,3.984,1475,3.312,1579,3.439,1599,3.312,1603,2.936,1606,3.439,1632,3.984,1670,3.586,1743,6.112,1766,5.372,2020,3.439,2109,3.763,2199,5.971,2200,3.586,2462,4.281,2475,3.984,2477,6.834,2478,5.726,2495,4.281,2498,4.281,2510,3.763,2518,4.281,2519,4.732,2520,4.732,2521,4.732,2522,6.112,2523,4.732,2524,4.732]],["t/603",[0,0.858,7,1.227,11,1.782,31,2.765,55,2.337,134,2.031,148,2.857,227,3.784,251,3.591,252,2.337,253,2.308,257,1.83,258,3.406,269,3.067,314,3.257,336,2.857,426,3.067,465,4.687,484,4.196,541,4.587,543,4.038,592,3.686,735,3.578,762,2.009,763,2.462,787,2.81,793,3.676,808,4.587,812,4.045,813,4.857,856,4.857,1303,4.371,1845,5.083,2488,4.857,2525,5.218,2526,5.218,2527,5.767,2528,5.767]],["t/605",[7,1.497,23,3.271,31,1.866,45,1.597,69,3.114,91,1.866,105,4.656,128,2.299,134,2.062,152,1.809,156,2.247,186,2.247,196,2.355,231,2.153,251,2.402,257,1.857,278,2.355,280,2.829,281,3.096,301,1.961,443,3.096,484,3.374,592,3.297,614,2.95,691,2.481,711,2.415,732,1.837,734,2.725,763,1.661,764,2.725,765,2.032,814,2.198,836,2.829,853,2.95,940,3.096,947,2.829,1065,3.278,1105,4.656,1188,4.93,1237,1.837,1240,4.421,1270,2.032,1277,4.656,1287,3.632,1325,2.95,1328,2.95,1456,3.096,1483,2.829,1523,2.481,1578,3.096,1672,4.656,1692,3.096,1727,5.114,1737,3.096,1768,2.829,1771,4.656,1830,3.278,1841,3.522,2101,2.725,2206,5.596,2468,4.656,2473,3.522,2478,4.255,2525,3.522,2526,3.522,2529,7.704,2530,4.656,2531,6.361,2532,5.855,2533,3.522,2534,6.367,2535,3.522]],["t/607",[7,1.367,11,1.224,34,3.985,76,3.08,94,5.109,148,3.182,152,2.986,196,3.886,231,3.553,233,3.553,301,3.236,314,3.628,439,2.986,484,3.989,592,2.705,812,3.353,853,4.868,854,4.497,947,4.668,1270,3.353,1328,4.868,1672,5.109,1692,5.109,1727,4.668,1771,6.617,1845,4.214,1914,4.868,1974,6.306,2191,5.109,2529,8.22]],["t/609",[102,3.658,618,5.36,765,5.36,1188,6.218,1528,5.366,1771,5.872,2206,5.872,2529,7.651,2530,5.872,2536,7.384,2537,7.384,2538,7.384,2539,7.384]],["t/611",[7,0.845,9,3.04,37,2.036,49,2.78,91,1.904,95,3.344,102,1.967,105,6.287,210,1.589,218,3.31,252,1.609,253,1.589,267,3.009,280,2.886,317,3.286,410,2.886,411,1.532,443,3.158,484,3.415,486,2.243,543,2.78,562,2.531,581,3.344,585,3.593,592,3.565,609,2.196,611,2.886,642,2.605,710,3.344,732,1.874,757,2.687,787,1.935,812,3.102,873,3.158,1132,4.504,1222,2.886,1226,2.687,1240,3.356,1287,2.464,1325,3.009,1456,4.726,1483,2.886,1520,2.78,1521,2.345,1552,2.687,1603,2.464,1607,2.78,1638,3.158,1686,3.593,1727,4.319,1737,6.287,1742,2.886,1811,2.605,1860,2.78,2101,2.78,2231,3.593,2287,3.158,2469,3.593,2472,3.344,2488,3.344,2494,3.593,2522,7.153,2531,6.733,2533,3.593,2534,5.377,2540,5.943,2541,5.943,2542,3.971,2543,3.971,2544,3.971,2545,3.971,2546,3.971,2547,3.971,2548,3.971,2549,3.971,2550,3.971,2551,3.971]],["t/613",[9,2.907,35,1.233,37,3.492,195,4.683,275,4.022,316,2.831,317,2.831,454,3.215,618,5.208,765,5.208,1193,4.879,1217,7.816,1741,5.736,2056,5.162,2531,5.162,2552,6.811,2553,6.811,2554,6.811,2555,6.811,2556,6.811]],["t/615",[58,0.455,80,2.529,91,1.848,95,3.246,113,2.786,122,2.786,130,1.235,141,2.012,242,1.715,251,1.582,283,1.211,286,1.848,307,1.715,317,1.602,410,2.801,411,1.487,412,2.391,446,4.711,484,4.766,486,2.177,552,2.276,564,4.622,569,3.246,592,3.953,609,2.132,610,2.012,616,2.921,734,2.699,763,2.986,770,2.391,787,2.832,812,2.012,843,2.801,1123,4.069,1132,4.404,1222,2.801,1263,3.246,1287,2.391,1303,2.921,1397,3.246,1456,5.563,1493,4.622,1523,2.457,1528,2.801,1575,3.246,1598,2.801,1685,4.224,1691,3.246,1733,5.563,1765,3.065,1861,3.246,1947,2.801,2049,3.246,2111,3.488,2149,3.246,2191,3.065,2255,4.894,2261,3.065,2334,3.488,2478,6.384,2531,4.404,2557,3.855,2558,3.855,2559,3.855,2560,3.855,2561,3.488,2562,3.855,2563,3.855,2564,5.812,2565,3.855,2566,3.855,2567,5.812,2568,3.855,2569,3.855,2570,3.855]],["t/617",[37,3.971,128,4.574,249,6.16,317,3.22,457,4.375,618,4.883,765,4.883,772,5.423,2478,7.303,2571,7.746,2572,7.746]],["t/619",[11,1.8,23,3.994,54,4.19,146,3.525,148,3.345,218,3.139,293,4.43,369,3.591,454,3.187,484,4.119,592,2.844,763,2.882,791,6.11,812,3.525,853,5.118,980,5.118,1277,6.832,1292,5.687,1611,5.687,1727,4.908,2002,4.728,2518,6.11,2573,6.753,2574,6.11,2575,6.753]],["t/621",[3,4.385,11,1.447,23,3.531,58,0.896,69,4.04,425,2.676,618,4.826,765,4.826,1215,3.158,1277,6.042,1598,5.521,2069,6.397,2574,6.874,2576,7.597,2577,7.597]],["t/623",[7,1.681,35,1.43,278,4.779,284,4.779,302,3.327,335,6.283,752,5.183,814,4.462,1770,5.036,2017,4.37,2287,6.283,2454,6.283,2475,6.653]],["t/625",[0,0.884,7,1.89,9,2.536,11,1.506,16,3.046,51,4.781,53,4.159,141,3.101,251,2.438,253,2.377,255,2.265,257,1.885,278,3.593,349,4.02,376,3.897,470,4.725,484,2.848,495,3.897,618,4.943,735,3.686,765,4.943,808,4.725,814,3.355,852,4.725,1737,4.725,1845,3.897,2020,4.317,2110,8.037,2578,5.941,2579,5.941,2580,5.941,2581,5.941,2582,5.941,2583,5.941]],["t/627",[50,5.948,58,1.253,84,3.262,200,2.33,245,2.741,341,2.33,426,3.136,570,4.032,609,3.262,637,3.404,789,5.335,812,3.078,814,3.33,866,4.469,1280,5.501,1414,4.689,1843,5.335,1844,5.335,1992,4.965,2584,5.897,2585,5.897,2586,4.965,2587,7.865,2588,5.335]],["t/629",[50,3.886,58,0.757,119,6.46,152,2.986,172,5.582,1280,3.293,1286,3.628,1477,4.497,1638,5.109,1643,4.347,1845,4.214,1846,8.832,1847,8.35,1848,5.812,1849,7.006,1850,4.868,1851,5.812,1852,5.812,1853,5.812,1854,5.812,1855,5.812,1856,5.812,1857,5.812,1858,5.109,1859,5.812,1860,4.497]],["t/631",[13,1.735,19,1.777,21,1.587,58,0.772,74,3.751,89,1.777,170,0.961,178,1.717,196,2.096,213,1.353,245,1.611,341,2.913,349,3.626,425,1.221,426,2.85,439,2.491,454,2.529,457,1.957,470,2.756,476,2.919,529,2.919,531,2.15,545,3.415,570,3.359,673,3.192,674,2.7,692,2.426,782,2.519,793,2.209,812,1.809,845,2.209,885,2.905,921,2.15,980,2.627,1041,2.519,1045,3.136,1065,2.919,1164,3.136,1192,2.096,1226,2.345,1247,2.756,1280,4.776,1300,2.627,1319,2.756,1406,2.756,1497,2.756,1555,2.627,1604,2.756,1609,2.274,1615,2.756,1643,3.626,1644,2.426,1708,3.136,1753,2.627,1823,2.756,1832,2.919,1850,4.965,1861,4.512,1866,2.627,1870,3.136,1901,3.136,1992,2.919,2020,2.519,2160,2.919,2204,2.627,2228,4.261,2241,2.919,2510,2.756,2561,3.136,2589,5.517,2590,4.848,2591,5.359,2592,5.927,2593,5.359,2594,3.466,2595,3.466,2596,3.466,2597,3.466,2598,3.466,2599,4.848,2600,3.466,2601,3.136,2602,3.466,2603,4.261,2604,2.756,2605,3.466,2606,3.136,2607,6.207,2608,2.919,2609,3.466,2610,3.466,2611,3.466,2612,3.466,2613,5.359,2614,5.359,2615,3.466]],["t/633",[17,1.996,19,1.996,43,3.486,55,1.577,58,0.459,69,2.07,84,2.153,89,3.002,100,5.297,117,3.176,155,1.866,160,2.032,178,3.486,191,2.11,200,1.538,245,3.271,279,2.829,286,1.866,300,1.732,330,1.661,426,3.742,430,3.278,439,1.809,545,2.481,570,3.002,597,2.554,614,2.95,673,3.429,692,2.725,698,3.096,731,2.481,732,1.837,783,3.732,812,2.032,837,5.114,845,2.481,1013,2.829,1131,3.962,1160,2.634,1247,4.656,1280,4.303,1300,4.437,1717,3.096,1753,4.437,1801,4.437,1823,4.656,1933,4.93,1934,3.522,1944,3.522,1947,5.114,2009,3.522,2095,3.096,2204,4.437,2333,3.278,2355,5.297,2448,3.522,2510,3.096,2589,3.278,2590,3.522,2601,3.522,2607,4.93,2616,8.393,2617,3.893,2618,3.893,2619,3.893,2620,3.893,2621,5.855,2622,3.893,2623,3.893,2624,3.893,2625,3.893,2626,3.893,2627,3.893,2628,3.893,2629,3.893,2630,3.893]],["t/635",[14,2.283,45,2.573,50,3.793,58,0.739,134,2.209,144,3.542,172,3.793,202,2.676,220,3.273,245,2.915,341,3.237,424,3.703,439,2.915,512,3.89,674,3.159,947,4.557,1068,3.703,1280,4.199,1497,4.987,1543,4.39,1621,7.411,1643,4.244,1888,5.674,1907,5.281,1908,5.281,1917,4.244,1947,4.557,2631,6.271,2632,8.191,2633,5.674,2634,6.271,2635,8.191,2636,6.271,2637,6.271]],["t/637",[9,2.082,42,2.11,50,2.95,58,0.945,89,3.539,170,1.352,245,2.267,341,2.728,369,2.594,432,4.528,439,4.437,570,3.539,757,6.9,812,2.546,824,3.545,921,4.283,1197,3.697,1251,3.026,1280,5.412,1358,4.107,1811,6.689,1823,3.879,1840,4.413,1866,3.697,1899,4.107,2020,3.545,2095,3.879,2228,3.879,2333,4.107,2586,4.107,2589,4.107,2638,4.878,2639,6.903,2640,4.878,2641,4.413]],["t/639",[13,1.789,50,3.342,58,0.888,68,5,274,1.669,282,2.784,341,2.184,416,4.653,425,2.651,437,3.428,439,3.499,529,4.653,531,3.428,545,3.522,711,3.428,1068,3.263,1192,3.342,1193,3.121,1226,3.739,1280,4.713,1439,3.522,1798,4.188,1850,4.188,1866,4.188,1871,4.394,1903,7.747,2082,5,2234,5,2259,4.653,2516,5,2530,4.394,2603,4.394,2604,4.394,2641,5,2642,4.653,2643,5.526,2644,5.526,2645,5.526,2646,5.526,2647,5.526,2648,5.526,2649,6.811,2650,4.653,2651,5.526,2652,5.526,2653,5.526,2654,5.526]],["t/641",[19,3.649,41,5.395,50,4.305,58,1.047,245,4.128,341,2.813,425,2.507,545,4.537,1280,4.963,1598,5.173,2160,5.994,2503,6.44,2604,5.661,2608,5.994,2649,6.44,2650,5.994,2655,7.118,2656,7.118,2657,7.118,2658,7.118]],["t/643",[19,3.682,23,3.339,50,5.402,55,2.91,58,1.053,113,3.444,225,5.22,227,4.712,512,4.456,622,5.028,783,4.578,793,4.578,812,3.749,1160,4.861,1280,5.213,1607,5.028,1725,5.712,1816,5.712]],["t/645",[19,3.933,50,4.64,58,0.904,226,4.159,349,5.191,1280,3.933,1507,6.94,1593,5.191,2586,6.459,2603,7.395,2659,6.94,2660,6.94,2661,6.94,2662,6.94,2663,6.94]],["t/647",[6,1.341,13,0.934,24,1.505,41,3.513,50,2.804,55,1.878,58,0.685,65,1.703,69,1.534,89,1.479,134,1.016,144,1.629,151,2.61,172,2.804,205,2.096,216,2.876,217,1.952,225,3.369,226,1.564,245,2.155,251,1.183,252,1.169,269,2.465,282,2.335,288,2.294,302,1.215,316,1.199,341,1.14,369,1.534,425,1.633,428,5.045,436,2.186,437,1.789,439,2.155,441,1.564,486,1.629,521,1.564,536,4.224,545,1.838,607,2.61,621,1.789,637,1.665,785,2.429,790,2.429,799,2.294,885,2.513,1041,4.224,1160,3.137,1165,2.429,1199,2.61,1208,2.429,1280,3.413,1475,2.019,1502,2.429,1523,1.838,1578,2.294,1598,3.369,1603,2.876,1646,2.61,1703,2.294,1754,2.294,1761,2.61,1767,2.429,1768,2.096,1811,1.892,1845,1.892,1849,2.429,1858,2.294,1876,2.61,1879,2.61,1899,2.429,1911,2.096,2048,4.194,2053,2.61,2109,2.294,2177,4.194,2237,2.61,2242,2.61,2257,2.61,2435,2.61,2442,2.429,2454,2.294,2530,2.294,2531,2.186,2588,2.61,2603,2.294,2604,5.8,2606,2.61,2607,2.429,2608,2.429,2633,4.194,2642,2.429,2650,2.429,2659,5.259,2660,7.949,2661,4.194,2662,8.748,2664,2.884,2665,2.884,2666,4.636,2667,2.884,2668,5.259,2669,2.884,2670,2.884,2671,2.884,2672,2.884,2673,2.884,2674,2.884,2675,2.884,2676,2.884,2677,2.884,2678,2.884,2679,2.884,2680,2.884,2681,2.884,2682,2.884,2683,2.884,2684,2.884,2685,2.884,2686,2.884,2687,2.884,2688,2.884,2689,2.884,2690,2.884,2691,2.884,2692,2.884]],["t/649",[26,3.984,50,5.884,58,1.147,144,2.672,156,2.731,172,2.862,225,3.439,226,2.565,227,4.432,284,2.862,330,2.019,425,1.666,465,2.862,512,2.936,566,3.984,579,3.586,637,2.731,801,3.984,945,3.439,963,3.984,1041,3.439,1068,2.794,1165,3.984,1169,2.794,1280,5.19,1475,3.312,1515,3.586,1593,3.202,1603,4.191,1630,3.984,1702,3.984,1892,3.586,1904,4.281,1905,3.984,1906,4.281,1907,3.984,1908,3.984,1909,4.281,1917,3.202,2174,5.372,2442,3.984,2472,3.984,2535,4.281,2592,4.281,2599,4.281,2642,3.984,2663,4.281,2668,4.281,2693,6.756,2694,4.732,2695,4.732,2696,4.732,2697,4.732,2698,4.732,2699,4.732,2700,4.732]]],"invertedIndex":[["",{"_index":211,"t":{"18":{"position":[[212,1]]},"20":{"position":[[710,2],[806,2],[846,1]]},"28":{"position":[[101,1],[119,1],[139,2],[183,1],[232,3],[256,2],[306,2],[653,2],[696,3],[761,2],[820,1],[885,1],[951,2],[954,3]]},"30":{"position":[[88,2],[135,1],[200,1],[238,2],[241,3]]},"32":{"position":[[101,2],[279,1],[291,1],[311,2]]},"34":{"position":[[93,1],[124,1],[144,2],[189,1],[223,2],[277,1],[308,3],[326,1],[471,1],[517,2],[559,2],[607,3],[734,2],[783,1],[785,1],[816,2],[819,2],[890,1],[973,3],[991,1]]},"36":{"position":[[118,2],[180,1]]},"38":{"position":[[137,2],[187,1],[275,3],[279,2],[343,1],[387,2],[459,1],[489,3]]},"40":{"position":[[172,2],[219,1],[235,2],[238,1],[240,2],[320,2],[393,1],[460,2],[463,2],[501,1],[523,1],[525,1],[596,3],[611,1],[613,2],[661,1],[663,2],[893,2],[942,1],[944,1],[975,2],[978,2],[1054,1]]},"46":{"position":[[142,1],[160,1],[180,2],[244,1],[293,3]]},"48":{"position":[[154,1],[172,1],[192,2],[240,1],[304,3],[464,2],[524,1],[526,1],[702,2],[705,2],[757,1],[806,3],[867,2],[927,1],[929,1],[1105,2],[1119,1],[1146,2],[1188,1],[1245,2],[1259,1],[1293,1],[1320,2],[1323,3],[1327,2],[1345,1],[1367,2]]},"50":{"position":[[280,1],[298,1],[325,1],[344,1],[374,2],[412,1],[454,2],[506,1],[508,1],[545,2],[548,2],[597,1],[631,1],[648,1],[698,2],[701,2],[704,2],[707,3],[820,1],[830,1],[860,2],[909,1],[943,1],[960,1],[1035,2],[1038,2],[1041,2],[1044,3]]},"52":{"position":[[93,1],[111,1],[138,1],[150,1],[185,1],[213,1],[243,2],[303,1],[305,1],[481,2],[484,2],[536,1],[538,1],[575,2],[578,2],[644,1],[678,1],[718,1],[776,2],[779,2],[782,2],[785,3]]},"54":{"position":[[130,1],[148,1],[179,1],[228,3],[259,2]]},"62":{"position":[[301,1]]},"66":{"position":[[266,1],[305,1],[307,3]]},"70":{"position":[[188,1],[270,1],[272,3]]},"91":{"position":[[154,2],[192,1],[214,1],[216,1],[287,3],[302,1],[304,2],[352,1],[354,2],[562,1],[570,2],[573,2],[576,1],[582,1],[584,2],[636,1],[652,1],[657,1],[659,2],[749,2],[804,1],[806,1],[808,2],[908,1],[915,1],[930,1],[932,1],[934,2],[937,2]]},"97":{"position":[[169,1],[192,1],[227,2],[281,1],[422,1],[438,1],[483,2],[535,1],[581,2],[628,2],[669,3],[673,2],[745,1],[755,3],[889,1],[905,1],[950,2],[1002,1],[1047,2],[1145,2]]},"99":{"position":[[169,1],[204,1],[239,2],[308,1],[332,2],[417,1],[577,1],[593,1],[634,2],[683,1],[729,2],[776,2],[820,3],[824,2],[896,1],[906,3],[1058,1],[1074,1],[1115,2],[1164,1],[1207,2],[1305,2]]},"101":{"position":[[570,1],[605,1],[647,1],[689,1],[741,1],[779,1],[820,2],[880,2],[940,2],[1026,1],[1071,1],[1104,2],[1177,1],[1232,2],[1279,2],[1349,2],[1403,3],[1407,2],[1473,1],[1524,2],[1571,2],[1644,2],[1698,3],[1702,2],[1876,1],[1886,3],[1986,1],[1996,3],[2235,1],[2256,1],[2298,1],[2314,1],[2359,2],[2413,2],[2497,1],[2521,2],[2576,1],[2671,3],[2675,2],[2750,1],[2766,2],[2769,1],[2771,2],[2836,2],[2916,1],[2966,1],[3000,2],[3060,2],[3186,1],[3237,1],[3244,1],[3299,1],[3301,2]]},"103":{"position":[[460,1],[485,1],[513,2],[578,1],[621,1],[645,2],[707,1],[755,1],[781,2],[852,1],[908,1]]},"111":{"position":[[105,1],[124,1],[138,1],[187,1],[407,1],[503,1]]},"123":{"position":[[101,1],[119,1],[139,2],[183,1],[232,3]]},"125":{"position":[[92,1],[104,1],[124,2],[430,1],[487,1],[536,2],[578,1],[580,3]]},"127":{"position":[[99,1],[115,1],[135,2],[180,1],[214,2],[256,1]]},"131":{"position":[[458,2],[505,1],[521,2],[524,1],[526,2],[602,2],[605,2]]},"133":{"position":[[358,2],[401,1],[441,2],[514,1],[516,2],[563,1],[615,2],[618,1],[630,1],[641,2],[709,2],[712,2],[715,1]]},"136":{"position":[[158,1],[174,1],[194,2],[247,1],[249,1],[290,2],[293,2],[346,1],[348,1],[388,2],[391,2],[518,1]]},"138":{"position":[[187,1],[194,1],[214,2],[261,1],[263,3],[282,1],[298,2],[301,1],[331,2],[373,2],[428,2],[431,2],[470,2],[601,2],[640,1],[686,1],[726,2],[764,2],[890,1],[908,3]]},"140":{"position":[[150,2],[186,1],[216,1],[272,2],[322,1],[324,1],[338,1],[360,2],[363,2],[366,2],[493,1]]},"144":{"position":[[301,1],[448,1],[453,1],[596,1],[650,1]]},"150":{"position":[[66,1],[117,1]]},"160":{"position":[[244,1],[264,1],[286,2],[335,1],[337,1],[362,2],[426,2],[532,2],[577,1],[688,1],[698,1],[735,1],[737,2],[776,1],[801,1],[803,1],[816,2],[852,2],[915,2],[980,1]]},"162":{"position":[[151,1],[173,1],[196,1],[206,1],[235,1],[266,1],[355,1],[395,1],[441,1],[457,2],[540,1],[546,2],[549,1],[584,2],[587,2],[626,1],[651,1],[653,1],[666,2],[725,1],[775,1],[806,3],[824,1],[855,2],[917,1],[1052,2],[1107,1],[1115,2],[1118,2],[1121,2],[1131,1],[1133,2],[1253,2],[1256,1],[1419,3],[1583,2],[1668,3],[1672,1],[1674,1],[1961,1],[1979,1],[1997,1],[2077,1],[2090,1],[2139,1],[2155,1],[2233,1],[2248,1],[2328,1],[2345,1],[2416,1],[2431,1],[2480,1]]},"164":{"position":[[215,1],[230,1],[267,1],[269,2],[317,1],[324,1],[326,1],[357,3],[361,2],[416,1],[424,2],[427,2],[430,1],[442,2],[465,3],[480,2],[527,1],[560,1],[626,3],[630,2],[693,1],[743,1],[764,1],[766,1],[800,3],[804,2],[842,3],[849,1],[903,1],[910,1],[933,1],[935,2],[938,1]]},"166":{"position":[[201,1],[221,1],[258,1],[260,2],[311,1],[338,1],[340,1],[376,3],[380,2],[424,2],[427,1],[474,2],[477,1],[560,4],[565,2],[587,1]]},"168":{"position":[[230,1],[268,1],[305,1],[307,2],[352,1],[378,1],[380,1],[415,3],[419,2],[470,1],[497,1],[499,1],[535,3],[539,2],[589,2],[592,1],[612,1],[694,2],[697,1],[780,4],[785,2],[822,1],[994,1],[1051,1],[1100,2],[1142,1],[1144,3]]},"176":{"position":[[45,1],[142,1]]},"178":{"position":[[376,1],[399,1],[514,1],[540,1],[571,1],[696,1],[708,2],[891,1],[1069,1]]},"182":{"position":[[192,1],[226,1],[417,1],[513,1]]},"184":{"position":[[540,1],[563,1],[622,1],[949,1],[972,1],[1087,1],[1125,1]]},"186":{"position":[[295,1],[321,1],[378,1],[561,1],[587,1]]},"188":{"position":[[288,1],[311,1],[696,1],[715,1],[733,1]]},"192":{"position":[[357,1],[472,1]]},"196":{"position":[[400,1]]},"198":{"position":[[396,1]]},"210":{"position":[[1158,1]]},"214":{"position":[[178,1]]},"218":{"position":[[587,5],[684,1]]},"236":{"position":[[79,1],[125,1]]},"240":{"position":[[208,1],[246,1],[267,1],[352,2],[560,1]]},"242":{"position":[[172,1]]},"250":{"position":[[1005,1],[1020,1],[1082,1],[1294,1],[1309,1],[1355,1]]},"252":{"position":[[392,1],[618,1],[702,1],[779,1],[792,1],[819,1],[833,1],[850,1]]},"254":{"position":[[579,1],[606,1],[652,1],[686,1],[744,1],[933,1],[960,1],[1142,1],[1176,1],[1218,1],[1263,1]]},"256":{"position":[[749,1],[763,1],[812,1],[855,1],[910,1],[938,1],[1068,1],[1082,1],[1101,1],[1250,1],[1264,1],[1284,1],[1306,1]]},"258":{"position":[[304,1],[343,1],[535,1],[672,1]]},"262":{"position":[[235,1],[263,1]]},"280":{"position":[[74,1],[151,1],[406,1],[450,1],[459,2],[528,1],[586,2],[843,1]]},"290":{"position":[[482,1],[484,3],[488,1],[516,1],[518,3],[522,1],[524,2],[630,1],[665,1],[700,1],[705,1]]},"292":{"position":[[773,1],[849,1],[854,1]]},"430":{"position":[[138,1],[156,1],[187,1],[214,2],[310,1],[328,1],[359,1],[386,2],[450,2],[453,1],[495,1]]},"432":{"position":[[14,1],[32,1],[63,1],[100,1],[137,1],[139,3],[156,1],[174,1],[205,1],[246,1],[283,1],[285,3]]},"434":{"position":[[14,1],[32,1],[63,1],[100,1],[165,1],[167,3],[184,1],[202,1],[233,1],[274,1],[339,1],[341,3]]},"436":{"position":[[140,1],[158,1],[189,1],[260,3],[298,1],[316,1],[347,1],[388,1],[437,1],[439,3],[472,1],[490,1],[521,1],[562,1],[623,1],[625,3]]},"438":{"position":[[472,1],[490,1],[521,1],[558,1],[610,1],[612,3],[629,1],[647,1],[678,1],[719,1],[778,1],[780,3]]},"440":{"position":[[107,1]]},"442":{"position":[[579,1],[606,1],[641,1],[693,1],[731,1],[772,1],[886,1],[928,2]]},"530":{"position":[[769,1],[1772,1]]},"543":{"position":[[588,1]]},"557":{"position":[[1046,1],[1053,1]]},"559":{"position":[[200,1]]},"563":{"position":[[495,1]]},"583":{"position":[[2633,1],[2694,1],[2713,1],[2725,1],[2735,1],[2748,1],[2760,1]]}}}],["0",{"_index":331,"t":{"30":{"position":[[224,3]]},"162":{"position":[[1971,1]]},"164":{"position":[[469,2],[846,2]]},"206":{"position":[[42,1],[410,1]]},"210":{"position":[[1156,1]]},"432":{"position":[[124,3],[270,3]]},"436":{"position":[[412,3]]},"506":{"position":[[95,1]]},"545":{"position":[[674,1]]}}}],["0,1,2,3,4,5,6,7",{"_index":323,"t":{"28":{"position":[[678,17]]},"430":{"position":[[477,17]]},"442":{"position":[[910,17]]}}}],["0.0.0.0",{"_index":460,"t":{"48":{"position":[[399,8]]},"182":{"position":[[357,8]]},"188":{"position":[[531,9]]}}}],["0.007",{"_index":2026,"t":{"504":{"position":[[798,5]]}}}],["0.012",{"_index":2194,"t":{"539":{"position":[[97,5]]},"543":{"position":[[102,5]]},"559":{"position":[[1019,5]]}}}],["0.012*5",{"_index":2215,"t":{"543":{"position":[[580,7]]}}}],["0.0125",{"_index":2025,"t":{"504":{"position":[[791,6],[837,6]]}}}],["0.05",{"_index":2023,"t":{"504":{"position":[[764,4]]}}}],["0.06",{"_index":2198,"t":{"539":{"position":[[184,4]]},"543":{"position":[[590,4]]}}}],["0.1",{"_index":1813,"t":{"448":{"position":[[274,3]]}}}],["0.15",{"_index":2193,"t":{"539":{"position":[[34,4]]},"541":{"position":[[178,4]]},"559":{"position":[[1060,4]]},"561":{"position":[[1418,4]]}}}],["0.25",{"_index":2028,"t":{"504":{"position":[[844,4]]}}}],["0.4",{"_index":2006,"t":{"497":{"position":[[340,4]]},"499":{"position":[[233,4]]}}}],["0.5gb",{"_index":942,"t":{"154":{"position":[[440,5]]},"172":{"position":[[240,5]]},"232":{"position":[[591,5]]},"268":{"position":[[295,5]]}}}],["0.6",{"_index":1464,"t":{"268":{"position":[[109,5]]}}}],["0.75",{"_index":1980,"t":{"490":{"position":[[1259,4]]}}}],["000",{"_index":1034,"t":{"162":{"position":[[2191,5]]}}}],["007bff",{"_index":1042,"t":{"162":{"position":[[2451,8]]}}}],["01.ac",{"_index":1392,"t":{"250":{"position":[[1770,5]]},"258":{"position":[[561,5]]},"260":{"position":[[489,5]]}}}],["01.he",{"_index":2120,"t":{"530":{"position":[[951,5],[2023,5]]},"532":{"position":[[1081,5]]}}}],["06",{"_index":1137,"t":{"192":{"position":[[93,2]]},"196":{"position":[[102,2]]},"198":{"position":[[105,2]]}}}],["1",{"_index":321,"t":{"28":{"position":[[667,2],[898,2]]},"30":{"position":[[213,2],[228,2]]},"34":{"position":[[809,3]]},"36":{"position":[[251,2]]},"40":{"position":[[968,3]]},"138":{"position":[[669,3]]},"162":{"position":[[988,2],[2103,2],[2358,2]]},"182":{"position":[[223,2]]},"186":{"position":[[375,2]]},"224":{"position":[[585,1]]},"284":{"position":[[266,2]]},"290":{"position":[[667,2]]},"420":{"position":[[197,2]]},"430":{"position":[[466,2]]},"432":{"position":[[113,2],[128,2],[259,2],[274,2]]},"434":{"position":[[113,2],[287,2]]},"436":{"position":[[401,2],[416,2],[575,2]]},"438":{"position":[[571,2],[606,3],[732,2]]},"442":{"position":[[899,2]]},"488":{"position":[[270,1]]},"502":{"position":[[224,1],[244,1]]},"526":{"position":[[36,1]]},"528":{"position":[[230,2]]},"530":{"position":[[999,1],[1013,1],[1031,1],[1060,1],[1352,1],[1381,1],[1527,1],[1556,1],[2071,1],[2084,1],[2102,1],[2229,1],[2294,1],[2441,1],[2634,1],[2717,1],[2910,1]]},"547":{"position":[[577,1]]},"557":{"position":[[470,2],[1306,1]]},"561":{"position":[[859,1],[1366,1],[1951,1]]},"575":{"position":[[462,2]]},"581":{"position":[[33,3],[476,3]]}}}],["1%2fproto&pagesize=50&ascending=tru",{"_index":1500,"t":{"280":{"position":[[805,37]]}}}],["1.0.0.1",{"_index":1114,"t":{"184":{"position":[[789,8]]},"208":{"position":[[134,10]]},"222":{"position":[[197,10]]}}}],["1.1.1.1",{"_index":1113,"t":{"184":{"position":[[777,7]]},"208":{"position":[[122,11]]},"222":{"position":[[185,11]]}}}],["1.4",{"_index":2074,"t":{"526":{"position":[[289,3]]}}}],["1.6",{"_index":2024,"t":{"504":{"position":[[769,3]]}}}],["1.8",{"_index":2014,"t":{"502":{"position":[[254,4]]}}}],["1.9",{"_index":2015,"t":{"502":{"position":[[259,4]]}}}],["1/proto",{"_index":1496,"t":{"280":{"position":[[577,8]]}}}],["10",{"_index":1286,"t":{"224":{"position":[[398,2]]},"230":{"position":[[1350,2]]},"466":{"position":[[305,2]]},"497":{"position":[[137,3]]},"499":{"position":[[30,3]]},"504":{"position":[[552,2]]},"526":{"position":[[1220,3]]},"528":{"position":[[424,2]]},"530":{"position":[[1332,2],[2421,2],[2568,2]]},"532":{"position":[[1469,2],[1576,2],[1847,2]]},"537":{"position":[[409,2]]},"559":{"position":[[801,2]]},"577":{"position":[[286,2]]},"583":{"position":[[2569,2],[2783,2]]},"629":{"position":[[246,2]]}}}],["10,000",{"_index":1539,"t":{"292":{"position":[[747,6],[775,7],[842,6]]}}}],["10.000",{"_index":2184,"t":{"537":{"position":[[481,6]]}}}],["10.1",{"_index":2011,"t":{"502":{"position":[[232,5]]}}}],["10.3",{"_index":2012,"t":{"502":{"position":[[238,5]]}}}],["100",{"_index":1439,"t":{"256":{"position":[[1227,4]]},"497":{"position":[[325,4],[525,3]]},"499":{"position":[[218,4],[418,3]]},"504":{"position":[[571,3]]},"506":{"position":[[55,3]]},"532":{"position":[[1817,3]]},"537":{"position":[[324,3]]},"545":{"position":[[362,3]]},"549":{"position":[[21,3]]},"639":{"position":[[528,3]]}}}],["1000",{"_index":1269,"t":{"214":{"position":[[316,4],[413,4]]},"502":{"position":[[49,4]]},"504":{"position":[[338,4],[751,5]]},"553":{"position":[[32,4]]},"557":{"position":[[1079,4]]},"561":{"position":[[1725,4]]}}}],["10000",{"_index":2328,"t":{"561":{"position":[[1758,5]]}}}],["100k/day",{"_index":2238,"t":{"547":{"position":[[677,9]]}}}],["100kb",{"_index":2302,"t":{"561":{"position":[[188,6],[1609,5]]}}}],["100mbit",{"_index":2317,"t":{"561":{"position":[[833,8]]}}}],["100mpb",{"_index":2316,"t":{"561":{"position":[[819,7]]}}}],["100vh",{"_index":1020,"t":{"162":{"position":[[2046,6]]}}}],["107",{"_index":2404,"t":{"581":{"position":[[559,3]]}}}],["108",{"_index":2426,"t":{"581":{"position":[[671,3]]}}}],["10k",{"_index":2195,"t":{"539":{"position":[[130,3]]},"543":{"position":[[455,3]]},"547":{"position":[[340,3],[400,3]]}}}],["10kb",{"_index":2035,"t":{"506":{"position":[[367,4]]},"530":{"position":[[1089,4],[1410,4],[1585,4],[2323,4],[2663,4],[2939,4]]},"541":{"position":[[139,5]]},"553":{"position":[[330,4]]},"561":{"position":[[182,5],[1071,4],[1258,4]]}}}],["10mbp",{"_index":2460,"t":{"583":{"position":[[2622,6]]}}}],["10msg/sec",{"_index":2124,"t":{"530":{"position":[[1078,10],[1399,10],[1574,10],[2312,10],[2652,10],[2928,10]]}}}],["10px",{"_index":1029,"t":{"162":{"position":[[2133,5],[2206,5],[2227,5],[2274,5],[2390,5],[2410,5]]}}}],["11",{"_index":2151,"t":{"532":{"position":[[410,2]]},"583":{"position":[[2722,2]]}}}],["1100",{"_index":2142,"t":{"530":{"position":[[3776,4]]}}}],["119",{"_index":2417,"t":{"581":{"position":[[621,3]]}}}],["11m",{"_index":2132,"t":{"530":{"position":[[2392,5]]}}}],["12",{"_index":2330,"t":{"561":{"position":[[2049,3]]},"581":{"position":[[369,2],[691,2]]},"583":{"position":[[2745,2]]}}}],["123.123.123.123",{"_index":576,"t":{"70":{"position":[[223,18]]}}}],["1234",{"_index":574,"t":{"70":{"position":[[211,4]]}}}],["127.0.0.1",{"_index":534,"t":{"64":{"position":[[529,10]]},"218":{"position":[[96,9]]},"220":{"position":[[113,9]]},"256":{"position":[[315,10]]},"278":{"position":[[153,9]]}}}],["127.0.0.1:8080",{"_index":1279,"t":{"218":{"position":[[642,15]]}}}],["13",{"_index":2413,"t":{"581":{"position":[[599,2]]}}}],["130",{"_index":1323,"t":{"230":{"position":[[1257,3]]}}}],["137",{"_index":2405,"t":{"581":{"position":[[563,3]]}}}],["13:18:07.575+00:00",{"_index":2153,"t":{"532":{"position":[[416,18]]}}}],["14",{"_index":2584,"t":{"627":{"position":[[27,2]]}}}],["14400",{"_index":1448,"t":{"258":{"position":[[760,5]]}}}],["1459",{"_index":1818,"t":{"452":{"position":[[33,5]]}}}],["15",{"_index":1138,"t":{"192":{"position":[[96,2]]},"196":{"position":[[105,2]]},"198":{"position":[[108,2]]},"581":{"position":[[648,2],[856,2]]}}}],["1500m",{"_index":1324,"t":{"230":{"position":[[1278,6]]}}}],["150kb",{"_index":1969,"t":{"490":{"position":[[699,6]]},"541":{"position":[[151,6]]}}}],["15mbp",{"_index":2456,"t":{"583":{"position":[[2152,7]]}}}],["16",{"_index":1541,"t":{"292":{"position":[[851,2]]}}}],["160000",{"_index":1957,"t":{"490":{"position":[[364,6]]}}}],["160000/600",{"_index":1978,"t":{"490":{"position":[[1031,12]]}}}],["16:09:54.448+01:00",{"_index":1139,"t":{"192":{"position":[[99,18]]},"196":{"position":[[108,18]]},"198":{"position":[[111,18]]}}}],["17",{"_index":2430,"t":{"581":{"position":[[702,2]]},"583":{"position":[[2364,3],[2457,3]]}}}],["1727795042",{"_index":2464,"t":{"583":{"position":[[2890,10]]}}}],["18",{"_index":2461,"t":{"583":{"position":[[2710,2],[2732,2]]}}}],["1:1",{"_index":355,"t":{"34":{"position":[[1215,3]]}}}],["1kb",{"_index":2001,"t":{"497":{"position":[[175,3]]},"499":{"position":[[68,3]]},"502":{"position":[[78,3]]},"504":{"position":[[240,3]]},"506":{"position":[[353,3]]},"541":{"position":[[134,4]]}}}],["1lqrcbccb4np93f9",{"_index":1152,"t":{"196":{"position":[[245,16],[478,16]]}}}],["1msg/",{"_index":2003,"t":{"497":{"position":[[222,7]]},"499":{"position":[[115,7]]},"504":{"position":[[268,6]]},"506":{"position":[[100,7]]}}}],["1msg/10",{"_index":2224,"t":{"545":{"position":[[530,7]]}}}],["1px",{"_index":1022,"t":{"162":{"position":[[2061,3]]}}}],["2",{"_index":97,"t":{"6":{"position":[[830,1],[914,1]]},"30":{"position":[[231,2]]},"34":{"position":[[813,2]]},"36":{"position":[[299,2]]},"40":{"position":[[972,2]]},"162":{"position":[[1037,2]]},"178":{"position":[[717,4]]},"182":{"position":[[257,2]]},"186":{"position":[[432,2]]},"224":{"position":[[490,1]]},"290":{"position":[[702,2]]},"300":{"position":[[400,1]]},"432":{"position":[[131,2],[277,2]]},"436":{"position":[[419,2]]},"530":{"position":[[1318,1],[1744,2],[2407,1]]},"532":{"position":[[1894,2]]},"559":{"position":[[614,1]]},"581":{"position":[[279,3],[714,3]]}}}],["20",{"_index":1962,"t":{"490":{"position":[[414,2]]}}}],["2000",{"_index":2005,"t":{"497":{"position":[[264,4],[369,4]]},"499":{"position":[[157,4],[262,4]]}}}],["2023",{"_index":1136,"t":{"192":{"position":[[88,4]]},"196":{"position":[[97,4]]},"198":{"position":[[100,4]]},"530":{"position":[[3834,6]]},"532":{"position":[[405,4]]},"581":{"position":[[376,6]]},"601":{"position":[[127,5]]}}}],["2024",{"_index":1844,"t":{"464":{"position":[[38,4]]},"627":{"position":[[39,4]]}}}],["21",{"_index":2410,"t":{"581":{"position":[[590,2]]}}}],["210",{"_index":2019,"t":{"504":{"position":[[382,3],[779,4]]}}}],["21600",{"_index":1386,"t":{"250":{"position":[[1251,5]]},"258":{"position":[[492,5]]}}}],["22",{"_index":2431,"t":{"581":{"position":[[705,2]]}}}],["23",{"_index":2420,"t":{"581":{"position":[[639,2]]}}}],["232",{"_index":2088,"t":{"526":{"position":[[1134,3]]}}}],["25",{"_index":2128,"t":{"530":{"position":[[1507,2],[2697,2],[2844,2]]}}}],["250m",{"_index":2138,"t":{"530":{"position":[[3544,5]]}}}],["256",{"_index":2283,"t":{"559":{"position":[[362,3]]}}}],["25mbp",{"_index":1937,"t":{"486":{"position":[[1502,7]]}}}],["26",{"_index":2429,"t":{"581":{"position":[[694,2]]},"583":{"position":[[2298,3]]}}}],["263",{"_index":2325,"t":{"561":{"position":[[1314,3]]}}}],["266",{"_index":1964,"t":{"490":{"position":[[518,3],[1005,3],[1075,4]]}}}],["27",{"_index":2152,"t":{"532":{"position":[[413,2]]},"581":{"position":[[675,2]]}}}],["286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8",{"_index":1403,"t":{"252":{"position":[[394,64],[852,64],[940,64]]}}}],["2gb",{"_index":876,"t":{"142":{"position":[[257,3]]},"154":{"position":[[368,3]]},"172":{"position":[[168,3]]},"232":{"position":[[519,3]]},"268":{"position":[[223,3]]}}}],["2mbyte",{"_index":2232,"t":{"547":{"position":[[358,7]]}}}],["3",{"_index":332,"t":{"30":{"position":[[234,3]]},"34":{"position":[[798,2]]},"36":{"position":[[348,2]]},"40":{"position":[[957,2]]},"50":{"position":[[517,2],[531,2],[542,2]]},"52":{"position":[[547,2],[561,2],[572,2]]},"432":{"position":[[134,2],[280,2]]},"436":{"position":[[422,2]]},"530":{"position":[[1493,1],[2683,1]]},"581":{"position":[[389,3],[781,3],[827,1]]},"583":{"position":[[2114,4]]}}}],["3.85",{"_index":2267,"t":{"557":{"position":[[1048,4]]}}}],["30",{"_index":1275,"t":{"218":{"position":[[228,2]]},"256":{"position":[[565,3]]},"518":{"position":[[95,2]]},"526":{"position":[[755,2]]},"581":{"position":[[625,2]]}}}],["300",{"_index":1264,"t":{"214":{"position":[[174,3]]},"526":{"position":[[775,3]]}}}],["3000",{"_index":2222,"t":{"545":{"position":[[482,4]]}}}],["32",{"_index":1109,"t":{"184":{"position":[[331,2]]},"252":{"position":[[351,2],[389,2],[530,2],[712,2],[802,3],[816,2]]}}}],["33",{"_index":1979,"t":{"490":{"position":[[1234,2]]},"581":{"position":[[602,2],[697,2]]}}}],["37",{"_index":2423,"t":{"581":{"position":[[651,2]]}}}],["38",{"_index":2406,"t":{"581":{"position":[[567,2],[772,2]]},"583":{"position":[[2757,2]]}}}],["38.8",{"_index":2087,"t":{"526":{"position":[[1088,7]]}}}],["384",{"_index":2188,"t":{"537":{"position":[[655,3]]}}}],["4",{"_index":1449,"t":{"258":{"position":[[774,2]]},"288":{"position":[[434,1]]},"436":{"position":[[425,2]]},"547":{"position":[[418,3]]},"557":{"position":[[1055,2],[1146,1],[1874,1]]},"561":{"position":[[2044,1]]}}}],["4.0",{"_index":2632,"t":{"635":{"position":[[83,3],[116,5]]}}}],["40",{"_index":1200,"t":{"206":{"position":[[973,3]]}}}],["44",{"_index":2414,"t":{"581":{"position":[[605,2],[665,2]]}}}],["479c95bbf74222417abf76c7f9c480a6790e454374dc4f59bbb15ca183ce1abd",{"_index":2164,"t":{"532":{"position":[[741,65]]}}}],["48",{"_index":1377,"t":{"250":{"position":[[694,3]]}}}],["49",{"_index":2415,"t":{"581":{"position":[[615,2]]}}}],["4k",{"_index":2455,"t":{"583":{"position":[[2127,2],[2613,3]]}}}],["4k/uhd",{"_index":2434,"t":{"581":{"position":[[849,6]]}}}],["4kb",{"_index":1971,"t":{"490":{"position":[[785,4],[1080,3],[1094,3]]}}}],["4px",{"_index":1040,"t":{"162":{"position":[[2376,4],[2475,4]]}}}],["5",{"_index":1265,"t":{"214":{"position":[[180,1]]},"230":{"position":[[1475,1]]},"436":{"position":[[428,2]]},"581":{"position":[[842,1]]}}}],["50",{"_index":1191,"t":{"206":{"position":[[726,2]]},"486":{"position":[[1217,2],[1420,2]]},"532":{"position":[[1440,2],[1547,2]]},"581":{"position":[[654,2],[678,2]]}}}],["500",{"_index":2021,"t":{"504":{"position":[[524,3]]}}}],["5000",{"_index":2235,"t":{"547":{"position":[[505,4]]}}}],["500kb",{"_index":2253,"t":{"553":{"position":[[574,6]]},"561":{"position":[[195,6],[1619,6]]}}}],["508",{"_index":2251,"t":{"553":{"position":[[379,3]]},"561":{"position":[[1109,3]]}}}],["50kb",{"_index":2205,"t":{"541":{"position":[[145,5]]}}}],["510",{"_index":2027,"t":{"504":{"position":[[825,4]]}}}],["520",{"_index":2236,"t":{"547":{"position":[[549,3]]}}}],["53",{"_index":2421,"t":{"581":{"position":[[642,2]]}}}],["54",{"_index":2411,"t":{"581":{"position":[[593,2]]}}}],["56",{"_index":2418,"t":{"581":{"position":[[628,2]]}}}],["58",{"_index":2403,"t":{"581":{"position":[[556,2]]}}}],["6",{"_index":1387,"t":{"250":{"position":[[1265,2]]},"258":{"position":[[506,2]]},"302":{"position":[[403,1]]},"436":{"position":[[431,2]]},"490":{"position":[[1057,1],[1084,3],[1130,1]]},"561":{"position":[[2029,1]]}}}],["6.70",{"_index":2032,"t":{"506":{"position":[[348,4]]}}}],["60",{"_index":1199,"t":{"206":{"position":[[900,3]]},"647":{"position":[[1068,4]]}}}],["600",{"_index":1959,"t":{"490":{"position":[[390,3],[639,4],[670,3]]},"504":{"position":[[222,3]]}}}],["60000",{"_index":760,"t":{"113":{"position":[[215,8]]},"206":{"position":[[373,5]]}}}],["60000:60000",{"_index":1075,"t":{"178":{"position":[[325,11]]}}}],["60002",{"_index":463,"t":{"48":{"position":[[424,5]]},"182":{"position":[[382,5]]}}}],["60003",{"_index":464,"t":{"48":{"position":[[434,5]]},"182":{"position":[[392,6]]}}}],["60:40",{"_index":1195,"t":{"206":{"position":[[794,7],[882,6]]}}}],["625",{"_index":1542,"t":{"292":{"position":[[856,4]]}}}],["627",{"_index":2323,"t":{"561":{"position":[[1228,4]]}}}],["63",{"_index":2427,"t":{"581":{"position":[[681,2]]}}}],["6300",{"_index":1857,"t":{"466":{"position":[[308,4]]},"629":{"position":[[249,4]]}}}],["64",{"_index":1172,"t":{"206":{"position":[[239,2]]},"252":{"position":[[262,3]]},"360":{"position":[[26,3]]}}}],["64/waku2",{"_index":1966,"t":{"490":{"position":[[592,8]]}}}],["65000",{"_index":749,"t":{"111":{"position":[[126,5]]}}}],["68",{"_index":2407,"t":{"581":{"position":[[570,2]]}}}],["7",{"_index":862,"t":{"140":{"position":[[268,3]]},"436":{"position":[[434,2]]},"530":{"position":[[3831,2]]},"581":{"position":[[700,1]]}}}],["7.4",{"_index":2007,"t":{"497":{"position":[[476,3]]},"499":{"position":[[369,3]]}}}],["7.40",{"_index":2034,"t":{"506":{"position":[[362,4]]}}}],["7.45",{"_index":2037,"t":{"506":{"position":[[377,4]]}}}],["7.88",{"_index":2031,"t":{"506":{"position":[[343,4]]}}}],["71",{"_index":2422,"t":{"581":{"position":[[645,2]]}}}],["72",{"_index":2412,"t":{"581":{"position":[[596,2],[631,2]]}}}],["7640",{"_index":2073,"t":{"526":{"position":[[250,5]]}}}],["8",{"_index":1330,"t":{"230":{"position":[[1414,1]]},"252":{"position":[[789,2]]},"444":{"position":[[339,1]]},"490":{"position":[[1224,1]]},"497":{"position":[[444,1]]},"499":{"position":[[337,1]]}}}],["8.03",{"_index":2036,"t":{"506":{"position":[[372,4]]}}}],["8.04",{"_index":2033,"t":{"506":{"position":[[357,4]]}}}],["8.8.4.4",{"_index":1116,"t":{"184":{"position":[[922,8]]}}}],["8.8.8.8",{"_index":1115,"t":{"184":{"position":[[910,7]]}}}],["80/2",{"_index":1307,"t":{"230":{"position":[[289,5]]}}}],["8000",{"_index":1296,"t":{"228":{"position":[[99,4]]},"254":{"position":[[346,5]]},"490":{"position":[[525,4]]}}}],["8001",{"_index":1420,"t":{"254":{"position":[[909,5]]}}}],["8002",{"_index":1424,"t":{"254":{"position":[[1118,5]]}}}],["8008",{"_index":1281,"t":{"220":{"position":[[183,4]]}}}],["83",{"_index":2432,"t":{"581":{"position":[[769,2]]}}}],["84",{"_index":2425,"t":{"581":{"position":[[668,2]]}}}],["85",{"_index":2408,"t":{"581":{"position":[[573,2]]}}}],["8645",{"_index":1273,"t":{"218":{"position":[[158,4]]},"256":{"position":[[431,5]]},"280":{"position":[[44,4]]}}}],["8997",{"_index":2084,"t":{"526":{"position":[[809,4]]}}}],["9",{"_index":1842,"t":{"464":{"position":[[27,1]]},"583":{"position":[[2692,1]]}}}],["9000",{"_index":1284,"t":{"224":{"position":[[117,4]]},"256":{"position":[[1044,5]]},"526":{"position":[[852,5]]}}}],["9000:9000/udp",{"_index":1076,"t":{"178":{"position":[[340,13]]}}}],["93",{"_index":2416,"t":{"581":{"position":[[618,2]]}}}],["95",{"_index":2322,"t":{"561":{"position":[[1196,3]]}}}],["9990",{"_index":2298,"t":{"559":{"position":[[841,4]]}}}],["_nwaku",{"_index":2097,"t":{"528":{"position":[[95,6],[156,6],[258,6],[340,6]]}}}],["abil",{"_index":1821,"t":{"452":{"position":[[544,7]]}}}],["abnorm",{"_index":2310,"t":{"561":{"position":[[437,8]]}}}],["abov",{"_index":1013,"t":{"162":{"position":[[1712,6]]},"450":{"position":[[162,6]]},"494":{"position":[[876,6]]},"561":{"position":[[126,5]]},"583":{"position":[[9,5]]},"633":{"position":[[1073,6]]}}}],["absent",{"_index":2575,"t":{"619":{"position":[[256,6]]}}}],["absolut",{"_index":669,"t":{"101":{"position":[[156,8]]}}}],["abus",{"_index":2568,"t":{"615":{"position":[[1006,7]]}}}],["accept",{"_index":819,"t":{"131":{"position":[[184,7]]},"133":{"position":[[155,7]]},"240":{"position":[[219,8]]},"242":{"position":[[183,8]]},"280":{"position":[[854,8]]},"442":{"position":[[294,7]]},"537":{"position":[[765,6]]},"561":{"position":[[1179,11]]}}}],["access",{"_index":570,"t":{"68":{"position":[[304,11]]},"70":{"position":[[82,11]]},"97":{"position":[[1408,6]]},"142":{"position":[[81,6]]},"178":{"position":[[1094,10]]},"218":{"position":[[300,6]]},"256":{"position":[[600,6],[681,6]]},"274":{"position":[[27,6]]},"278":{"position":[[104,6]]},"310":{"position":[[177,9]]},"346":{"position":[[186,9]]},"352":{"position":[[84,6]]},"400":{"position":[[28,7],[111,13]]},"444":{"position":[[64,7],[139,10]]},"448":{"position":[[94,6]]},"581":{"position":[[359,9]]},"627":{"position":[[149,6],[519,6]]},"631":{"position":[[773,11],[845,6],[1007,10]]},"633":{"position":[[451,10],[1163,10]]},"637":{"position":[[563,8],[600,6]]}}}],["accident",{"_index":1474,"t":{"272":{"position":[[399,12]]}}}],["accommod",{"_index":1600,"t":{"306":{"position":[[338,11]]},"382":{"position":[[201,11]]}}}],["accompani",{"_index":1720,"t":{"404":{"position":[[1403,11]]}}}],["accord",{"_index":2177,"t":{"534":{"position":[[303,9]]},"647":{"position":[[1290,10],[1937,10]]}}}],["accordingli",{"_index":1795,"t":{"442":{"position":[[552,12]]}}}],["account",{"_index":611,"t":{"83":{"position":[[58,7]]},"410":{"position":[[432,10],[498,10]]},"559":{"position":[[896,7]]},"561":{"position":[[2246,8]]},"583":{"position":[[858,8],[2206,8]]},"611":{"position":[[269,8]]}}}],["accur",{"_index":2333,"t":{"561":{"position":[[2378,9]]},"633":{"position":[[872,9]]},"637":{"position":[[399,9]]}}}],["accuraci",{"_index":2601,"t":{"631":{"position":[[421,9]]},"633":{"position":[[941,9]]}}}],["achiev",{"_index":1576,"t":{"302":{"position":[[120,7]]},"416":{"position":[[82,7]]},"418":{"position":[[197,8]]},"420":{"position":[[97,8]]},"484":{"position":[[96,7]]},"490":{"position":[[260,8]]}}}],["ack/nack",{"_index":2319,"t":{"561":{"position":[[961,8]]}}}],["acknowledg",{"_index":1616,"t":{"314":{"position":[[138,15],[341,12]]},"354":{"position":[[96,16]]}}}],["acquir",{"_index":2347,"t":{"569":{"position":[[395,7]]}}}],["act",{"_index":2101,"t":{"528":{"position":[[292,6],[374,6]]},"530":{"position":[[122,4]]},"539":{"position":[[260,4]]},"541":{"position":[[371,4]]},"583":{"position":[[608,6]]},"605":{"position":[[557,4]]},"611":{"position":[[95,4]]}}}],["action",{"_index":1754,"t":{"414":{"position":[[216,7]]},"416":{"position":[[62,7]]},"599":{"position":[[799,7]]},"647":{"position":[[2234,6]]}}}],["activ",{"_index":432,"t":{"42":{"position":[[2266,6]]},"89":{"position":[[212,6]]},"91":{"position":[[95,6]]},"302":{"position":[[294,8]]},"416":{"position":[[118,10]]},"476":{"position":[[646,10],[687,10],[780,10]]},"478":{"position":[[209,10]]},"601":{"position":[[278,10]]},"637":{"position":[[524,10],[717,10]]}}}],["actor",{"_index":1757,"t":{"414":{"position":[[340,6]]},"416":{"position":[[47,5],[134,6]]}}}],["actual",{"_index":698,"t":{"101":{"position":[[3026,8]]},"414":{"position":[[333,6]]},"541":{"position":[[362,8]]},"633":{"position":[[695,6]]}}}],["ad",{"_index":304,"t":{"26":{"position":[[246,6]]},"36":{"position":[[419,6]]},"77":{"position":[[119,5]]},"292":{"position":[[274,6]]},"442":{"position":[[47,6],[204,5],[407,5]]}}}],["adapt",{"_index":166,"t":{"12":{"position":[[283,8]]},"156":{"position":[[198,8]]},"555":{"position":[[51,10]]}}}],["add",{"_index":195,"t":{"16":{"position":[[103,3]]},"18":{"position":[[104,3]]},"20":{"position":[[458,4],[607,3]]},"42":{"position":[[62,3]]},"50":{"position":[[125,3]]},"62":{"position":[[75,3]]},"79":{"position":[[150,3]]},"95":{"position":[[172,3]]},"156":{"position":[[103,3]]},"158":{"position":[[445,3]]},"206":{"position":[[412,3]]},"292":{"position":[[455,3]]},"539":{"position":[[159,3]]},"543":{"position":[[28,4],[555,3]]},"557":{"position":[[648,4]]},"601":{"position":[[216,4]]},"613":{"position":[[0,3],[184,3]]}}}],["add(new",{"_index":363,"t":{"36":{"position":[[214,8],[265,8],[313,8]]},"162":{"position":[[951,8],[1002,8]]}}}],["addit",{"_index":472,"t":{"48":{"position":[[1209,10]]},"298":{"position":[[525,10]]},"302":{"position":[[312,10]]},"316":{"position":[[267,10]]},"410":{"position":[[384,8]]},"470":{"position":[[3,8]]},"532":{"position":[[1405,10],[1512,10],[1782,10]]},"585":{"position":[[474,8]]}}}],["addition",{"_index":1655,"t":{"326":{"position":[[256,13]]},"394":{"position":[[201,13]]},"410":{"position":[[579,13]]},"458":{"position":[[91,13]]},"599":{"position":[[221,13]]}}}],["addr",{"_index":1207,"t":{"208":{"position":[[35,5],[104,5]]}}}],["address",{"_index":152,"t":{"12":{"position":[[92,7]]},"48":{"position":[[1176,7],[1477,7],[1617,7],[1663,8]]},"154":{"position":[[1613,9],[1670,9],[1759,9],[1815,10]]},"190":{"position":[[87,9],[137,9]]},"192":{"position":[[383,7],[494,7]]},"194":{"position":[[28,10]]},"196":{"position":[[415,9]]},"198":{"position":[[411,9],[695,9]]},"206":{"position":[[265,7],[306,7],[497,8]]},"208":{"position":[[299,7]]},"210":{"position":[[626,7],[665,7],[753,7],[761,7]]},"218":{"position":[[88,7],[116,7]]},"220":{"position":[[105,7],[133,7]]},"224":{"position":[[368,7]]},"232":{"position":[[455,10]]},"240":{"position":[[621,10]]},"248":{"position":[[72,7],[781,7]]},"256":{"position":[[209,7],[239,7],[803,8]]},"318":{"position":[[63,9]]},"360":{"position":[[96,10],[121,9]]},"454":{"position":[[516,7]]},"466":{"position":[[227,7]]},"468":{"position":[[537,8],[608,7],[715,9],[821,7]]},"605":{"position":[[819,8]]},"607":{"position":[[87,7]]},"629":{"position":[[167,7]]}}}],["address=127.0.0.1",{"_index":1438,"t":{"256":{"position":[[1110,17]]}}}],["address=[rest",{"_index":1432,"t":{"256":{"position":[[772,13]]}}}],["adequ",{"_index":1875,"t":{"474":{"position":[[288,8]]}}}],["admin",{"_index":1276,"t":{"218":{"position":[[281,5],[320,5]]},"256":{"position":[[574,5],[615,5],[1172,5]]}}}],["admin=[true|fals",{"_index":1435,"t":{"256":{"position":[[919,18]]}}}],["admin=tru",{"_index":1440,"t":{"256":{"position":[[1273,10]]}}}],["administ",{"_index":2679,"t":{"647":{"position":[[1227,12]]}}}],["administr",{"_index":2687,"t":{"647":{"position":[[1891,14]]}}}],["adopt",{"_index":2059,"t":{"518":{"position":[[423,8]]}}}],["advanc",{"_index":1462,"t":{"264":{"position":[[280,8]]},"280":{"position":[[1166,8]]},"408":{"position":[[122,8]]}}}],["adversari",{"_index":1524,"t":{"288":{"position":[[659,12]]},"410":{"position":[[46,11]]},"416":{"position":[[19,9]]},"418":{"position":[[53,9]]}}}],["advertis",{"_index":1188,"t":{"206":{"position":[[596,9]]},"605":{"position":[[107,13],[462,13]]},"609":{"position":[[144,13]]}}}],["advic",{"_index":2611,"t":{"631":{"position":[[1586,6]]}}}],["advis",{"_index":2651,"t":{"639":{"position":[[412,7]]}}}],["affect",{"_index":1892,"t":{"476":{"position":[[668,7],[741,6]]},"543":{"position":[[373,6]]},"553":{"position":[[235,8],[456,8]]},"561":{"position":[[1431,7]]},"649":{"position":[[412,6]]}}}],["affili",{"_index":2243,"t":{"551":{"position":[[87,11]]}}}],["africa",{"_index":2428,"t":{"581":{"position":[[684,6]]},"583":{"position":[[2291,6],[2357,6],[2750,6]]}}}],["again",{"_index":2560,"t":{"615":{"position":[[387,6]]}}}],["against",{"_index":1598,"t":{"306":{"position":[[283,7]]},"410":{"position":[[558,7]]},"615":{"position":[[934,7]]},"621":{"position":[[27,7]]},"641":{"position":[[53,7]]},"647":{"position":[[102,7],[2276,7]]}}}],["agent",{"_index":1168,"t":{"206":{"position":[[131,5],[155,5]]}}}],["aggreg",{"_index":68,"t":{"6":{"position":[[200,10],[898,9]]},"639":{"position":[[474,9]]}}}],["agnost",{"_index":2176,"t":{"534":{"position":[[220,8]]}}}],["agnostic",{"_index":1836,"t":{"460":{"position":[[122,12]]}}}],["agre",{"_index":2587,"t":{"627":{"position":[[390,6],[467,5]]}}}],["agreement",{"_index":2693,"t":{"649":{"position":[[44,9],[155,11]]}}}],["aim",{"_index":597,"t":{"79":{"position":[[10,4]]},"408":{"position":[[3,3]]},"412":{"position":[[177,6]]},"468":{"position":[[3,3]]},"486":{"position":[[342,3]]},"532":{"position":[[11,4],[879,5]]},"555":{"position":[[830,4]]},"577":{"position":[[17,4]]},"633":{"position":[[1205,3]]}}}],["aka",{"_index":1922,"t":{"486":{"position":[[613,3]]}}}],["alert",{"_index":547,"t":{"64":{"position":[[931,7]]}}}],["alic",{"_index":377,"t":{"38":{"position":[[240,8]]},"101":{"position":[[541,5],[998,5],[2883,5],[3054,5],[3228,8],[3290,8]]},"296":{"position":[[36,5],[102,5],[233,6],[240,5],[337,5],[472,6],[479,5],[571,5],[616,5]]},"300":{"position":[[36,5],[95,5],[135,5],[219,6],[226,5],[300,5],[329,5],[390,5]]},"320":{"position":[[0,5]]}}}],["alice'",{"_index":699,"t":{"101":{"position":[[3063,7]]},"320":{"position":[[114,7]]}}}],["aliceprivatekey",{"_index":679,"t":{"101":{"position":[[1010,15],[1332,16],[1627,16]]}}}],["alicepublickey",{"_index":680,"t":{"101":{"position":[[1056,14]]}}}],["align",{"_index":1036,"t":{"162":{"position":[[2307,5]]}}}],["aliv",{"_index":1241,"t":{"210":{"position":[[1353,5],[1377,5]]}}}],["allmessag",{"_index":1057,"t":{"168":{"position":[[600,11]]}}}],["alloc",{"_index":1927,"t":{"486":{"position":[[995,9],[1062,8]]},"583":{"position":[[997,8]]}}}],["allow",{"_index":14,"t":{"2":{"position":[[148,8]]},"6":{"position":[[581,5]]},"12":{"position":[[38,8]]},"20":{"position":[[304,6]]},"32":{"position":[[193,6]]},"34":{"position":[[381,6],[562,6],[646,6]]},"40":{"position":[[805,6]]},"64":{"position":[[433,8]]},"101":{"position":[[427,6]]},"113":{"position":[[381,8]]},"188":{"position":[[916,8]]},"206":{"position":[[737,7]]},"218":{"position":[[347,5],[360,5],[661,5]]},"230":{"position":[[453,8],[795,8],[1408,5]]},"248":{"position":[[130,6]]},"250":{"position":[[1478,6]]},"258":{"position":[[217,6]]},"260":{"position":[[218,6]]},"274":{"position":[[94,8]]},"284":{"position":[[577,6]]},"288":{"position":[[77,8]]},"290":{"position":[[182,8]]},"302":{"position":[[828,6]]},"310":{"position":[[16,6]]},"314":{"position":[[108,6]]},"324":{"position":[[198,5]]},"342":{"position":[[49,6]]},"350":{"position":[[58,6]]},"370":{"position":[[131,8]]},"376":{"position":[[165,8]]},"390":{"position":[[81,8]]},"404":{"position":[[1520,8],[1657,7]]},"428":{"position":[[107,6]]},"452":{"position":[[77,6],[294,6]]},"460":{"position":[[135,8]]},"488":{"position":[[169,7],[356,5],[499,6]]},"490":{"position":[[67,6],[747,8]]},"497":{"position":[[750,8]]},"499":{"position":[[643,8]]},"534":{"position":[[244,6]]},"537":{"position":[[914,7]]},"547":{"position":[[265,7],[671,5]]},"559":{"position":[[54,6]]},"573":{"position":[[587,5]]},"635":{"position":[[146,6]]}}}],["along",{"_index":1014,"t":{"162":{"position":[[1822,5]]},"200":{"position":[[51,5]]},"410":{"position":[[593,5]]}}}],["alongsid",{"_index":281,"t":{"22":{"position":[[1432,9]]},"44":{"position":[[331,9]]},"168":{"position":[[176,9]]},"605":{"position":[[874,9]]}}}],["alreadi",{"_index":2030,"t":{"506":{"position":[[176,7]]},"532":{"position":[[835,7]]},"559":{"position":[[219,7]]},"579":{"position":[[1253,7]]}}}],["altern",{"_index":468,"t":{"48":{"position":[[810,14]]},"310":{"position":[[161,11]]},"346":{"position":[[170,11]]},"583":{"position":[[1724,12]]}}}],["although",{"_index":1714,"t":{"404":{"position":[[1083,8]]},"589":{"position":[[798,8]]}}}],["altruist",{"_index":2524,"t":{"601":{"position":[[891,15]]}}}],["alway",{"_index":774,"t":{"117":{"position":[[338,6]]},"131":{"position":[[738,6]]},"133":{"position":[[752,6]]},"474":{"position":[[662,6]]},"530":{"position":[[1281,6]]}}}],["amazon",{"_index":1342,"t":{"234":{"position":[[927,6]]}}}],["ambient",{"_index":1586,"t":{"302":{"position":[[1037,7]]}}}],["amend",{"_index":2629,"t":{"633":{"position":[[1347,7]]}}}],["america",{"_index":2402,"t":{"581":{"position":[[548,7],[582,7]]},"583":{"position":[[2684,7],[2702,7]]}}}],["amic",{"_index":2674,"t":{"647":{"position":[[755,8]]}}}],["amongst",{"_index":2173,"t":{"532":{"position":[[1687,7]]}}}],["amount",{"_index":1287,"t":{"224":{"position":[[409,6],[500,6]]},"468":{"position":[[388,6]]},"490":{"position":[[190,6],[285,6],[468,6]]},"555":{"position":[[651,6]]},"557":{"position":[[899,6]]},"559":{"position":[[331,6],[710,6]]},"577":{"position":[[117,6]]},"579":{"position":[[557,7]]},"605":{"position":[[796,6],[1011,7]]},"611":{"position":[[246,6]]},"615":{"position":[[927,6]]}}}],["analysi",{"_index":2148,"t":{"532":{"position":[[193,9]]},"563":{"position":[[59,8]]},"579":{"position":[[1219,8]]}}}],["analyz",{"_index":2110,"t":{"530":{"position":[[53,9]]},"625":{"position":[[13,7],[89,7],[245,7]]}}}],["and/or",{"_index":1245,"t":{"210":{"position":[[1522,6]]}}}],["announc",{"_index":1189,"t":{"206":{"position":[[677,8]]},"248":{"position":[[157,9]]},"262":{"position":[[75,8]]}}}],["anonym",{"_index":1494,"t":{"280":{"position":[[512,9]]},"288":{"position":[[187,10],[524,9],[582,9]]},"290":{"position":[[19,9]]},"292":{"position":[[597,9]]},"298":{"position":[[506,10]]},"304":{"position":[[129,9],[251,10]]},"380":{"position":[[145,10]]},"414":{"position":[[205,10]]},"416":{"position":[[0,9],[90,10],[227,9]]},"422":{"position":[[102,9]]},"488":{"position":[[219,9]]}}}],["anoth",{"_index":572,"t":{"70":{"position":[[14,7]]},"99":{"position":[[1556,7]]},"410":{"position":[[72,7]]},"476":{"position":[[509,7]]},"530":{"position":[[171,7]]},"555":{"position":[[796,7]]},"583":{"position":[[1516,7]]}}}],["anyon",{"_index":129,"t":{"10":{"position":[[53,6]]},"452":{"position":[[301,6]]},"579":{"position":[[803,6],[864,6]]}}}],["anyth",{"_index":143,"t":{"10":{"position":[[316,9]]},"178":{"position":[[1246,9]]},"242":{"position":[[293,9]]},"280":{"position":[[954,9]]}}}],["api",{"_index":168,"t":{"14":{"position":[[31,3],[40,3],[133,3]]},"42":{"position":[[1869,3]]},"75":{"position":[[61,4],[124,3],[197,4]]},"83":{"position":[[188,4]]},"154":{"position":[[573,3],[1726,4]]},"178":{"position":[[1159,3]]},"190":{"position":[[235,4]]},"218":{"position":[[258,3],[326,4],[435,3]]},"240":{"position":[[60,4]]},"242":{"position":[[103,4]]},"256":{"position":[[22,3],[89,4],[158,3],[259,3],[375,3],[502,3],[621,3],[704,3],[1025,3],[1190,3]]},"280":{"position":[[32,3]]},"426":{"position":[[160,4]]},"438":{"position":[[14,4]]},"494":{"position":[[778,3]]},"497":{"position":[[589,3],[739,3]]},"499":{"position":[[482,3],[632,3]]},"573":{"position":[[98,3],[204,5]]}}}],["app",{"_index":60,"t":{"6":{"position":[[71,4]]},"14":{"position":[[160,3],[282,3],[311,4]]},"20":{"position":[[356,3]]},"22":{"position":[[723,3],[761,3]]},"115":{"position":[[130,3]]},"117":{"position":[[98,3],[207,3],[267,3]]},"119":{"position":[[78,3]]},"160":{"position":[[66,4],[527,4],[729,5]]},"162":{"position":[[349,5],[1691,3]]},"164":{"position":[[261,5]]},"166":{"position":[[252,5]]},"168":{"position":[[299,5]]},"292":{"position":[[252,3]]},"438":{"position":[[591,5]]},"486":{"position":[[1726,4]]},"530":{"position":[[187,3],[369,4],[406,3],[504,3]]}}}],["app%2f2%2fchatroom",{"_index":1499,"t":{"280":{"position":[[786,18]]}}}],["app.css",{"_index":984,"t":{"162":{"position":[[328,11],[1899,7]]}}}],["app.jsx",{"_index":971,"t":{"160":{"position":[[655,7]]},"162":{"position":[[88,7]]}}}],["app/0/a/proto",{"_index":1535,"t":{"292":{"position":[[327,14]]}}}],["app/1/default/proto",{"_index":1782,"t":{"436":{"position":[[601,21]]},"438":{"position":[[756,21]]}}}],["app/1/notifications/proto",{"_index":329,"t":{"28":{"position":[[922,28]]},"434":{"position":[[137,27],[311,27]]}}}],["app/2/chatroom",{"_index":1495,"t":{"280":{"position":[[562,14]]}}}],["appear",{"_index":561,"t":{"66":{"position":[[445,8]]}}}],["appli",{"_index":531,"t":{"64":{"position":[[468,5]]},"93":{"position":[[280,7]]},"230":{"position":[[867,7],[932,7],[1251,5]]},"404":{"position":[[393,7]]},"464":{"position":[[227,7]]},"470":{"position":[[309,6]]},"530":{"position":[[1874,8],[3426,8]]},"557":{"position":[[1717,7]]},"583":{"position":[[147,5]]},"631":{"position":[[656,5]]},"639":{"position":[[587,5]]}}}],["applic",{"_index":13,"t":{"2":{"position":[[134,13]]},"4":{"position":[[166,13],[219,12]]},"16":{"position":[[346,13]]},"20":{"position":[[51,11],[276,12]]},"22":{"position":[[87,12],[677,11],[997,11],[1086,11],[1345,11]]},"28":{"position":[[709,13]]},"34":{"position":[[32,11],[1132,12]]},"40":{"position":[[364,11]]},"42":{"position":[[966,12],[1189,12],[1257,13],[1698,12],[1885,12]]},"72":{"position":[[103,12]]},"81":{"position":[[176,11],[474,13]]},"85":{"position":[[126,13]]},"87":{"position":[[105,12]]},"89":{"position":[[129,12]]},"91":{"position":[[1283,12]]},"101":{"position":[[243,11]]},"103":{"position":[[108,12],[403,12]]},"131":{"position":[[564,11]]},"133":{"position":[[679,11]]},"156":{"position":[[241,12]]},"158":{"position":[[88,12]]},"160":{"position":[[144,11]]},"162":{"position":[[1837,11]]},"164":{"position":[[24,12]]},"166":{"position":[[27,12]]},"168":{"position":[[131,11],[1438,11]]},"284":{"position":[[51,13],[113,11],[177,11]]},"290":{"position":[[99,11],[319,12]]},"292":{"position":[[8,11],[730,11]]},"304":{"position":[[74,12],[175,12]]},"316":{"position":[[311,11]]},"318":{"position":[[5,12]]},"338":{"position":[[96,12]]},"350":{"position":[[113,12]]},"364":{"position":[[49,11],[144,12]]},"388":{"position":[[134,13]]},"394":{"position":[[184,11]]},"396":{"position":[[123,11]]},"404":{"position":[[28,11]]},"424":{"position":[[52,11]]},"438":{"position":[[75,11],[405,11],[574,12]]},"446":{"position":[[0,12]]},"468":{"position":[[211,10]]},"474":{"position":[[694,10]]},"486":{"position":[[894,12]]},"494":{"position":[[612,12],[1012,11]]},"497":{"position":[[759,12]]},"499":{"position":[[652,12]]},"561":{"position":[[1138,12]]},"565":{"position":[[209,13]]},"571":{"position":[[435,12]]},"575":{"position":[[17,11]]},"583":{"position":[[2542,13]]},"631":{"position":[[697,10],[959,10]]},"639":{"position":[[628,10]]},"647":{"position":[[2017,10]]}}}],["application'",{"_index":356,"t":{"36":{"position":[[12,13]]},"42":{"position":[[218,13],[368,13]]}}}],["application/json",{"_index":1350,"t":{"240":{"position":[[228,17]]},"280":{"position":[[432,17],[863,17]]}}}],["applicationinfo",{"_index":1783,"t":{"438":{"position":[[38,15],[312,15]]}}}],["appoint",{"_index":2344,"t":{"569":{"position":[[293,7]]}}}],["appreci",{"_index":776,"t":{"119":{"position":[[15,10]]},"530":{"position":[[2347,11]]}}}],["approach",{"_index":268,"t":{"22":{"position":[[1029,8]]},"230":{"position":[[832,9]]},"292":{"position":[[347,8]]},"304":{"position":[[21,9]]},"452":{"position":[[166,8]]},"464":{"position":[[98,8]]},"472":{"position":[[13,9]]},"530":{"position":[[293,9]]},"579":{"position":[[514,9],[672,10]]},"583":{"position":[[789,9]]},"585":{"position":[[277,8]]},"589":{"position":[[821,10]]},"593":{"position":[[56,10]]}}}],["appropri",{"_index":1065,"t":{"172":{"position":[[52,11]]},"605":{"position":[[784,11]]},"631":{"position":[[806,11]]}}}],["approv",{"_index":794,"t":{"119":{"position":[[516,9]]}}}],["apt",{"_index":897,"t":{"144":{"position":[[197,3]]}}}],["arbitr",{"_index":2662,"t":{"645":{"position":[[102,12]]},"647":{"position":[[260,11],[427,11],[549,11],[1215,11],[1263,11],[1339,11],[1447,8],[1499,11],[1656,11],[1781,11],[1860,12],[1910,10],[1986,12],[2264,11]]}}}],["arch",{"_index":894,"t":{"144":{"position":[[164,4]]}}}],["architectur",{"_index":1596,"t":{"306":{"position":[[33,12]]},"555":{"position":[[128,13]]},"579":{"position":[[733,14],[784,12]]}}}],["archiv",{"_index":2052,"t":{"518":{"position":[[48,9],[229,7]]},"530":{"position":[[754,7],[1757,7]]},"532":{"position":[[473,8]]}}}],["area",{"_index":2343,"t":{"569":{"position":[[240,4]]}}}],["arg",{"_index":1071,"t":{"178":{"position":[[66,8],[189,6]]}}}],["arguabl",{"_index":2549,"t":{"611":{"position":[[1120,8]]}}}],["argument",{"_index":1072,"t":{"178":{"position":[[211,9]]},"202":{"position":[[236,8]]},"206":{"position":[[622,8]]},"208":{"position":[[205,8]]},"210":{"position":[[1323,8],[1467,8],[1580,8],[1774,8]]},"222":{"position":[[238,8]]},"224":{"position":[[259,8]]}}}],["aris",{"_index":2650,"t":{"639":{"position":[[251,7]]},"641":{"position":[[130,7]]},"647":{"position":[[690,7]]}}}],["aros",{"_index":2689,"t":{"647":{"position":[[2110,5]]}}}],["around",{"_index":2264,"t":{"557":{"position":[[871,6]]},"575":{"position":[[117,6]]}}}],["array",{"_index":238,"t":{"20":{"position":[[432,7]]},"54":{"position":[[21,5],[271,5]]}}}],["arriv",{"_index":1666,"t":{"330":{"position":[[898,7]]},"561":{"position":[[1216,8]]}}}],["articl",{"_index":1802,"t":{"444":{"position":[[605,7]]}}}],["as::volume/period@waku",{"_index":995,"t":{"162":{"position":[[1169,8]]}}}],["hackathon",{"_index":189,"t":{"14":{"position":[[419,10]]}}}],["hackenproof",{"_index":2247,"t":{"551":{"position":[[238,11]]}}}],["hammer",{"_index":2166,"t":{"532":{"position":[[869,6],[1455,6],[1562,6],[1833,6]]}}}],["hand",{"_index":1965,"t":{"490":{"position":[[587,4]]},"530":{"position":[[157,5]]},"543":{"position":[[13,5]]}}}],["handl",{"_index":72,"t":{"6":{"position":[[268,6]]},"22":{"position":[[1310,6]]},"40":{"position":[[616,6]]},"58":{"position":[[124,6]]},"68":{"position":[[74,6]]},"87":{"position":[[70,6]]},"91":{"position":[[307,6],[1248,6]]},"103":{"position":[[196,8]]}}}],["handleinputchang",{"_index":989,"t":{"162":{"position":[[522,17]]}}}],["happen",{"_index":397,"t":{"40":{"position":[[633,7]]},"91":{"position":[[324,7]]},"97":{"position":[[1296,6]]},"210":{"position":[[1264,6]]},"530":{"position":[[3400,7]]},"567":{"position":[[39,6]]}}}],["hard",{"_index":1636,"t":{"320":{"position":[[96,5]]}}}],["hardcod",{"_index":671,"t":{"101":{"position":[[325,9]]}}}],["harm",{"_index":2640,"t":{"637":{"position":[[423,8]]}}}],["harmless",{"_index":2657,"t":{"641":{"position":[[35,8]]}}}],["harry'",{"_index":1565,"t":{"296":{"position":[[456,7],[531,7]]}}}],["hash",{"_index":1520,"t":{"288":{"position":[[460,6]]},"292":{"position":[[186,7],[669,4],[802,4]]},"294":{"position":[[109,4]]},"340":{"position":[[57,4]]},"372":{"position":[[95,4]]},"454":{"position":[[139,4],[291,6]]},"611":{"position":[[83,4]]}}}],["have",{"_index":2146,"t":{"532":{"position":[[49,6]]},"593":{"position":[[299,6]]}}}],["haven't",{"_index":2387,"t":{"579":{"position":[[1442,7]]}}}],["hd",{"_index":2433,"t":{"581":{"position":[[824,2],[839,2]]},"583":{"position":[[2600,2]]}}}],["head",{"_index":801,"t":{"119":{"position":[[670,4]]},"252":{"position":[[794,4]]},"649":{"position":[[268,8]]}}}],["header",{"_index":1349,"t":{"240":{"position":[[212,6]]},"242":{"position":[[176,6]]},"280":{"position":[[410,6],[847,6]]}}}],["health",{"_index":1357,"t":{"242":{"position":[[18,6],[68,6]]}}}],["healthi",{"_index":1361,"t":{"242":{"position":[[212,7]]},"506":{"position":[[213,7]]}}}],["heard",{"_index":2669,"t":{"647":{"position":[[495,5]]}}}],["heavi",{"_index":1533,"t":{"292":{"position":[[138,5]]}}}],["height",{"_index":1019,"t":{"162":{"position":[[2038,7]]}}}],["hel1.misc.wakudev",{"_index":2167,"t":{"532":{"position":[[1090,18]]}}}],["hel1.misc.wakudev.status.im",{"_index":2122,"t":{"530":{"position":[[960,29],[2032,29]]}}}],["held",{"_index":2642,"t":{"639":{"position":[[15,4]]},"647":{"position":[[1519,4]]},"649":{"position":[[532,4]]}}}],["hello",{"_index":378,"t":{"38":{"position":[[258,7]]},"280":{"position":[[485,6]]}}}],["help",{"_index":146,"t":{"10":{"position":[[349,4]]},"24":{"position":[[335,4]]},"58":{"position":[[59,8],[150,4]]},"101":{"position":[[16,5]]},"113":{"position":[[538,5],[564,4]]},"150":{"position":[[174,4]]},"178":{"position":[[836,4],[1279,4]]},"242":{"position":[[326,4]]},"280":{"position":[[987,4]]},"284":{"position":[[280,5]]},"310":{"position":[[285,5]]},"520":{"position":[[276,4]]},"534":{"position":[[11,4]]},"551":{"position":[[253,4]]},"559":{"position":[[268,5]]},"565":{"position":[[145,4]]},"567":{"position":[[407,4]]},"573":{"position":[[369,4],[788,4]]},"619":{"position":[[131,5]]}}}],["helper",{"_index":913,"t":{"144":{"position":[[479,6],[496,7]]}}}],["henc",{"_index":2336,"t":{"565":{"position":[[83,6]]},"583":{"position":[[1314,5]]}}}],["here",{"_index":514,"t":{"62":{"position":[[94,4]]},"85":{"position":[[179,5]]},"138":{"position":[[376,5]]},"200":{"position":[[0,4]]},"284":{"position":[[0,4]]},"286":{"position":[[85,4]]},"304":{"position":[[288,4]]},"330":{"position":[[0,4]]},"410":{"position":[[250,5],[727,5],[872,5]]},"561":{"position":[[340,5],[1031,5]]},"581":{"position":[[155,4]]}}}],["herein",{"_index":2607,"t":{"631":{"position":[[994,6],[1257,6],[1493,7],[1527,6]]},"633":{"position":[[825,6],[1004,7]]},"647":{"position":[[1422,6]]}}}],["hesit",{"_index":294,"t":{"24":{"position":[[223,8]]}}}],["hex",{"_index":1174,"t":{"206":{"position":[[247,3]]},"210":{"position":[[516,3],[594,3]]},"252":{"position":[[271,3],[359,3],[385,3],[553,3]]},"360":{"position":[[35,3]]}}}],["hexadecim",{"_index":712,"t":{"103":{"position":[[372,11],[666,11],[806,11]]}}}],["hextobyt",{"_index":714,"t":{"103":{"position":[[474,10]]}}}],["hextobytes(privatekeyhex",{"_index":724,"t":{"103":{"position":[[910,26]]}}}],["hextobytes(symmetrickeyhex",{"_index":722,"t":{"103":{"position":[[854,28]]}}}],["hide",{"_index":1522,"t":{"288":{"position":[[624,4]]},"402":{"position":[[240,6]]}}}],["high",{"_index":1131,"t":{"188":{"position":[[1071,4]]},"290":{"position":[[345,4]]},"488":{"position":[[386,4]]},"541":{"position":[[461,4]]},"557":{"position":[[59,4]]},"561":{"position":[[711,4]]},"589":{"position":[[458,4]]},"633":{"position":[[500,4],[1027,4]]}}}],["higher",{"_index":1923,"t":{"486":{"position":[[686,6]]},"526":{"position":[[967,6]]},"528":{"position":[[644,6]]},"557":{"position":[[227,6],[272,6]]}}}],["highli",{"_index":297,"t":{"24":{"position":[[312,6]]},"232":{"position":[[139,6]]},"284":{"position":[[838,6]]}}}],["highlight",{"_index":2340,"t":{"567":{"position":[[456,11]]},"571":{"position":[[233,9]]},"575":{"position":[[252,9]]}}}],["histor",{"_index":258,"t":{"22":{"position":[[357,10]]},"42":{"position":[[537,10],[661,10]]},"113":{"position":[[412,10]]},"121":{"position":[[87,10]]},"129":{"position":[[121,10]]},"140":{"position":[[791,10]]},"250":{"position":[[1513,10],[1708,10]]},"282":{"position":[[192,10]]},"328":{"position":[[195,10]]},"444":{"position":[[456,10]]},"547":{"position":[[587,10]]},"585":{"position":[[423,10]]},"603":{"position":[[44,8]]}}}],["histori",{"_index":853,"t":{"138":{"position":[[1025,8]]},"518":{"position":[[154,7]]},"605":{"position":[[755,8]]},"607":{"position":[[48,8]]},"619":{"position":[[229,8]]}}}],["historyqueri",{"_index":2525,"t":{"603":{"position":[[104,12]]},"605":{"position":[[847,12]]}}}],["historyrespons",{"_index":2526,"t":{"603":{"position":[[151,15]]},"605":{"position":[[1038,15]]}}}],["hold",{"_index":2656,"t":{"641":{"position":[[27,4]]}}}],["home/.cargo/env",{"_index":907,"t":{"144":{"position":[[313,18]]}}}],["homebrew",{"_index":895,"t":{"144":{"position":[[181,10]]}}}],["hongkong",{"_index":1394,"t":{"250":{"position":[[1779,8]]},"258":{"position":[[570,8]]},"260":{"position":[[498,8]]}}}],["honour",{"_index":2558,"t":{"615":{"position":[[199,7]]}}}],["hood",{"_index":1482,"t":{"276":{"position":[[172,5]]},"444":{"position":[[649,5]]}}}],["hop",{"_index":1290,"t":{"224":{"position":[[581,3],[628,4]]},"543":{"position":[[518,5]]},"555":{"position":[[614,4],[661,4]]},"557":{"position":[[175,4],[242,5],[473,4],[608,4],[644,3],[909,4],[1148,4],[1308,4],[1352,4],[1876,4]]},"561":{"position":[[1368,3],[1953,3]]}}}],["hopr",{"_index":2546,"t":{"611":{"position":[[688,6]]}}}],["host",{"_index":458,"t":{"48":{"position":[[389,4]]},"178":{"position":[[1122,4]]},"182":{"position":[[347,4]]},"188":{"position":[[521,4]]},"218":{"position":[[472,4]]},"338":{"position":[[56,7]]}}}],["host]:[websocket",{"_index":556,"t":{"66":{"position":[[142,16]]}}}],["hour",{"_index":1328,"t":{"230":{"position":[[1368,5]]},"250":{"position":[[698,7],[1268,7]]},"258":{"position":[[509,7],[777,7]]},"605":{"position":[[747,4]]},"607":{"position":[[40,4]]}}}],["http",{"_index":527,"t":{"64":{"position":[[350,8],[612,5]]},"144":{"position":[[256,8],[403,8],[551,8]]},"218":{"position":[[59,4],[136,4],[190,4],[315,4],[520,4]]},"220":{"position":[[198,4]]},"268":{"position":[[65,5]]},"448":{"position":[[17,5]]}}}],["http://127.0.0.1:8645/debug/v1/info",{"_index":1348,"t":{"240":{"position":[[170,37]]},"280":{"position":[[184,37]]}}}],["http://127.0.0.1:8645/debug/v1/vers",{"_index":1488,"t":{"280":{"position":[[110,40]]}}}],["http://127.0.0.1:8645/health",{"_index":1359,"t":{"242":{"position":[[141,30]]}}}],["http://127.0.0.1:8645/relay/v1/auto/messag",{"_index":1490,"t":{"280":{"position":[[359,46]]}}}],["http://127.0.0.1:8645/store/v1/messages?contenttopics=%2fmi",{"_index":1498,"t":{"280":{"position":[[725,60]]}}}],["http://localhost:3000/d/yns_4vfvk/nwaku",{"_index":1485,"t":{"278":{"position":[[6,39]]}}}],["https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.j",{"_index":244,"t":{"20":{"position":[[735,70]]}}}],["https://creativecommons.org/licenses/by/4.0",{"_index":2637,"t":{"635":{"position":[[390,45]]}}}],["https://examples.waku.org",{"_index":184,"t":{"14":{"position":[[336,26]]}}}],["https://examples.waku.org/rln",{"_index":1728,"t":{"408":{"position":[[391,29]]}}}],["https://github.com/spacejam/sl",{"_index":1234,"t":{"210":{"position":[[1091,34]]}}}],["https://github.com/vacp2p/research/issues/148",{"_index":1735,"t":{"410":{"position":[[256,46]]},"418":{"position":[[476,46]]}}}],["https://github.com/waku",{"_index":618,"t":{"85":{"position":[[185,23]]},"119":{"position":[[678,23]]},"146":{"position":[[129,23]]},"176":{"position":[[99,23]]},"270":{"position":[[10,23]]},"410":{"position":[[878,23]]},"518":{"position":[[459,23]]},"522":{"position":[[0,23],[42,23]]},"524":{"position":[[122,23]]},"532":{"position":[[1141,23],[1264,23]]},"559":{"position":[[962,23]]},"577":{"position":[[172,23]]},"579":{"position":[[1080,23],[1169,23],[1321,23]]},"583":{"position":[[181,23],[2830,23]]},"609":{"position":[[21,23],[91,23],[164,23],[235,23]]},"613":{"position":[[31,23],[137,23],[225,23],[321,23]]},"617":{"position":[[70,23],[141,23]]},"621":{"position":[[52,23],[145,23]]},"625":{"position":[[42,23],[198,23],[362,23],[504,23]]}}}],["https://ideas.waku.org",{"_index":125,"t":{"6":{"position":[[1296,23]]}}}],["https://sh.rustup.r",{"_index":905,"t":{"144":{"position":[[280,20],[427,20],[575,20]]}}}],["https://unpkg.com/@waku/sdk@latest/bundle/index.j",{"_index":212,"t":{"18":{"position":[[227,53]]}}}],["https://vac.dev/build",{"_index":1744,"t":{"410":{"position":[[733,24]]}}}],["hub",{"_index":1066,"t":{"174":{"position":[[52,3]]}}}],["huge",{"_index":2331,"t":{"561":{"position":[[2060,4]]}}}],["hundr",{"_index":2653,"t":{"639":{"position":[[537,7]]}}}],["h|m|s|m",{"_index":1312,"t":{"230":{"position":[[529,8]]}}}],["i.",{"_index":2111,"t":{"530":{"position":[[63,4]]},"615":{"position":[[805,5]]}}}],["i13n",{"_index":2468,"t":{"585":{"position":[[176,5],[293,5],[502,5]]},"593":{"position":[[346,4]]},"597":{"position":[[93,4]]},"605":{"position":[[280,4],[1165,4]]}}}],["id",{"_index":1167,"t":{"206":{"position":[[39,2],[52,2],[112,2]]},"210":{"position":[[474,2],[537,2]]},"292":{"position":[[233,3],[628,3]]},"532":{"position":[[702,3]]}}}],["id'",{"_index":1540,"t":{"292":{"position":[[807,4]]}}}],["id=\"messag",{"_index":1006,"t":{"162":{"position":[[1479,11]]}}}],["id=1",{"_index":1091,"t":{"178":{"position":[[902,5]]}}}],["idea",{"_index":121,"t":{"6":{"position":[[1230,5]]},"553":{"position":[[537,4]]},"561":{"position":[[593,4],[1653,4]]}}}],["ideal",{"_index":2521,"t":{"601":{"position":[[329,7]]}}}],["ident",{"_index":1222,"t":{"210":{"position":[[491,8],[565,8]]},"402":{"position":[[231,8]]},"414":{"position":[[116,11]]},"549":{"position":[[99,9]]},"611":{"position":[[838,11]]},"615":{"position":[[594,10]]}}}],["identif",{"_index":1756,"t":{"414":{"position":[[311,14]]}}}],["identifi",{"_index":1169,"t":{"206":{"position":[[185,10]]},"288":{"position":[[311,12]]},"292":{"position":[[203,10]]},"344":{"position":[[68,8]]},"372":{"position":[[21,10]]},"378":{"position":[[46,10]]},"404":{"position":[[931,12]]},"414":{"position":[[77,11]]},"416":{"position":[[161,12]]},"422":{"position":[[190,8],[344,12]]},"468":{"position":[[638,11]]},"571":{"position":[[172,8]]},"649":{"position":[[277,11]]}}}],["idl",{"_index":1242,"t":{"210":{"position":[[1387,4]]}}}],["ii",{"_index":1911,"t":{"484":{"position":[[85,3]]},"486":{"position":[[582,3]]},"553":{"position":[[258,3]]},"555":{"position":[[926,3]]},"579":{"position":[[1130,3],[1574,3]]},"647":{"position":[[965,4]]}}}],["illustr",{"_index":1662,"t":{"330":{"position":[[18,12]]}}}],["imag",{"_index":435,"t":{"42":{"position":[[2465,6],[2550,6]]},"107":{"position":[[295,5]]},"174":{"position":[[17,6],[144,6]]},"176":{"position":[[30,5],[157,5],[175,5]]},"178":{"position":[[58,7],[116,5],[129,5]]},"234":{"position":[[857,6]]}}}],["immedi",{"_index":1725,"t":{"408":{"position":[[203,9]]},"480":{"position":[[185,11]]},"494":{"position":[[1075,12]]},"643":{"position":[[217,11]]}}}],["impact",{"_index":2056,"t":{"518":{"position":[[262,6],[343,7]]},"539":{"position":[[356,6]]},"561":{"position":[[2065,6]]},"579":{"position":[[1235,6]]},"613":{"position":[[285,6]]}}}],["implement",{"_index":92,"t":{"6":{"position":[[707,9]]},"12":{"position":[[8,11]]},"16":{"position":[[205,14]]},"77":{"position":[[137,9]]},"358":{"position":[[34,10]]},"398":{"position":[[56,12]]},"406":{"position":[[81,15]]},"408":{"position":[[354,14]]},"472":{"position":[[67,11]]},"545":{"position":[[50,11],[105,11],[165,11]]},"563":{"position":[[187,15]]}}}],["impli",{"_index":2228,"t":{"547":{"position":[[10,7]]},"557":{"position":[[281,7]]},"631":{"position":[[163,8],[1385,7]]},"637":{"position":[[246,5]]}}}],["implic",{"_index":1514,"t":{"286":{"position":[[71,13]]},"537":{"position":[[106,12],[961,12]]}}}],["implicit",{"_index":2505,"t":{"595":{"position":[[287,9]]}}}],["import",{"_index":210,"t":{"18":{"position":[[205,6]]},"20":{"position":[[713,6],[728,6]]},"28":{"position":[[94,6]]},"32":{"position":[[272,6]]},"34":{"position":[[86,6]]},"36":{"position":[[83,6]]},"46":{"position":[[135,6]]},"48":{"position":[[147,6]]},"50":{"position":[[273,6],[318,6],[813,6]]},"52":{"position":[[86,6],[131,6],[178,6]]},"54":{"position":[[123,6]]},"64":{"position":[[181,9]]},"97":{"position":[[162,6],[415,6],[882,6]]},"99":{"position":[[162,6],[570,6],[1051,6]]},"101":{"position":[[563,6],[640,6],[734,6],[2228,6],[2291,6]]},"103":{"position":[[453,6]]},"123":{"position":[[94,6]]},"125":{"position":[[85,6]]},"127":{"position":[[92,6]]},"136":{"position":[[151,6]]},"138":{"position":[[180,6]]},"160":{"position":[[182,6],[237,6],[681,6]]},"162":{"position":[[144,6],[189,6],[228,6],[286,6],[321,6]]},"164":{"position":[[208,6]]},"166":{"position":[[194,6]]},"168":{"position":[[223,6]]},"414":{"position":[[143,9]]},"430":{"position":[[131,6],[303,6]]},"432":{"position":[[7,6],[149,6]]},"434":{"position":[[7,6],[177,6]]},"436":{"position":[[133,6],[291,6],[465,6]]},"438":{"position":[[465,6],[622,6]]},"442":{"position":[[572,6],[686,6]]},"486":{"position":[[444,10]]},"557":{"position":[[139,9],[1614,9]]},"561":{"position":[[346,9]]},"611":{"position":[[861,9]]}}}],["impos",{"_index":522,"t":{"64":{"position":[[213,6]]},"298":{"position":[[517,7]]},"308":{"position":[[245,7]]},"386":{"position":[[164,8]]},"404":{"position":[[902,7]]}}}],["imposs",{"_index":1952,"t":{"488":{"position":[[426,11]]}}}],["improv",{"_index":299,"t":{"24":{"position":[[340,7]]},"292":{"position":[[510,7]]},"294":{"position":[[544,9]]},"497":{"position":[[563,13]]},"499":{"position":[[456,13]]},"534":{"position":[[874,8]]},"573":{"position":[[196,7]]},"579":{"position":[[690,11]]}}}],["in/out",{"_index":1941,"t":{"486":{"position":[[1679,6]]}}}],["incent",{"_index":1743,"t":{"410":{"position":[[682,9]]},"601":{"position":[[704,10],[734,10]]}}}],["incentiv",{"_index":2489,"t":{"591":{"position":[[13,12]]}}}],["incentivis",{"_index":278,"t":{"22":{"position":[[1372,15]]},"44":{"position":[[271,15]]},"408":{"position":[[20,12]]},"410":{"position":[[396,13]]},"446":{"position":[[383,15]]},"458":{"position":[[16,11]]},"585":{"position":[[146,15]]},"589":{"position":[[16,15]]},"601":{"position":[[80,12]]},"605":{"position":[[16,12]]},"623":{"position":[[67,12]]},"625":{"position":[[420,15]]}}}],["incid",{"_index":2244,"t":{"551":{"position":[[126,9]]}}}],["incident",{"_index":2647,"t":{"639":{"position":[[202,11]]}}}],["includ",{"_index":245,"t":{"20":{"position":[[814,7]]},"91":{"position":[[689,8]]},"144":{"position":[[55,9]]},"232":{"position":[[404,8]]},"272":{"position":[[341,7]]},"316":{"position":[[84,8]]},"324":{"position":[[305,9]]},"338":{"position":[[131,9]]},"344":{"position":[[182,8]]},"356":{"position":[[171,7]]},"384":{"position":[[84,9]]},"396":{"position":[[68,9]]},"412":{"position":[[360,7]]},"418":{"position":[[392,9]]},"444":{"position":[[223,8],[446,9]]},"452":{"position":[[233,9],[591,9]]},"460":{"position":[[5,8]]},"575":{"position":[[98,7]]},"597":{"position":[[44,7]]},"627":{"position":[[181,9]]},"631":{"position":[[172,9]]},"633":{"position":[[243,7],[727,9],[1259,9]]},"635":{"position":[[233,9]]},"637":{"position":[[104,9]]},"641":{"position":[[103,9],[210,9]]},"647":{"position":[[74,8],[1873,9]]}}}],["incom",{"_index":759,"t":{"113":{"position":[[163,8]]},"166":{"position":[[129,8]]},"282":{"position":[[141,8]]},"497":{"position":[[455,8]]},"499":{"position":[[348,8]]},"502":{"position":[[157,8]]},"506":{"position":[[255,8]]},"534":{"position":[[666,8]]}}}],["incorpor",{"_index":1646,"t":{"324":{"position":[[104,12]]},"647":{"position":[[1409,12]]}}}],["increas",{"_index":1293,"t":{"224":{"position":[[610,8]]},"290":{"position":[[8,8]]},"452":{"position":[[373,9]]},"541":{"position":[[118,9]]},"543":{"position":[[159,8],[211,8]]},"553":{"position":[[470,10]]},"561":{"position":[[926,10],[1580,9],[2170,8]]},"589":{"position":[[327,9]]}}}],["incur",{"_index":2356,"t":{"571":{"position":[[554,5]]}}}],["indemnifi",{"_index":2655,"t":{"641":{"position":[[10,9]]}}}],["independ",{"_index":1902,"t":{"478":{"position":[[110,11]]},"585":{"position":[[94,11]]}}}],["index",{"_index":842,"t":{"138":{"position":[[41,5],[793,5]]},"162":{"position":[[1246,6]]},"210":{"position":[[318,5],[328,5]]}}}],["indic",{"_index":623,"t":{"89":{"position":[[277,9]]},"160":{"position":[[930,9]]},"314":{"position":[[177,10]]},"330":{"position":[[216,9]]},"468":{"position":[[418,9]]},"528":{"position":[[687,9]]},"530":{"position":[[3664,9]]},"553":{"position":[[505,9]]},"561":{"position":[[225,8]]}}}],["individu",{"_index":2262,"t":{"557":{"position":[[542,10],[714,10],[2016,10]]}}}],["industri",{"_index":2619,"t":{"633":{"position":[[168,8]]}}}],["inf",{"_index":1135,"t":{"192":{"position":[[84,3]]},"196":{"position":[[93,3]]},"198":{"position":[[96,3]]}}}],["info",{"_index":313,"t":{"28":{"position":[[328,4]]},"34":{"position":[[1037,4]]},"36":{"position":[[363,4]]},"44":{"position":[[142,4]]},"66":{"position":[[311,5],[387,5]]},"91":{"position":[[1014,4]]},"93":{"position":[[170,4]]},"101":{"position":[[176,4]]},"105":{"position":[[206,4]]},"109":{"position":[[433,4]]},"111":{"position":[[623,4]]},"131":{"position":[[693,4]]},"133":{"position":[[717,4]]},"138":{"position":[[935,4]]},"140":{"position":[[542,4]]},"142":{"position":[[239,4]]},"162":{"position":[[1695,4]]},"168":{"position":[[1262,4]]},"172":{"position":[[115,4]]},"178":{"position":[[841,4],[1022,4]]},"180":{"position":[[117,4]]},"184":{"position":[[673,4]]},"186":{"position":[[796,4]]},"188":{"position":[[837,4]]},"190":{"position":[[0,4],[104,4],[209,4]]},"204":{"position":[[127,5]]},"232":{"position":[[466,4]]},"240":{"position":[[122,4],[562,4]]},"248":{"position":[[695,4]]},"258":{"position":[[697,4]]},"262":{"position":[[304,4]]},"268":{"position":[[170,4]]},"280":{"position":[[163,4]]},"288":{"position":[[467,4]]},"292":{"position":[[575,4]]},"298":{"position":[[231,4]]},"310":{"position":[[264,4]]},"312":{"position":[[234,4]]},"314":{"position":[[306,4]]},"450":{"position":[[169,4]]},"534":{"position":[[838,4]]}}}],["inform",{"_index":673,"t":{"101":{"position":[[366,11]]},"103":{"position":[[273,11]]},"178":{"position":[[740,11]]},"194":{"position":[[39,11]]},"240":{"position":[[91,11]]},"288":{"position":[[257,12],[324,11]]},"298":{"position":[[325,11]]},"304":{"position":[[196,8]]},"330":{"position":[[875,9]]},"344":{"position":[[210,11]]},"348":{"position":[[51,11]]},"362":{"position":[[33,11]]},"368":{"position":[[47,11]]},"404":{"position":[[1568,11]]},"416":{"position":[[174,11]]},"422":{"position":[[357,11]]},"464":{"position":[[78,6]]},"472":{"position":[[191,11]]},"476":{"position":[[937,11]]},"561":{"position":[[986,11]]},"583":{"position":[[34,8]]},"631":{"position":[[1076,13],[1245,11],[1505,11]]},"633":{"position":[[803,11],[982,11],[1246,12]]}}}],["infrastructur",{"_index":96,"t":{"6":{"position":[[808,15]]},"410":{"position":[[777,14]]},"446":{"position":[[134,15],[301,14]]},"458":{"position":[[153,14]]},"563":{"position":[[552,14]]}}}],["infring",{"_index":2596,"t":{"631":{"position":[[278,12]]}}}],["infura",{"_index":1812,"t":{"448":{"position":[[122,6],[146,6]]}}}],["init",{"_index":919,"t":{"144":{"position":[[645,4]]}}}],["initi",{"_index":1670,"t":{"334":{"position":[[21,7]]},"406":{"position":[[73,7]]},"545":{"position":[[8,7]]},"567":{"position":[[17,7],[144,7]]},"601":{"position":[[856,7]]}}}],["initialis",{"_index":766,"t":{"117":{"position":[[0,10],[191,10]]},"168":{"position":[[143,11]]},"302":{"position":[[5,12]]}}}],["inject",{"_index":2002,"t":{"497":{"position":[[204,9]]},"499":{"position":[[97,9]]},"502":{"position":[[102,9],[127,9]]},"504":{"position":[[252,9]]},"506":{"position":[[77,9],[333,9]]},"549":{"position":[[211,9]]},"619":{"position":[[200,9]]}}}],["innov",{"_index":1819,"t":{"452":{"position":[[155,10]]}}}],["input",{"_index":988,"t":{"162":{"position":[[502,5],[1460,6],[1491,6],[2339,5]]},"164":{"position":[[100,5]]}}}],["inputmessag",{"_index":985,"t":{"162":{"position":[[363,14],[471,12]]},"164":{"position":[[613,12]]}}}],["inputmessage.length",{"_index":1046,"t":{"164":{"position":[[445,19]]}}}],["insecur",{"_index":524,"t":{"64":{"position":[[288,8]]},"68":{"position":[[57,8]]}}}],["insert",{"_index":2069,"t":{"526":{"position":[[8,6],[473,7],[1469,6]]},"532":{"position":[[106,6],[445,6],[1416,9],[1523,9],[1617,6],[1658,6],[1793,9]]},"621":{"position":[[129,9]]}}}],["inspir",{"_index":123,"t":{"6":{"position":[[1254,12]]},"597":{"position":[[169,8]]}}}],["instal",{"_index":204,"t":{"18":{"position":[[0,7],[81,7],[175,10]]},"20":{"position":[[501,7],[583,7],[680,10]]},"26":{"position":[[214,12]]},"36":{"position":[[396,12]]},"42":{"position":[[9,7],[142,12],[445,12],[1347,12]]},"50":{"position":[[47,7],[92,7]]},"95":{"position":[[0,7],[122,7]]},"117":{"position":[[244,9]]},"144":{"position":[[205,7],[341,7],[606,7]]},"158":{"position":[[292,7],[399,7]]},"172":{"position":[[17,9]]}}}],["instanc",{"_index":2149,"t":{"532":{"position":[[342,9]]},"593":{"position":[[92,9]]},"615":{"position":[[1018,9]]}}}],["instanceof",{"_index":632,"t":{"91":{"position":[[732,10]]}}}],["instead",{"_index":480,"t":{"48":{"position":[[1485,7]]},"142":{"position":[[230,8]]},"210":{"position":[[1543,7]]},"262":{"position":[[453,8]]},"288":{"position":[[283,7]]},"414":{"position":[[89,7]]},"438":{"position":[[116,8],[180,8],[285,8]]},"440":{"position":[[51,8]]},"442":{"position":[[137,8],[325,7]]},"494":{"position":[[116,7]]},"539":{"position":[[283,8]]},"545":{"position":[[240,8]]}}}],["institut",{"_index":2242,"t":{"551":{"position":[[50,9]]},"647":{"position":[[1275,11]]}}}],["instruct",{"_index":417,"t":{"42":{"position":[[1331,12],[2436,13]]},"172":{"position":[[64,12]]},"250":{"position":[[856,8]]},"404":{"position":[[1771,12]]},"450":{"position":[[59,12]]},"492":{"position":[[122,12],[323,12]]}}}],["instrument",{"_index":2280,"t":{"559":{"position":[[154,10]]}}}],["integ",{"_index":1310,"t":{"230":{"position":[[382,7],[493,7]]},"581":{"position":[[264,8]]}}}],["integr",{"_index":15,"t":{"2":{"position":[[164,9]]},"6":{"position":[[329,9]]},"12":{"position":[[53,9],[314,11]]},"16":{"position":[[306,9]]},"22":{"position":[[644,9]]},"42":{"position":[[1161,9],[1669,9]]},"95":{"position":[[34,11]]},"101":{"position":[[141,9]]},"156":{"position":[[210,9]]},"158":{"position":[[326,11]]},"168":{"position":[[1404,10]]},"388":{"position":[[44,9]]},"398":{"position":[[242,10]]},"402":{"position":[[192,10]]},"420":{"position":[[66,9]]},"534":{"position":[[825,12]]},"571":{"position":[[418,10]]}}}],["intellectu",{"_index":2597,"t":{"631":{"position":[[294,12]]}}}],["intend",{"_index":1832,"t":{"458":{"position":[[5,7]]},"464":{"position":[[66,8]]},"631":{"position":[[1042,8]]}}}],["intention",{"_index":1760,"t":{"418":{"position":[[104,13]]}}}],["inter",{"_index":2326,"t":{"561":{"position":[[1471,5]]}}}],["interact",{"_index":76,"t":{"6":{"position":[[346,12],[520,12]]},"14":{"position":[[87,8]]},"28":{"position":[[62,8]]},"66":{"position":[[56,13]]},"123":{"position":[[62,8]]},"154":{"position":[[478,8],[523,8]]},"232":{"position":[[413,11]]},"240":{"position":[[8,8]]},"256":{"position":[[29,8]]},"264":{"position":[[180,8]]},"266":{"position":[[89,8]]},"280":{"position":[[53,11]]},"302":{"position":[[848,12]]},"322":{"position":[[95,11]]},"330":{"position":[[35,11]]},"366":{"position":[[94,11]]},"448":{"position":[[182,8]]},"470":{"position":[[218,8]]},"494":{"position":[[747,12]]},"497":{"position":[[635,12]]},"499":{"position":[[528,12]]},"565":{"position":[[348,11]]},"567":{"position":[[152,12],[291,12]]},"607":{"position":[[179,12]]}}}],["interconnect",{"_index":2220,"t":{"545":{"position":[[372,14]]}}}],["interest",{"_index":1517,"t":{"288":{"position":[[120,10]]},"376":{"position":[[155,9]]},"378":{"position":[[74,8],[112,10]]},"468":{"position":[[684,8]]},"492":{"position":[[243,10]]},"555":{"position":[[531,10]]}}}],["interfac",{"_index":169,"t":{"14":{"position":[[44,9]]},"154":{"position":[[577,9]]},"162":{"position":[[19,9],[1157,11],[1987,9]]},"166":{"position":[[171,10]]}}}],["intern",{"_index":2633,"t":{"635":{"position":[[87,13]]},"647":{"position":[[1325,13],[1972,13]]}}}],["internal/priv",{"_index":1778,"t":{"426":{"position":[[178,16]]}}}],["internet",{"_index":1682,"t":{"356":{"position":[[97,8],[135,8]]},"486":{"position":[[541,8]]},"579":{"position":[[114,8]]}}}],["interoper",{"_index":224,"t":{"20":{"position":[[190,17]]},"42":{"position":[[314,17]]},"511":{"position":[[25,16]]}}}],["interpret",{"_index":2698,"t":{"649":{"position":[[423,14]]}}}],["introduc",{"_index":1656,"t":{"326":{"position":[[275,10]]},"488":{"position":[[151,11],[481,11]]},"585":{"position":[[447,9]]},"595":{"position":[[12,10],[391,10]]}}}],["introduct",{"_index":1955,"t":{"490":{"position":[[136,12]]}}}],["invalid",{"_index":566,"t":{"68":{"position":[[81,7],[188,10]]},"595":{"position":[[243,8]]},"649":{"position":[[537,7]]}}}],["invest",{"_index":2133,"t":{"530":{"position":[[3177,8]]}}}],["investig",{"_index":568,"t":{"68":{"position":[[230,11]]},"573":{"position":[[462,14],[610,14],[696,11],[802,14]]}}}],["invoc",{"_index":938,"t":{"148":{"position":[[54,10]]}}}],["involv",{"_index":1552,"t":{"294":{"position":[[593,8]]},"304":{"position":[[113,8]]},"318":{"position":[[478,8]]},"404":{"position":[[236,8]]},"513":{"position":[[87,8]]},"557":{"position":[[786,8]]},"589":{"position":[[766,8]]},"611":{"position":[[1045,9]]}}}],["io4qdxtotg86ppck2kvmevcxc2advzwrxxsvnzeaoa0jhshbm5qed69rqz1s1mweeqj3aoklo_7eu9iibcpmveklcqbgmlkgny0ixnly3ayntzrmaeddbhk1gx6y_zv5dvw5qb3dtsommvhtzo1wsorrf2lol2ddwrwgimohxdha3uyaw",{"_index":1122,"t":{"186":{"position":[[618,177]]},"198":{"position":[[218,177],[441,177]]}}}],["ip",{"_index":459,"t":{"48":{"position":[[394,4],[1173,2]]},"178":{"position":[[567,3],[632,3]]},"182":{"position":[[352,4]]},"184":{"position":[[443,3],[669,3],[906,3]]},"188":{"position":[[526,4]]},"208":{"position":[[161,3]]},"222":{"position":[[224,3]]},"224":{"position":[[365,2],[389,2],[439,2],[481,2],[530,2]]},"248":{"position":[[778,2]]},"262":{"position":[[103,2]]},"288":{"position":[[99,2]]},"318":{"position":[[259,3]]},"452":{"position":[[243,3]]},"454":{"position":[[513,2]]},"468":{"position":[[534,2],[605,2],[712,2],[818,2]]}}}],["ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamqcsh9v81xoqtwgut3qwkzwbwy1tttqwpr3djhu2tswmn",{"_index":1144,"t":{"192":{"position":[[391,80]]}}}],["ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamubpqufqqje3jiqob5yoiubbya59nb4qqezeitnghea6w",{"_index":1352,"t":{"240":{"position":[[269,82]]}}}],["ip4/0.0.0.0/tcp/60002/ws/p2p/16uiu2hakzjwwgeaxfegnmkfpspc6vgbrqcdtlg5q3gmk2v4pqw7h",{"_index":466,"t":{"48":{"position":[[528,86],[931,86]]},"52":{"position":[[307,86]]}}}],["ip4/0.0.0.0/tcp/60003/ws/p2p/16uiu2hamfba7lgtwy5wvvikdmxvo3cklqkmvvtudu63fe8safeqj",{"_index":467,"t":{"48":{"position":[[615,86],[1018,86]]},"52":{"position":[[394,86]]}}}],["ip4/0.0.0.0/tcp/8000/ws/p2p/16uiu2hamqcsh9v81xoqtwgut3qwkzwbwy1tttqwpr3djhu2tswmn",{"_index":1145,"t":{"192":{"position":[[502,82]]}}}],["ip4/1.2.3.4/tcp/1234/p2p/16uiu2ham",{"_index":806,"t":{"125":{"position":[[495,40]]},"168":{"position":[[1059,40]]}}}],["ipf",{"_index":442,"t":{"42":{"position":[[2640,4]]},"404":{"position":[[970,5],[1036,4]]},"597":{"position":[[81,5]]}}}],["ipt",{"_index":2275,"t":{"557":{"position":[[2005,3]]}}}],["ipv4",{"_index":1212,"t":{"208":{"position":[[294,4]]},"248":{"position":[[18,4],[67,4]]}}}],["ish",{"_index":2192,"t":{"539":{"position":[[29,4],[92,4]]}}}],["isload",{"_index":973,"t":{"160":{"position":[[791,9],[918,11]]},"162":{"position":[[641,9]]}}}],["isn't",{"_index":420,"t":{"42":{"position":[[1737,5]]}}}],["issu",{"_index":141,"t":{"10":{"position":[[264,6]]},"24":{"position":[[243,5]]},"42":{"position":[[2103,6]]},"58":{"position":[[15,6]]},"64":{"position":[[673,6],[909,6]]},"70":{"position":[[322,5],[397,6]]},"91":{"position":[[1097,7]]},"178":{"position":[[1194,6]]},"242":{"position":[[241,6]]},"280":{"position":[[902,6]]},"532":{"position":[[37,6]]},"537":{"position":[[137,5]]},"555":{"position":[[824,5]]},"569":{"position":[[485,6],[621,7]]},"573":{"position":[[480,7],[880,6],[912,5]]},"577":{"position":[[11,5]]},"579":{"position":[[1034,5],[1307,6],[1495,5]]},"615":{"position":[[549,7]]},"625":{"position":[[29,6]]}}}],["it'",{"_index":324,"t":{"28":{"position":[[723,4]]},"42":{"position":[[2510,4]]},"64":{"position":[[176,4]]},"234":{"position":[[190,4]]},"547":{"position":[[462,4]]},"553":{"position":[[230,4]]},"561":{"position":[[740,4],[2255,4]]},"583":{"position":[[802,4]]},"601":{"position":[[875,4]]}}}],["item",{"_index":1037,"t":{"162":{"position":[[2313,6]]},"575":{"position":[[262,5]]}}}],["itself",{"_index":764,"t":{"113":{"position":[[458,7]]},"250":{"position":[[1559,7]]},"526":{"position":[[1359,6]]},"543":{"position":[[273,6]]},"549":{"position":[[255,7]]},"561":{"position":[[1526,7]]},"605":{"position":[[156,6]]}}}],["iu4qbkyj8ovxwz4fialxz_1a8docu2wc",{"_index":1151,"t":{"196":{"position":[[212,32],[445,32]]}}}],["iu4qcqzxzdb_jsymloyor0f5e_95hbiywgo_wgx2riddbmcjzktzmlcr0wmmzv47lgik_tvwww5ming90ris83tismbgmlkgny0gmlwhaaaaacjc2vjcdi1nmsxoqpszztg",{"_index":1354,"t":{"240":{"position":[[371,131]]}}}],["javascript",{"_index":161,"t":{"12":{"position":[[227,10]]},"16":{"position":[[23,10],[151,10]]},"42":{"position":[[70,10],[1453,10],[1722,10]]},"62":{"position":[[161,10]]},"154":{"position":[[594,10]]},"156":{"position":[[23,10]]}}}],["javascript/typescript",{"_index":158,"t":{"12":{"position":[[167,21]]}}}],["jmeter",{"_index":2104,"t":{"528":{"position":[[416,7],[584,6],[787,6]]}}}],["join",{"_index":1347,"t":{"238":{"position":[[3,4]]},"246":{"position":[[3,4]]}}}],["jq",{"_index":900,"t":{"144":{"position":[[240,2]]}}}],["js",{"_index":291,"t":{"24":{"position":[[112,3],[256,2]]},"40":{"position":[[1414,2]]},"119":{"position":[[266,2],[425,2]]},"140":{"position":[[878,2]]},"408":{"position":[[387,3],[421,3]]},"494":{"position":[[796,2]]}}}],["json",{"_index":240,"t":{"20":{"position":[[447,4]]},"42":{"position":[[425,5]]},"204":{"position":[[278,4]]}}}],["judg",{"_index":2670,"t":{"647":{"position":[[506,6]]}}}],["jump",{"_index":2268,"t":{"557":{"position":[[1342,4]]}}}],["juri",{"_index":2672,"t":{"647":{"position":[[615,4]]}}}],["jurisdict",{"_index":2606,"t":{"631":{"position":[[826,13]]},"647":{"position":[[650,14]]}}}],["k",{"_index":564,"t":{"68":{"position":[[50,1],[128,1]]},"290":{"position":[[17,1]]},"292":{"position":[[584,1],[595,1],[771,1],[829,1]]},"615":{"position":[[346,1],[404,1]]}}}],["kademlia'",{"_index":1291,"t":{"224":{"position":[[587,10]]}}}],["kb",{"_index":2075,"t":{"526":{"position":[[293,3]]}}}],["kb/",{"_index":1999,"t":{"497":{"position":[[141,4],[446,4],[480,4]]},"499":{"position":[[34,4],[339,4],[373,4]]},"502":{"position":[[176,6],[217,6]]},"506":{"position":[[274,6],[315,6]]}}}],["keen",{"_index":2337,"t":{"565":{"position":[[107,4]]},"573":{"position":[[361,4]]},"575":{"position":[[55,4],[180,4]]}}}],["keep",{"_index":412,"t":{"42":{"position":[[866,7]]},"72":{"position":[[177,4]]},"99":{"position":[[279,4]]},"148":{"position":[[136,4]]},"210":{"position":[[1348,4],[1372,4]]},"286":{"position":[[113,4]]},"494":{"position":[[1088,4],[1271,4]]},"530":{"position":[[1708,5]]},"537":{"position":[[888,4]]},"579":{"position":[[411,4]]},"615":{"position":[[98,5]]}}}],["kept",{"_index":2685,"t":{"647":{"position":[[1742,4]]}}}],["key",{"_index":513,"t":{"62":{"position":[[89,4],[172,3]]},"97":{"position":[[43,3],[157,4],[258,3],[641,3],[1265,3],[1357,3]]},"99":{"position":[[31,3],[64,3],[157,4],[274,4],[353,3],[374,4],[521,3],[792,3],[996,3],[1440,3]]},"101":{"position":[[313,3],[536,4],[855,3],[935,4],[1292,3],[1360,3],[1587,3],[1655,3],[2045,3],[2134,3],[2388,3],[2815,3],[2896,3],[3078,3]]},"103":{"position":[[27,4],[140,4],[187,3],[269,3],[364,4],[554,4],[658,4],[796,4]]},"113":{"position":[[136,3]]},"184":{"position":[[284,5],[346,3]]},"202":{"position":[[182,4]]},"206":{"position":[[232,3]]},"210":{"position":[[477,3],[507,3],[551,3],[585,3],[837,3],[849,3]]},"228":{"position":[[213,3],[239,3]]},"252":{"position":[[26,3],[144,3],[215,4],[258,3],[495,3],[546,3],[629,3],[728,3],[829,3],[846,3],[1015,3]]},"254":{"position":[[461,3],[488,3],[707,3],[734,3],[1058,3],[1197,3]]},"274":{"position":[[34,3]]},"288":{"position":[[379,5],[456,3]]},"292":{"position":[[244,4]]},"360":{"position":[[7,3],[55,3]]},"372":{"position":[[121,4]]},"402":{"position":[[104,3]]},"456":{"position":[[118,3]]},"497":{"position":[[21,3]]},"532":{"position":[[624,3],[687,3]]}}}],["key={index",{"_index":999,"t":{"162":{"position":[[1263,11]]}}}],["key]@[domain",{"_index":492,"t":{"50":{"position":[[433,12]]},"184":{"position":[[603,12]]}}}],["keystore/keystore.json",{"_index":1478,"t":{"274":{"position":[[314,22]]}}}],["kind",{"_index":1164,"t":{"204":{"position":[[211,4]]},"631":{"position":[[146,5]]}}}],["kit",{"_index":175,"t":{"14":{"position":[[172,3]]}}}],["know",{"_index":318,"t":{"28":{"position":[[570,4]]}}}],["knowledg",{"_index":1692,"t":{"380":{"position":[[58,9]]},"404":{"position":[[1280,9]]},"605":{"position":[[427,9]]},"607":{"position":[[134,10]]}}}],["known",{"_index":1578,"t":{"302":{"position":[[222,5]]},"583":{"position":[[2080,5]]},"605":{"position":[[732,5]]},"647":{"position":[[2160,5]]}}}],["l",{"_index":937,"t":{"146":{"position":[[197,1]]}}}],["laid",{"_index":1885,"t":{"476":{"position":[[240,4]]}}}],["languag",{"_index":151,"t":{"12":{"position":[[78,9]]},"647":{"position":[[1765,8]]}}}],["laptop",{"_index":2373,"t":{"579":{"position":[[88,6]]},"583":{"position":[[600,7]]}}}],["larg",{"_index":1713,"t":{"404":{"position":[[1052,6],[1173,5]]},"410":{"position":[[123,5]]},"509":{"position":[[132,5]]}}}],["larger",{"_index":1822,"t":{"452":{"position":[[567,6]]}}}],["last",{"_index":866,"t":{"140":{"position":[[710,4]]},"230":{"position":[[691,4]]},"250":{"position":[[1246,4]]},"464":{"position":[[13,4]]},"627":{"position":[[13,4]]}}}],["lastmessag",{"_index":846,"t":{"138":{"position":[[628,11]]}}}],["late",{"_index":2520,"t":{"601":{"position":[[122,4]]}}}],["latenc",{"_index":1594,"t":{"304":{"position":[[279,8]]},"318":{"position":[[186,8]]},"452":{"position":[[411,8]]},"504":{"position":[[24,7],[111,7],[697,7],[733,7]]},"543":{"position":[[569,7]]},"557":{"position":[[1376,7]]},"559":{"position":[[453,7]]},"561":{"position":[[1482,7]]},"563":{"position":[[392,7]]}}}],["latency=100m",{"_index":2285,"t":{"559":{"position":[[430,14]]}}}],["later",{"_index":1611,"t":{"312":{"position":[[121,6]]},"330":{"position":[[929,5]]},"619":{"position":[[292,6]]}}}],["latest",{"_index":290,"t":{"24":{"position":[[76,6]]},"117":{"position":[[354,6]]},"142":{"position":[[92,6]]},"234":{"position":[[606,6]]},"511":{"position":[[80,6]]},"547":{"position":[[140,6]]}}}],["latitud",{"_index":2072,"t":{"526":{"position":[[241,8]]}}}],["launch",{"_index":1481,"t":{"276":{"position":[[0,6]]}}}],["law",{"_index":2603,"t":{"631":{"position":[[708,4],[976,5]]},"639":{"position":[[639,4]]},"645":{"position":[[6,3],[145,4]]},"647":{"position":[[66,3]]}}}],["lawsuit",{"_index":2691,"t":{"647":{"position":[[2241,7]]}}}],["layer",{"_index":93,"t":{"6":{"position":[[741,5],[824,5],[908,5]]},"412":{"position":[[16,6]]},"414":{"position":[[46,7]]},"450":{"position":[[248,5]]}}}],["lead",{"_index":1397,"t":{"252":{"position":[[50,7]]},"414":{"position":[[283,7]]},"615":{"position":[[722,5]]}}}],["leaf",{"_index":1829,"t":{"454":{"position":[[402,4]]}}}],["leak",{"_index":1721,"t":{"404":{"position":[[1551,4]]}}}],["learn",{"_index":25,"t":{"2":{"position":[[286,5]]},"22":{"position":[[68,5],[189,5],[324,5],[458,5],[592,5],[727,5],[880,5],[1009,5],[1133,5],[1265,5]]},"28":{"position":[[515,5]]},"42":{"position":[[494,5],[628,5]]},"150":{"position":[[182,5]]},"152":{"position":[[174,5]]},"154":{"position":[[80,5]]},"168":{"position":[[1594,5]]},"178":{"position":[[1457,5]]},"198":{"position":[[779,5]]},"236":{"position":[[178,5]]},"242":{"position":[[519,5]]},"266":{"position":[[51,5]]},"280":{"position":[[1199,5]]},"282":{"position":[[308,5]]},"294":{"position":[[443,5]]},"404":{"position":[[121,5]]},"444":{"position":[[533,5]]},"454":{"position":[[537,8]]}}}],["leav",{"_index":2226,"t":{"545":{"position":[[658,7]]},"583":{"position":[[2514,7]]}}}],["led",{"_index":2297,"t":{"559":{"position":[[834,3]]}}}],["legal",{"_index":1850,"t":{"466":{"position":[[212,5]]},"468":{"position":[[184,5]]},"629":{"position":[[152,5]]},"631":{"position":[[431,9],[785,7],[1565,6]]},"639":{"position":[[93,5]]}}}],["legal@free.technolog",{"_index":1906,"t":{"482":{"position":[[89,22]]},"649":{"position":[[902,22]]}}}],["legisl",{"_index":1862,"t":{"468":{"position":[[230,12]]},"474":{"position":[[713,12]]},"476":{"position":[[269,12]]}}}],["legitim",{"_index":1865,"t":{"468":{"position":[[673,10]]}}}],["leobago",{"_index":2393,"t":{"581":{"position":[[175,8]]}}}],["less",{"_index":1294,"t":{"224":{"position":[[623,4]]},"448":{"position":[[263,5]]},"557":{"position":[[237,4],[248,4]]},"583":{"position":[[437,5],[1085,4],[1803,4]]}}}],["let",{"_index":753,"t":{"111":{"position":[[232,4]]}}}],["let'",{"_index":979,"t":{"162":{"position":[[0,5]]},"254":{"position":[[1303,5]]},"486":{"position":[[14,5]]},"557":{"position":[[0,5]]}}}],["level",{"_index":748,"t":{"111":{"position":[[99,5]]},"190":{"position":[[113,6]]},"204":{"position":[[35,5],[76,5],[105,7]]},"282":{"position":[[98,5]]},"336":{"position":[[68,5]]},"474":{"position":[[297,5]]},"497":{"position":[[743,6]]},"499":{"position":[[636,6]]},"530":{"position":[[1723,5]]},"557":{"position":[[64,6]]}}}],["leverag",{"_index":1680,"t":{"352":{"position":[[57,9]]},"358":{"position":[[64,9]]},"565":{"position":[[150,8]]}}}],["liabil",{"_index":1903,"t":{"478":{"position":[[179,9]]},"639":{"position":[[73,10],[484,9],[572,9]]}}}],["liabl",{"_index":2641,"t":{"637":{"position":[[498,6]]},"639":{"position":[[20,6]]}}}],["lib",{"_index":915,"t":{"144":{"position":[[533,4]]}}}],["libp2p",{"_index":473,"t":{"48":{"position":[[1285,7]]},"50":{"position":[[623,7],[935,7]]},"52":{"position":[[670,7]]},"58":{"position":[[86,6]]},"60":{"position":[[195,7]]},"62":{"position":[[277,6]]},"93":{"position":[[185,6]]},"113":{"position":[[172,6]]},"188":{"position":[[890,6]]},"206":{"position":[[318,6],[755,6]]},"296":{"position":[[655,6]]},"300":{"position":[[117,6]]},"306":{"position":[[126,6]]},"350":{"position":[[0,6]]},"404":{"position":[[298,6]]},"414":{"position":[[60,6]]},"456":{"position":[[30,7]]},"462":{"position":[[0,6]]},"502":{"position":[[21,6],[150,6],[191,6]]},"526":{"position":[[723,8]]}}}],["libp2p'",{"_index":1833,"t":{"458":{"position":[[75,8]]}}}],["libp2p.getp",{"_index":502,"t":{"54":{"position":[[66,17]]}}}],["libp2p/bootstrap",{"_index":501,"t":{"52":{"position":[[157,20]]}}}],["libpq",{"_index":909,"t":{"144":{"position":[[372,5]]}}}],["libpq.5.dylib",{"_index":922,"t":{"144":{"position":[[678,13]]}}}],["libpq5",{"_index":899,"t":{"144":{"position":[[233,6]]}}}],["libpqisbusi",{"_index":2140,"t":{"530":{"position":[[3641,13]]}}}],["librari",{"_index":890,"t":{"144":{"position":[[130,8]]},"388":{"position":[[16,10]]},"569":{"position":[[47,9]]},"573":{"position":[[392,8]]}}}],["licenc",{"_index":2635,"t":{"635":{"position":[[138,7],[342,8]]}}}],["licens",{"_index":1907,"t":{"482":{"position":[[129,8]]},"635":{"position":[[101,7]]},"649":{"position":[[942,8]]}}}],["light",{"_index":253,"t":{"22":{"position":[[167,5],[231,5],[253,5],[380,5]]},"26":{"position":[[88,5],[126,5]]},"28":{"position":[[47,5],[161,5]]},"34":{"position":[[191,7]]},"38":{"position":[[49,5],[413,5]]},"40":{"position":[[1356,5],[1408,5],[1421,5]]},"87":{"position":[[169,5],[211,5]]},"97":{"position":[[699,5]]},"99":{"position":[[850,5]]},"101":{"position":[[1750,5]]},"121":{"position":[[47,5]]},"123":{"position":[[47,5],[161,5]]},"140":{"position":[[816,5]]},"160":{"position":[[297,5],[437,5],[604,5],[759,5],[841,5]]},"162":{"position":[[609,5],[1078,5]]},"164":{"position":[[387,5]]},"238":{"position":[[527,5]]},"258":{"position":[[25,5]]},"260":{"position":[[25,5],[51,5],[163,5]]},"288":{"position":[[23,5]]},"298":{"position":[[165,5]]},"302":{"position":[[800,5]]},"310":{"position":[[23,5]]},"314":{"position":[[0,5],[321,5]]},"328":{"position":[[289,5]]},"346":{"position":[[34,5]]},"352":{"position":[[2,5]]},"354":{"position":[[0,5],[34,5]]},"370":{"position":[[57,5]]},"422":{"position":[[522,5]]},"430":{"position":[[56,5]]},"537":{"position":[[549,5]]},"583":{"position":[[723,5],[1573,5],[1689,5]]},"599":{"position":[[245,5],[292,5],[455,5],[526,5],[615,5],[677,5],[717,5]]},"603":{"position":[[16,5]]},"611":{"position":[[934,5]]},"625":{"position":[[459,5]]}}}],["lightn",{"_index":2545,"t":{"611":{"position":[[674,10]]}}}],["lightnodeprovid",{"_index":961,"t":{"160":{"position":[[90,17],[246,17],[484,18],[535,20]]}}}],["lightpush",{"_index":495,"t":{"50":{"position":[[520,10]]},"52":{"position":[[550,10]]},"206":{"position":[[1056,10]]},"216":{"position":[[31,9],[54,9],[125,9]]},"230":{"position":[[1140,9]]},"260":{"position":[[81,9],[245,9],[400,9]]},"504":{"position":[[452,9]]},"599":{"position":[[281,10],[990,10]]},"625":{"position":[[475,10]]}}}],["lightpush.send",{"_index":371,"t":{"38":{"position":[[110,16]]}}}],["lightpush=tru",{"_index":1450,"t":{"260":{"position":[[119,14]]}}}],["lightpushnod",{"_index":1271,"t":{"216":{"position":[[85,13]]},"260":{"position":[[191,13]]}}}],["lightpushnode=/dns4/nod",{"_index":1452,"t":{"260":{"position":[[464,24]]}}}],["lightpushnode=[light",{"_index":1451,"t":{"260":{"position":[[309,20]]}}}],["lightpush|filter|px|store|storev2|storev3",{"_index":1308,"t":{"230":{"position":[[321,41]]}}}],["lightweight",{"_index":1333,"t":{"232":{"position":[[11,11]]},"284":{"position":[[924,11]]},"310":{"position":[[149,11]]},"346":{"position":[[158,11]]}}}],["like",{"_index":77,"t":{"6":{"position":[[364,5]]}}}],["limit",{"_index":425,"t":{"42":{"position":[[1784,12]]},"64":{"position":[[228,11]]},"72":{"position":[[143,11]]},"83":{"position":[[72,12]]},"224":{"position":[[392,5],[484,5]]},"230":{"position":[[36,5],[105,5],[684,6],[899,5],[1176,8]]},"274":{"position":[[186,7],[248,6]]},"298":{"position":[[87,7]]},"308":{"position":[[60,5],[153,5]]},"310":{"position":[[245,7]]},"314":{"position":[[57,7]]},"318":{"position":[[293,7]]},"328":{"position":[[73,7],[347,7]]},"352":{"position":[[27,7]]},"380":{"position":[[5,5],[93,8]]},"384":{"position":[[9,7]]},"386":{"position":[[63,5],[135,5]]},"394":{"position":[[130,7]]},"400":{"position":[[137,7]]},"404":{"position":[[1219,8],[1251,8]]},"408":{"position":[[90,5],[149,7]]},"412":{"position":[[314,12]]},"418":{"position":[[418,5]]},"444":{"position":[[281,8]]},"452":{"position":[[720,7]]},"460":{"position":[[259,7]]},"468":{"position":[[10,5]]},"470":{"position":[[19,7]]},"476":{"position":[[40,5]]},"484":{"position":[[115,8]]},"486":{"position":[[586,7],[2006,5]]},"488":{"position":[[80,8],[185,5],[243,5],[514,5]]},"490":{"position":[[82,5],[272,8],[457,6],[554,5],[907,6]]},"518":{"position":[[83,5]]},"526":{"position":[[676,11]]},"545":{"position":[[519,7]]},"553":{"position":[[125,11]]},"563":{"position":[[424,8]]},"571":{"position":[[533,11]]},"577":{"position":[[277,5]]},"579":{"position":[[917,8],[994,7],[1396,5]]},"583":{"position":[[2435,7],[2774,5]]},"621":{"position":[[110,5]]},"631":{"position":[[190,10]]},"639":{"position":[[513,7],[558,10]]},"641":{"position":[[228,10]]},"647":{"position":[[570,8],[2039,12]]},"649":{"position":[[402,6]]}}}],["limit=\"100/1",{"_index":1318,"t":{"230":{"position":[[1043,14]]}}}],["limit=\"filter:8/5m",{"_index":1329,"t":{"230":{"position":[[1381,19]]}}}],["limit=\"lightpush:0/0",{"_index":1320,"t":{"230":{"position":[[1115,22]]}}}],["limit=\"px:10/1h",{"_index":1326,"t":{"230":{"position":[[1304,16]]}}}],["limit=\"store:130/1500m",{"_index":1321,"t":{"230":{"position":[[1192,24]]}}}],["line",{"_index":728,"t":{"105":{"position":[[83,4],[314,4]]},"107":{"position":[[51,4],[272,4]]},"109":{"position":[[510,4]]},"111":{"position":[[699,4]]},"150":{"position":[[141,4]]},"154":{"position":[[859,4]]},"202":{"position":[[85,4]]},"583":{"position":[[832,5]]}}}],["link",{"_index":921,"t":{"144":{"position":[[670,4]]},"288":{"position":[[94,4]]},"414":{"position":[[275,7]]},"416":{"position":[[110,7],[364,6],[502,6]]},"422":{"position":[[407,4],[501,4]]},"478":{"position":[[37,5]]},"497":{"position":[[68,5]]},"561":{"position":[[827,5]]},"601":{"position":[[351,6]]},"631":{"position":[[613,6]]},"637":{"position":[[39,5],[182,7]]}}}],["linkabl",{"_index":1772,"t":{"422":{"position":[[284,8]]}}}],["linux",{"_index":878,"t":{"142":{"position":[[319,5]]},"144":{"position":[[169,5]]},"252":{"position":[[287,6],[462,6]]}}}],["list",{"_index":186,"t":{"14":{"position":[[374,4]]},"48":{"position":[[23,4],[478,4],[881,4]]},"50":{"position":[[204,4],[230,4],[393,4]]},"52":{"position":[[257,4]]},"131":{"position":[[220,4]]},"133":{"position":[[191,4]]},"166":{"position":[[394,4]]},"178":{"position":[[203,4]]},"184":{"position":[[190,4],[366,4],[884,5]]},"222":{"position":[[119,4]]},"318":{"position":[[416,4]]},"452":{"position":[[462,4],[574,4],[745,6],[880,8]]},"585":{"position":[[512,4]]},"605":{"position":[[1096,4]]}}}],["listen",{"_index":354,"t":{"34":{"position":[[1195,6]]},"113":{"position":[[152,6]]},"154":{"position":[[1652,9]]},"178":{"position":[[1127,10]]},"190":{"position":[[63,9]]},"192":{"position":[[40,9],[118,9],[359,9],[474,9]]},"198":{"position":[[668,9]]},"206":{"position":[[258,6],[296,9],[383,9]]},"218":{"position":[[106,9],[163,9]]},"220":{"position":[[123,9],[188,9]]},"224":{"position":[[122,9]]},"228":{"position":[[114,9]]},"240":{"position":[[611,9]]},"254":{"position":[[286,9],[636,9]]},"256":{"position":[[229,9],[348,9],[793,9],[839,9]]},"360":{"position":[[86,9]]},"534":{"position":[[485,9]]}}}],["listenaddress",{"_index":1351,"t":{"240":{"position":[[248,18],[571,15]]}}}],["litig",{"_index":2666,"t":{"647":{"position":[[277,10],[474,10]]}}}],["live",{"_index":2287,"t":{"559":{"position":[[541,4]]},"575":{"position":[[32,5]]},"611":{"position":[[832,5]]},"623":{"position":[[162,4]]}}}],["ln",{"_index":925,"t":{"144":{"position":[[746,2]]}}}],["load",{"_index":109,"t":{"6":{"position":[[991,5]]},"202":{"position":[[43,5]]},"276":{"position":[[144,6]]},"294":{"position":[[268,4]]},"298":{"position":[[536,4]]},"340":{"position":[[129,4]]}}}],["local",{"_index":457,"t":{"48":{"position":[[383,5],[1430,5],[1577,8],[1633,7]]},"62":{"position":[[57,5]]},"64":{"position":[[499,8]]},"103":{"position":[[290,5]]},"176":{"position":[[36,8]]},"178":{"position":[[181,7]]},"182":{"position":[[341,5]]},"188":{"position":[[515,5]]},"254":{"position":[[887,5]]},"526":{"position":[[223,7]]},"530":{"position":[[735,8]]},"547":{"position":[[214,7]]},"589":{"position":[[636,5]]},"617":{"position":[[47,5]]},"631":{"position":[[970,5]]}}}],["localhost",{"_index":533,"t":{"64":{"position":[[516,9]]},"218":{"position":[[629,12]]}}}],["locat",{"_index":447,"t":{"46":{"position":[[90,6]]},"154":{"position":[[1798,6]]},"184":{"position":[[379,9]]},"240":{"position":[[161,8]]},"242":{"position":[[132,8]]},"280":{"position":[[101,8],[175,8],[350,8],[716,8]]},"302":{"position":[[171,6]]},"324":{"position":[[35,8]]},"334":{"position":[[136,6]]},"368":{"position":[[30,7]]},"579":{"position":[[1560,9]]}}}],["lock",{"_index":2509,"t":{"595":{"position":[[448,4]]}}}],["log",{"_index":273,"t":{"22":{"position":[[1186,4]]},"42":{"position":[[2044,4]]},"56":{"position":[[59,4]]},"58":{"position":[[47,4],[140,4]]},"60":{"position":[[16,4],[112,4],[167,4],[246,4]]},"62":{"position":[[14,4],[230,4],[290,4],[321,4]]},"66":{"position":[[435,3]]},"111":{"position":[[95,3],[179,7]]},"154":{"position":[[634,4],[693,4],[742,4],[1712,4]]},"190":{"position":[[109,3],[177,4]]},"192":{"position":[[13,3],[73,3]]},"196":{"position":[[13,3],[82,3]]},"198":{"position":[[13,3],[85,3]]},"204":{"position":[[31,3],[72,3],[162,3],[219,4]]},"220":{"position":[[238,7],[266,8]]},"276":{"position":[[208,4],[281,4]]}}}],["log(1000)/log(6",{"_index":2266,"t":{"557":{"position":[[1029,16]]}}}],["log(total_nodes)/log(d)=5",{"_index":2213,"t":{"543":{"position":[[492,25]]}}}],["logging.logformat.text",{"_index":1163,"t":{"204":{"position":[[173,22]]}}}],["logging.loglevel.info",{"_index":1158,"t":{"204":{"position":[[41,21]]}}}],["logic",{"_index":1684,"t":{"364":{"position":[[91,5]]}}}],["logo",{"_index":1846,"t":{"466":{"position":[[135,5],[238,5],[350,8],[417,5]]},"629":{"position":[[75,5],[179,5],[291,8],[368,5]]}}}],["long",{"_index":49,"t":{"4":{"position":[[297,4]]},"250":{"position":[[278,4]]},"404":{"position":[[804,4],[1059,4]]},"486":{"position":[[233,4]]},"557":{"position":[[1321,4]]},"573":{"position":[[721,4]]},"611":{"position":[[827,4]]}}}],["longer",{"_index":1780,"t":{"436":{"position":[[27,6]]},"543":{"position":[[321,8]]}}}],["look",{"_index":117,"t":{"6":{"position":[[1161,7]]},"22":{"position":[[7,4]]},"26":{"position":[[202,4]]},"28":{"position":[[459,4]]},"36":{"position":[[375,4]]},"40":{"position":[[1396,4]]},"87":{"position":[[125,4]]},"103":{"position":[[175,4],[1076,4]]},"113":{"position":[[633,4]]},"140":{"position":[[860,4]]},"150":{"position":[[221,4]]},"152":{"position":[[125,4]]},"168":{"position":[[1320,4],[1488,4]]},"178":{"position":[[1408,4]]},"192":{"position":[[0,4]]},"196":{"position":[[0,4]]},"198":{"position":[[0,4],[733,4]]},"230":{"position":[[1558,4]]},"236":{"position":[[243,4]]},"242":{"position":[[470,4]]},"280":{"position":[[1122,4]]},"282":{"position":[[266,4]]},"294":{"position":[[407,4]]},"444":{"position":[[634,4]]},"448":{"position":[[82,4],[299,4]]},"450":{"position":[[7,4]]},"532":{"position":[[19,4]]},"633":{"position":[[37,7],[213,7],[549,7]]}}}],["lookup",{"_index":1295,"t":{"224":{"position":[[637,6]]},"454":{"position":[[4,6],[169,6],[320,6]]}}}],["lose",{"_index":1924,"t":{"486":{"position":[[746,6],[1535,6]]}}}],["loss",{"_index":2083,"t":{"526":{"position":[[661,4]]}}}],["lost",{"_index":2082,"t":{"526":{"position":[[612,4],[930,4]]},"639":{"position":[[127,4]]}}}],["lot",{"_index":1551,"t":{"294":{"position":[[569,4]]},"456":{"position":[[51,3]]}}}],["low",{"_index":1572,"t":{"298":{"position":[[386,3]]},"318":{"position":[[182,3],[195,3]]},"328":{"position":[[99,3]]},"418":{"position":[[343,3]]},"452":{"position":[[407,3],[420,3]]},"488":{"position":[[344,3]]},"579":{"position":[[475,4]]},"583":{"position":[[355,3],[546,3]]},"589":{"position":[[559,3]]}}}],["lower",{"_index":2260,"t":{"557":{"position":[[487,5]]},"561":{"position":[[678,5],[1836,6],[2129,5]]}}}],["lowest",{"_index":2458,"t":{"583":{"position":[[2240,6],[2308,6],[2450,6]]}}}],["luckili",{"_index":2217,"t":{"545":{"position":[[132,8]]}}}],["m",{"_index":2255,"t":{"555":{"position":[[210,1],[284,2]]},"557":{"position":[[1859,1]]},"615":{"position":[[297,1],[397,2]]}}}],["machin",{"_index":1486,"t":{"278":{"position":[[137,8]]},"530":{"position":[[936,7],[2008,7]]},"532":{"position":[[1066,7]]}}}],["maco",{"_index":879,"t":{"142":{"position":[[329,6]]},"144":{"position":[[175,5]]}}}],["made",{"_index":1497,"t":{"280":{"position":[[666,4]]},"579":{"position":[[1261,5]]},"631":{"position":[[1057,4]]},"635":{"position":[[33,4]]}}}],["magnitud",{"_index":2457,"t":{"583":{"position":[[2183,9],[3022,9]]}}}],["main",{"_index":1595,"t":{"304":{"position":[[301,4]]},"362":{"position":[[98,4]]},"486":{"position":[[935,4]]},"511":{"position":[[87,4]]},"537":{"position":[[156,4],[579,4]]},"579":{"position":[[912,4]]}}}],["main.jsx",{"_index":960,"t":{"160":{"position":[[7,8]]}}}],["mainli",{"_index":2279,"t":{"559":{"position":[[144,6]]},"579":{"position":[[986,7]]}}}],["maintain",{"_index":81,"t":{"6":{"position":[[414,8]]},"210":{"position":[[1163,8]]},"232":{"position":[[105,8]]},"252":{"position":[[86,8]]},"378":{"position":[[155,8]]},"472":{"position":[[128,8]]},"515":{"position":[[142,8]]},"575":{"position":[[63,8]]},"601":{"position":[[880,10]]}}}],["mainten",{"_index":1631,"t":{"318":{"position":[[374,11]]}}}],["major",{"_index":932,"t":{"146":{"position":[[104,5]]}}}],["make",{"_index":885,"t":{"144":{"position":[[83,5]]},"148":{"position":[[24,4],[49,4],[121,4],[179,4]]},"152":{"position":[[24,4]]},"176":{"position":[[163,4]]},"272":{"position":[[242,4]]},"304":{"position":[[191,4]]},"312":{"position":[[75,6]]},"410":{"position":[[114,6],[153,5],[448,5]]},"422":{"position":[[237,6]]},"470":{"position":[[138,6]]},"488":{"position":[[399,4]]},"494":{"position":[[638,4]]},"520":{"position":[[178,5]]},"528":{"position":[[433,4]]},"532":{"position":[[1462,6],[1569,6],[1840,6]]},"631":{"position":[[367,4],[716,4]]},"647":{"position":[[97,4],[953,7]]}}}],["malici",{"_index":1740,"t":{"410":{"position":[[477,9]]}}}],["manag",{"_index":206,"t":{"18":{"position":[[59,8]]},"20":{"position":[[561,8]]},"22":{"position":[[1232,6],[1278,6]]},"42":{"position":[[2143,6],[2353,6]]},"81":{"position":[[262,10]]},"87":{"position":[[38,6]]},"89":{"position":[[145,6]]},"91":{"position":[[1211,7]]},"95":{"position":[[100,8]]},"158":{"position":[[377,8]]},"210":{"position":[[441,11]]},"338":{"position":[[68,10]]}}}],["mani",{"_index":590,"t":{"75":{"position":[[184,4]]},"306":{"position":[[350,4]]},"376":{"position":[[191,4]]},"382":{"position":[[213,4]]},"418":{"position":[[89,4]]},"488":{"position":[[366,4]]},"595":{"position":[[362,4]]}}}],["manner",{"_index":2257,"t":{"555":{"position":[[429,7]]},"647":{"position":[[388,7]]}}}],["manual",{"_index":445,"t":{"42":{"position":[[2731,8]]},"530":{"position":[[872,6],[1944,6]]}}}],["map",{"_index":1094,"t":{"178":{"position":[[1060,8]]},"210":{"position":[[1668,3]]}}}],["margin",{"_index":1016,"t":{"162":{"position":[[1963,7],[2212,6],[2396,6]]}}}],["market",{"_index":100,"t":{"6":{"position":[[851,7]]},"633":{"position":[[181,7],[620,6]]}}}],["marketplac",{"_index":71,"t":{"6":{"position":[[242,13]]}}}],["master",{"_index":930,"t":{"146":{"position":[[70,7]]}}}],["match",{"_index":541,"t":{"64":{"position":[[728,5]]},"330":{"position":[[588,5],[983,8],[1095,5]]},"599":{"position":[[885,5]]},"603":{"position":[[329,7]]}}}],["matrix",{"_index":2476,"t":{"589":{"position":[[54,7]]}}}],["matter",{"_index":2204,"t":{"541":{"position":[[51,6]]},"557":{"position":[[1102,6]]},"569":{"position":[[330,6]]},"631":{"position":[[1475,7]]},"633":{"position":[[437,7],[1123,7]]}}}],["max",{"_index":1190,"t":{"206":{"position":[[710,3],[911,3],[980,3]]},"214":{"position":[[297,3],[400,3]]},"504":{"position":[[709,3]]}}}],["maximum",{"_index":1192,"t":{"206":{"position":[[729,7],[1110,7]]},"214":{"position":[[321,7],[418,7]]},"224":{"position":[[401,7],[492,7]]},"486":{"position":[[1033,7]]},"490":{"position":[[182,7],[718,7]]},"526":{"position":[[0,7],[444,7],[1461,7]]},"557":{"position":[[891,7]]},"577":{"position":[[33,7],[109,7],[239,7]]},"579":{"position":[[1406,7],[1589,7]]},"583":{"position":[[69,7]]},"631":{"position":[[669,7]]},"639":{"position":[[600,7]]}}}],["maxmessages",{"_index":1968,"t":{"490":{"position":[[683,15]]}}}],["mb/gb",{"_index":1374,"t":{"250":{"position":[[543,6]]}}}],["mbp",{"_index":1929,"t":{"486":{"position":[[1220,4],[1423,5],[1696,6]]},"490":{"position":[[1059,4],[1264,4]]},"577":{"position":[[56,4],[289,4]]},"579":{"position":[[960,4],[1484,5],[1610,4]]},"581":{"position":[[93,4],[332,5],[428,4],[489,6],[503,6],[734,6],[755,6],[829,4],[844,4],[859,4]]},"583":{"position":[[1993,4],[2302,5],[2368,5],[2572,5],[2786,4]]}}}],["mean",{"_index":637,"t":{"91":{"position":[[1119,4]]},"230":{"position":[[766,5]]},"330":{"position":[[140,5]]},"416":{"position":[[10,5]]},"474":{"position":[[197,5]]},"490":{"position":[[644,7],[706,7]]},"494":{"position":[[447,5]]},"528":{"position":[[52,5]]},"541":{"position":[[228,5]]},"555":{"position":[[573,5]]},"583":{"position":[[1367,7],[1484,7]]},"627":{"position":[[375,5]]},"647":{"position":[[43,7]]},"649":{"position":[[760,4]]}}}],["meant",{"_index":2449,"t":{"583":{"position":[[1869,5]]}}}],["measur",{"_index":1770,"t":{"420":{"position":[[149,8]]},"468":{"position":[[788,8]]},"472":{"position":[[101,8]]},"504":{"position":[[35,8]]},"506":{"position":[[112,12]]},"528":{"position":[[769,8]]},"555":{"position":[[716,8]]},"557":{"position":[[1406,8]]},"559":{"position":[[182,7],[514,13]]},"623":{"position":[[105,7]]}}}],["mechan",{"_index":91,"t":{"6":{"position":[[682,9]]},"44":{"position":[[198,10]]},"81":{"position":[[416,10]]},"154":{"position":[[1314,10]]},"180":{"position":[[184,10]]},"238":{"position":[[136,11],[363,9],[452,9]]},"246":{"position":[[136,11]]},"294":{"position":[[55,9]]},"302":{"position":[[146,9],[961,11]]},"324":{"position":[[135,11],[187,10]]},"326":{"position":[[313,9]]},"340":{"position":[[27,9]]},"342":{"position":[[34,9]]},"370":{"position":[[34,9]]},"392":{"position":[[25,9]]},"402":{"position":[[117,10]]},"418":{"position":[[226,9]]},"458":{"position":[[28,10]]},"488":{"position":[[89,10]]},"537":{"position":[[53,9]]},"597":{"position":[[185,11]]},"605":{"position":[[1170,10]]},"611":{"position":[[1084,10]]},"615":{"position":[[975,9]]}}}],["media",{"_index":110,"t":{"6":{"position":[[1004,5],[1101,5]]},"42":{"position":[[2536,5],[2603,5]]}}}],["median",{"_index":2293,"t":{"559":{"position":[[637,6]]},"581":{"position":[[287,6],[718,6],[741,6]]}}}],["meet",{"_index":1502,"t":{"282":{"position":[[225,4]]},"583":{"position":[[1208,4],[1544,7],[1608,7]]},"647":{"position":[[305,5]]}}}],["member",{"_index":796,"t":{"119":{"position":[[577,7]]},"404":{"position":[[1631,7]]},"537":{"position":[[906,7]]},"547":{"position":[[257,7],[344,7],[404,7]]}}}],["membership",{"_index":1218,"t":{"210":{"position":[[307,10],[772,10]]},"268":{"position":[[159,10]]},"274":{"position":[[8,10],[283,10],[520,11]]},"276":{"position":[[130,10]]},"448":{"position":[[213,10],[495,11]]},"490":{"position":[[295,11],[478,11]]},"537":{"position":[[367,10],[488,11]]}}}],["memori",{"_index":1381,"t":{"250":{"position":[[897,6]]},"384":{"position":[[110,7]]},"486":{"position":[[1760,7]]},"539":{"position":[[366,6]]},"549":{"position":[[70,6]]},"579":{"position":[[584,7]]}}}],["mempool",{"_index":103,"t":{"6":{"position":[[874,9]]}}}],["menduist",{"_index":2282,"t":{"559":{"position":[[250,9]]}}}],["mention",{"_index":1925,"t":{"486":{"position":[[835,7]]}}}],["merchant",{"_index":2594,"t":{"631":{"position":[[219,16]]}}}],["merg",{"_index":791,"t":{"119":{"position":[[489,5]]},"619":{"position":[[93,5]]}}}],["merkl",{"_index":1231,"t":{"210":{"position":[[1071,6]]}}}],["mesh",{"_index":1546,"t":{"294":{"position":[[384,4]]},"302":{"position":[[368,5],[418,5]]},"506":{"position":[[221,5]]},"559":{"position":[[237,5]]}}}],["messag",{"_index":11,"t":{"2":{"position":[[115,9]]},"4":{"position":[[156,9],[371,10]]},"6":{"position":[[471,7]]},"20":{"position":[[24,7],[142,7]]},"22":{"position":[[152,8],[219,8],[294,8],[368,8],[449,8],[547,8]]},"26":{"position":[[107,8],[159,8]]},"28":{"position":[[588,9]]},"34":{"position":[[57,7],[235,7],[411,8],[520,7],[569,8],[1082,8],[1173,8]]},"36":{"position":[[26,7],[67,7],[130,7]]},"38":{"position":[[8,8],[83,7],[153,7],[249,8],[296,7],[399,7]]},"40":{"position":[[11,8],[78,7],[278,7],[710,8],[1179,8],[1315,8]]},"42":{"position":[[232,7],[382,9],[548,8],[589,8],[672,8],[753,9],[782,7],[879,8],[946,8],[1012,8],[1121,8]]},"87":{"position":[[154,8]]},"89":{"position":[[93,8],[241,7]]},"91":{"position":[[401,8],[681,7]]},"93":{"position":[[114,8],[134,7],[444,7]]},"97":{"position":[[51,7],[325,9],[354,7],[383,7],[505,7],[584,7],[660,8],[685,7],[774,8],[815,7],[847,8],[972,7],[1058,8],[1157,8]]},"99":{"position":[[463,9],[489,7],[538,7],[653,7],[732,7],[811,8],[836,7],[925,8],[963,7],[1016,8],[1134,7],[1218,8],[1317,8],[1545,7]]},"101":{"position":[[0,7],[62,9],[102,8],[189,8],[458,7],[487,7],[871,8],[904,7],[990,7],[1145,8],[1235,7],[1311,8],[1376,8],[1445,8],[1527,7],[1606,8],[1671,8],[1727,8],[2190,7],[2404,8],[2465,7],[2553,8],[2717,7],[2786,7],[3014,7],[3206,7],[3264,7]]},"103":{"position":[[51,7],[1014,8]]},"113":{"position":[[332,9],[423,8],[450,7]]},"119":{"position":[[338,7]]},"121":{"position":[[98,8]]},"127":{"position":[[41,8],[75,7],[226,7]]},"129":{"position":[[142,9]]},"131":{"position":[[120,8],[291,7],[380,9],[448,9],[769,8]]},"133":{"position":[[90,8],[262,7],[348,9],[456,8],[530,8],[554,8],[778,8]]},"136":{"position":[[213,8],[312,8]]},"138":{"position":[[62,9],[132,8],[252,8],[461,8],[496,8],[755,8],[771,7]]},"140":{"position":[[57,8],[117,8],[294,8],[591,7],[656,7],[720,8],[802,8]]},"162":{"position":[[41,8],[67,9],[417,10],[678,7],[867,7],[1064,7],[1291,9],[1571,11],[1737,7],[1849,7],[2141,8],[2330,8]]},"164":{"position":[[8,8],[373,7],[496,7],[604,8],[647,7]]},"166":{"position":[[11,8],[138,9],[271,8],[313,9],[402,8]]},"168":{"position":[[11,8],[201,9],[337,8],[354,9],[430,8],[472,9],[567,8],[1341,8]]},"202":{"position":[[202,7]]},"210":{"position":[[1196,7]]},"212":{"position":[[133,7],[170,7],[354,7],[449,7],[556,7]]},"214":{"position":[[137,8]]},"216":{"position":[[148,8]]},"218":{"position":[[262,7]]},"250":{"position":[[10,7],[151,8],[212,7],[283,8],[712,7],[764,8],[904,7],[1030,7],[1092,7],[1221,8],[1319,7],[1365,7],[1524,8],[1551,7],[1675,8],[1719,9]]},"256":{"position":[[506,7],[1201,7]]},"258":{"position":[[265,8],[454,8]]},"260":{"position":[[268,8],[423,8]]},"264":{"position":[[240,9]]},"274":{"position":[[127,8],[218,8],[460,8]]},"276":{"position":[[59,9]]},"280":{"position":[[229,7],[598,8]]},"282":{"position":[[66,8],[150,8],[203,8]]},"284":{"position":[[317,9],[420,7],[632,9]]},"290":{"position":[[172,9],[290,7],[454,7],[490,7],[614,7]]},"292":{"position":[[124,9],[407,8],[550,8]]},"302":{"position":[[74,7],[460,8]]},"306":{"position":[[89,8],[193,9]]},"308":{"position":[[162,8]]},"310":{"position":[[72,8],[416,9]]},"312":{"position":[[42,8],[206,8],[403,8]]},"314":{"position":[[167,9],[275,8]]},"316":{"position":[[5,7],[51,8],[205,7],[397,7],[506,8]]},"326":{"position":[[98,8],[150,7],[227,8]]},"328":{"position":[[206,9],[257,8],[312,7]]},"330":{"position":[[157,8],[251,8],[343,9],[444,8],[574,8],[661,7],[769,7],[915,8],[974,8],[1081,8]]},"336":{"position":[[40,8],[98,7]]},"346":{"position":[[83,8]]},"354":{"position":[[54,8]]},"364":{"position":[[28,7],[97,7],[228,7]]},"374":{"position":[[115,7]]},"376":{"position":[[47,9],[87,8],[131,8]]},"378":{"position":[[189,8]]},"382":{"position":[[98,7]]},"386":{"position":[[144,8]]},"390":{"position":[[56,8],[123,8]]},"396":{"position":[[5,7],[38,8]]},"398":{"position":[[5,7],[181,7]]},"400":{"position":[[58,9]]},"404":{"position":[[156,9],[219,8],[550,7],[619,9],[684,8],[866,10],[1020,9],[1387,7],[1497,8],[1586,7],[1696,8]]},"408":{"position":[[170,9]]},"416":{"position":[[270,7],[323,8],[390,9]]},"418":{"position":[[94,9]]},"420":{"position":[[180,7]]},"444":{"position":[[33,9],[95,10],[467,7]]},"486":{"position":[[753,8],[814,9],[1250,8],[1542,9]]},"488":{"position":[[272,7],[371,8],[450,8],[535,8]]},"490":{"position":[[90,8],[200,8],[726,7],[830,8],[942,7],[1113,7]]},"494":{"position":[[678,8]]},"497":{"position":[[179,7],[196,7],[301,7],[579,9],[729,9]]},"499":{"position":[[72,7],[89,7],[194,7],[472,9],[622,9]]},"502":{"position":[[82,8],[119,7]]},"504":{"position":[[4,7],[68,7],[202,8],[226,7],[244,7],[677,7],[713,7]]},"506":{"position":[[69,7],[227,7],[325,7]]},"518":{"position":[[58,8],[146,7],[237,8]]},"520":{"position":[[48,7]]},"526":{"position":[[161,8],[271,7],[381,9],[599,8],[653,7],[779,8],[916,8],[950,7],[1031,8]]},"530":{"position":[[219,8],[428,8]]},"532":{"position":[[310,8],[452,7],[1426,8],[1533,8],[1803,8]]},"537":{"position":[[395,7],[722,8],[786,8]]},"541":{"position":[[74,8],[208,7],[267,8],[476,8]]},"543":{"position":[[172,7],[302,7],[413,8]]},"545":{"position":[[473,8]]},"547":{"position":[[304,9]]},"549":{"position":[[180,8]]},"553":{"position":[[77,7],[182,7],[262,7],[318,8],[416,7],[485,7],[558,8]]},"555":{"position":[[86,8],[166,8],[202,7],[339,8],[480,8],[586,7],[681,7],[779,7],[886,7],[1009,7]]},"557":{"position":[[17,7],[187,7],[391,7],[580,7],[683,7],[921,7],[1134,8],[1290,7],[1465,9],[1490,8],[1639,7],[1654,7],[1705,8],[1758,7],[1851,7],[1946,7],[2094,7]]},"559":{"position":[[73,7],[804,8],[855,9]]},"561":{"position":[[31,7],[167,7],[372,8],[783,7],[1062,8],[1207,8],[1518,7],[1554,7],[1599,9],[1683,9],[2179,7]]},"563":{"position":[[384,7]]},"579":{"position":[[289,9]]},"585":{"position":[[434,9]]},"599":{"position":[[863,8],[947,8],[1035,7]]},"603":{"position":[[53,8],[303,7],[316,7],[508,9]]},"607":{"position":[[377,8]]},"619":{"position":[[35,9],[183,9],[215,8]]},"621":{"position":[[121,7]]},"625":{"position":[[265,7],[347,8]]}}}],["message'",{"_index":1711,"t":{"404":{"position":[[750,9]]}}}],["message/payload",{"_index":820,"t":{"131":{"position":[[540,15]]},"133":{"position":[[655,15]]}}}],["message/proto",{"_index":1513,"t":{"284":{"position":[[752,13]]}}}],["messageindex\\\"\\ndetail",{"_index":2161,"t":{"532":{"position":[[661,25]]}}}],["messageobj",{"_index":391,"t":{"40":{"position":[[334,10],[382,10]]}}}],["messages.map((messag",{"_index":998,"t":{"162":{"position":[[1222,23]]}}}],["messages.push(wakumessag",{"_index":844,"t":{"138":{"position":[[303,27]]}}}],["messages/minut",{"_index":2223,"t":{"545":{"position":[[487,16]]}}}],["messages[messages.length",{"_index":847,"t":{"138":{"position":[[642,24]]}}}],["messagespromis",{"_index":827,"t":{"133":{"position":[[482,16]]}}}],["messagespromises.map(async",{"_index":830,"t":{"133":{"position":[[584,26]]}}}],["messeng",{"_index":57,"t":{"6":{"position":[[5,11],[1033,11]]}}}],["meta",{"_index":1623,"t":{"316":{"position":[[238,4]]}}}],["metadata",{"_index":1202,"t":{"206":{"position":[[1074,9]]},"282":{"position":[[19,8]]},"396":{"position":[[110,8]]}}}],["metal",{"_index":2119,"t":{"530":{"position":[[944,6],[2016,6]]},"532":{"position":[[1074,6]]}}}],["method",{"_index":316,"t":{"28":{"position":[[444,7],[526,7]]},"42":{"position":[[1066,8],[1492,6]]},"46":{"position":[[56,6],[226,6]]},"81":{"position":[[221,7]]},"93":{"position":[[161,8],[270,6],[471,8]]},"97":{"position":[[1326,7]]},"99":{"position":[[1480,8]]},"101":{"position":[[352,7],[3129,7]]},"103":{"position":[[1060,8]]},"105":{"position":[[66,8],[265,6]]},"107":{"position":[[86,8]]},"109":{"position":[[471,6]]},"111":{"position":[[660,6]]},"117":{"position":[[63,8]]},"125":{"position":[[28,6]]},"131":{"position":[[73,6],[310,8]]},"133":{"position":[[281,8]]},"150":{"position":[[341,7]]},"154":{"position":[[776,7],[969,7]]},"164":{"position":[[282,6]]},"206":{"position":[[460,6]]},"230":{"position":[[1589,7]]},"236":{"position":[[274,7]]},"254":{"position":[[32,6]]},"334":{"position":[[109,7]]},"362":{"position":[[117,6]]},"364":{"position":[[202,7]]},"398":{"position":[[169,7]]},"404":{"position":[[383,6],[577,7]]},"408":{"position":[[131,7],[377,6]]},"452":{"position":[[287,6]]},"597":{"position":[[98,7]]},"613":{"position":[[17,7]]},"647":{"position":[[1602,7]]}}}],["metric",{"_index":752,"t":{"111":{"position":[[171,7]]},"220":{"position":[[31,7],[63,7],[90,7],[148,7],[163,7],[215,7],[230,7],[258,7]]},"264":{"position":[[258,7]]},"276":{"position":[[85,7]]},"278":{"position":[[75,7]]},"486":{"position":[[1948,6]]},"497":{"position":[[37,7]]},"549":{"position":[[151,7]]},"623":{"position":[[52,7]]}}}],["mgs/epoch",{"_index":1958,"t":{"490":{"position":[[371,9]]}}}],["microsoft",{"_index":1340,"t":{"234":{"position":[[910,9]]}}}],["migrat",{"_index":1261,"t":{"212":{"position":[[567,9],[598,9]]},"424":{"position":[[15,9]]},"426":{"position":[[0,9]]},"450":{"position":[[407,7]]},"492":{"position":[[112,9]]},"494":{"position":[[590,7],[1305,9]]}}}],["million",{"_index":2099,"t":{"528":{"position":[[233,7]]}}}],["min",{"_index":1332,"t":{"230":{"position":[[1477,4]]}}}],["mind",{"_index":582,"t":{"72":{"position":[[185,5]]},"286":{"position":[[121,5]]}}}],["mine",{"_index":2499,"t":{"595":{"position":[[133,5]]}}}],["miner",{"_index":2498,"t":{"595":{"position":[[93,6],[168,6]]},"601":{"position":[[459,6]]}}}],["mini",{"_index":2207,"t":{"541":{"position":[[381,4]]}}}],["minim",{"_index":234,"t":{"20":{"position":[[384,9]]},"573":{"position":[[545,7]]},"585":{"position":[[459,7]]}}}],["minimum",{"_index":875,"t":{"142":{"position":[[246,7]]}}}],["minor",{"_index":2240,"t":{"549":{"position":[[159,5]]},"559":{"position":[[771,5]]}}}],["minu",{"_index":2000,"t":{"497":{"position":[[146,6]]},"499":{"position":[[39,6]]}}}],["minut",{"_index":1266,"t":{"214":{"position":[[182,7]]},"547":{"position":[[422,7]]}}}],["misbehav",{"_index":2482,"t":{"589":{"position":[[274,11]]}}}],["misbehaviour",{"_index":2511,"t":{"595":{"position":[[532,13]]}}}],["miss",{"_index":811,"t":{"129":{"position":[[135,6]]},"312":{"position":[[199,6]]},"390":{"position":[[116,6]]},"589":{"position":[[580,4]]}}}],["mitig",{"_index":1734,"t":{"410":{"position":[[219,10]]}}}],["mix",{"_index":2018,"t":{"504":{"position":[[368,5],[773,5]]}}}],["mkdir",{"_index":924,"t":{"144":{"position":[[716,5]]}}}],["mobil",{"_index":1648,"t":{"324":{"position":[[315,6]]},"356":{"position":[[192,6]]},"583":{"position":[[1751,7]]}}}],["model",{"_index":1741,"t":{"410":{"position":[[509,5]]},"412":{"position":[[140,6]]},"613":{"position":[[100,5]]}}}],["modern",{"_index":515,"t":{"62":{"position":[[122,6]]}}}],["modif",{"_index":2296,"t":{"559":{"position":[[777,12]]},"583":{"position":[[2957,14]]}}}],["modifi",{"_index":512,"t":{"62":{"position":[[46,6]]},"101":{"position":[[2678,6]]},"162":{"position":[[77,6],[1888,6]]},"164":{"position":[[48,6]]},"318":{"position":[[430,9]]},"452":{"position":[[478,9]]},"480":{"position":[[7,6]]},"559":{"position":[[127,8]]},"635":{"position":[[168,6]]},"643":{"position":[[7,6]]},"649":{"position":[[386,7]]}}}],["modular",{"_index":1587,"t":{"304":{"position":[[13,7]]},"324":{"position":[[81,7]]},"350":{"position":[[12,7]]},"563":{"position":[[462,7]]},"599":{"position":[[49,7]]}}}],["monetari",{"_index":2477,"t":{"589":{"position":[[85,8],[151,8],[192,8]]},"593":{"position":[[337,8]]},"595":{"position":[[54,8],[297,8],[411,8]]},"601":{"position":[[221,8],[289,8],[674,8],[725,8]]}}}],["money",{"_index":2563,"t":{"615":{"position":[[645,6]]}}}],["monitor",{"_index":1063,"t":{"170":{"position":[[132,10]]},"232":{"position":[[93,7]]},"264":{"position":[[317,7]]},"266":{"position":[[76,8]]},"278":{"position":[[46,10]]}}}],["more",{"_index":317,"t":{"28":{"position":[[521,4]]},"42":{"position":[[500,5]]},"83":{"position":[[91,4]]},"133":{"position":[[45,4]]},"150":{"position":[[188,4]]},"168":{"position":[[1600,5]]},"178":{"position":[[726,4]]},"238":{"position":[[85,4]]},"246":{"position":[[85,4]]},"282":{"position":[[314,5]]},"292":{"position":[[459,4]]},"294":{"position":[[449,5]]},"308":{"position":[[320,4]]},"324":{"position":[[361,5]]},"374":{"position":[[178,5]]},"404":{"position":[[1492,4]]},"408":{"position":[[290,4]]},"410":{"position":[[722,4],[810,4]]},"444":{"position":[[539,4]]},"446":{"position":[[420,4]]},"497":{"position":[[775,4]]},"499":{"position":[[668,4]]},"520":{"position":[[295,4]]},"526":{"position":[[1162,4]]},"530":{"position":[[278,4],[1438,4],[2196,4],[2535,4],[2811,4]]},"532":{"position":[[1634,4],[1700,4],[1911,4]]},"557":{"position":[[289,4],[1503,4],[1609,4]]},"561":{"position":[[745,4],[981,4],[2373,4]]},"583":{"position":[[370,4]]},"601":{"position":[[561,4]]},"611":{"position":[[773,4],[807,4],[856,4],[1129,4]]},"613":{"position":[[4,4]]},"615":{"position":[[837,4]]},"617":{"position":[[9,4]]}}}],["moreov",{"_index":2494,"t":{"593":{"position":[[253,9]]},"611":{"position":[[1095,9]]}}}],["mostli",{"_index":1657,"t":{"328":{"position":[[116,6]]},"356":{"position":[[0,6]]},"460":{"position":[[235,6]]},"583":{"position":[[935,6]]}}}],["motiv",{"_index":1336,"t":{"232":{"position":[[246,12]]}}}],["mount",{"_index":2064,"t":{"520":{"position":[[226,7]]},"526":{"position":[[96,8]]}}}],["move",{"_index":2175,"t":{"534":{"position":[[16,4]]}}}],["mpb",{"_index":2452,"t":{"583":{"position":[[2025,5],[2461,5]]}}}],["mpt=ipt_1+ipt_2+ipt_3+ipt_4",{"_index":2274,"t":{"557":{"position":[[1971,27]]}}}],["ms",{"_index":2252,"t":{"553":{"position":[[383,3]]},"561":{"position":[[1113,3],[1233,3],[1318,3]]}}}],["msg",{"_index":832,"t":{"133":{"position":[[626,3]]}}}],["msg/",{"_index":2010,"t":{"502":{"position":[[226,5]]}}}],["msg/10",{"_index":2013,"t":{"502":{"position":[[246,7]]}}}],["msg/second",{"_index":1977,"t":{"490":{"position":[[1009,10],[1237,10]]}}}],["msg1",{"_index":1664,"t":{"330":{"position":[[382,4],[638,4],[752,5],[859,4],[1054,4]]}}}],["msgs/epoch",{"_index":1960,"t":{"490":{"position":[[394,10],[417,10]]}}}],["msgs/sec",{"_index":2089,"t":{"526":{"position":[[1138,9],[1224,8]]}}}],["mu",{"_index":2307,"t":{"561":{"position":[[304,2]]}}}],["much",{"_index":1950,"t":{"488":{"position":[[324,4]]},"526":{"position":[[1157,4]]},"530":{"position":[[3009,4]]},"543":{"position":[[385,4]]},"593":{"position":[[231,4]]}}}],["multi",{"_index":86,"t":{"6":{"position":[[556,5],[587,5]]},"48":{"position":[[1611,5]]}}}],["multiaddr",{"_index":451,"t":{"48":{"position":[[31,9],[290,13]]},"66":{"position":[[209,9]]},"70":{"position":[[114,9]]},"125":{"position":[[539,9]]},"168":{"position":[[1103,9]]},"182":{"position":[[213,9],[247,9]]},"188":{"position":[[200,9],[340,9]]},"206":{"position":[[559,9],[651,9]]},"208":{"position":[[89,10],[182,10]]},"210":{"position":[[1287,9]]},"214":{"position":[[95,9]]},"216":{"position":[[104,9]]},"226":{"position":[[139,9]]},"248":{"position":[[167,10],[550,9]]},"250":{"position":[[1609,10]]},"252":{"position":[[71,11]]},"258":{"position":[[332,10]]},"260":{"position":[[340,10]]},"262":{"position":[[140,9],[163,9],[206,10],[243,9],[317,9],[436,9]]},"300":{"position":[[68,9],[288,11]]},"452":{"position":[[257,10]]}}}],["multiaddr=[multiaddr",{"_index":1458,"t":{"262":{"position":[[271,20]]}}}],["multiaddress",{"_index":1187,"t":{"206":{"position":[[578,14],[695,14]]},"212":{"position":[[93,12]]}}}],["multimedia",{"_index":115,"t":{"6":{"position":[[1137,10]]}}}],["multipl",{"_index":148,"t":{"12":{"position":[[23,8]]},"180":{"position":[[160,8]]},"182":{"position":[[117,8]]},"184":{"position":[[495,8]]},"186":{"position":[[249,8]]},"230":{"position":[[650,8]]},"234":{"position":[[62,8]]},"238":{"position":[[112,8]]},"246":{"position":[[112,8]]},"290":{"position":[[191,8]]},"292":{"position":[[377,8]]},"302":{"position":[[937,8]]},"328":{"position":[[145,8]]},"526":{"position":[[355,8]]},"534":{"position":[[284,8]]},"545":{"position":[[454,8]]},"555":{"position":[[605,8]]},"557":{"position":[[599,8]]},"579":{"position":[[380,8]]},"603":{"position":[[213,8]]},"607":{"position":[[317,8]]},"619":{"position":[[72,8]]}}}],["multipli",{"_index":1931,"t":{"486":{"position":[[1270,10]]}}}],["mvp",{"_index":2357,"t":{"573":{"position":[[38,3],[334,4]]}}}],["my_private_key.pem",{"_index":1408,"t":{"252":{"position":[[683,18],[747,18]]}}}],["n",{"_index":1493,"t":{"280":{"position":[[483,1]]},"526":{"position":[[105,3]]},"532":{"position":[[951,1]]},"615":{"position":[[228,2],[394,2]]}}}],["n1",{"_index":2272,"t":{"557":{"position":[[1891,2]]}}}],["n5",{"_index":2273,"t":{"557":{"position":[[1909,2]]}}}],["n_1...n_i",{"_index":2256,"t":{"555":{"position":[[249,9]]}}}],["name",{"_index":493,"t":{"50":{"position":[[446,7]]},"64":{"position":[[745,5]]},"107":{"position":[[175,5],[301,4]]},"109":{"position":[[78,4]]},"184":{"position":[[275,4],[403,4],[431,4],[508,4],[616,5],[640,4],[657,4],[708,4],[1105,4],[1143,4]]},"202":{"position":[[0,4]]},"204":{"position":[[0,4]]},"206":{"position":[[0,4]]},"208":{"position":[[0,4],[110,4],[149,4],[242,4],[258,4]]},"210":{"position":[[0,4]]},"212":{"position":[[0,4]]},"214":{"position":[[0,4]]},"216":{"position":[[0,4]]},"218":{"position":[[0,4]]},"220":{"position":[[0,4]]},"222":{"position":[[0,4],[173,4],[212,4]]},"224":{"position":[[0,4]]},"226":{"position":[[0,4]]},"228":{"position":[[0,4]]},"230":{"position":[[0,4]]},"248":{"position":[[34,4],[112,4],[248,5],[287,4],[444,4],[584,5],[744,4],[851,4],[912,4]]},"252":{"position":[[663,4]]},"262":{"position":[[385,4]]},"284":{"position":[[125,5],[150,4],[341,5],[360,4]]},"326":{"position":[[22,4]]},"342":{"position":[[116,5]]},"436":{"position":[[0,5]]},"452":{"position":[[144,5],[341,4],[499,5],[614,5],[684,5]]},"486":{"position":[[119,4]]},"494":{"position":[[395,5]]}}}],["name=[domain",{"_index":1364,"t":{"248":{"position":[[235,12]]}}}],["name=nwakunode.com",{"_index":1365,"t":{"248":{"position":[[371,18]]}}}],["name}/{encod",{"_index":1505,"t":{"284":{"position":[[96,16]]}}}],["name}/{version}/{cont",{"_index":1504,"t":{"284":{"position":[[65,24]]}}}],["nascent",{"_index":2335,"t":{"565":{"position":[[23,7]]}}}],["nat",{"_index":1081,"t":{"178":{"position":[[597,4]]},"206":{"position":[[444,3]]},"262":{"position":[[365,3]]}}}],["nat=ani",{"_index":1082,"t":{"178":{"position":[[604,7]]}}}],["nat=extip:[your",{"_index":1080,"t":{"178":{"position":[[544,15]]}}}],["nativ",{"_index":193,"t":{"16":{"position":[[84,7],[125,6]]},"64":{"position":[[15,6]]},"156":{"position":[[84,7],[125,6]]},"595":{"position":[[47,6],[464,6]]},"601":{"position":[[29,6]]}}}],["natur",{"_index":607,"t":{"81":{"position":[[307,7]]},"647":{"position":[[908,6]]}}}],["nearest",{"_index":2396,"t":{"581":{"position":[[256,7]]}}}],["necessari",{"_index":1470,"t":{"272":{"position":[[251,9]]},"573":{"position":[[436,9],[574,9]]},"601":{"position":[[814,9]]}}}],["need",{"_index":39,"t":{"4":{"position":[[116,4]]},"28":{"position":[[561,5]]},"48":{"position":[[1237,7]]},"64":{"position":[[956,4]]},"75":{"position":[[229,4]]},"103":{"position":[[332,4]]},"144":{"position":[[20,4]]},"164":{"position":[[40,4]]},"166":{"position":[[43,4]]},"168":{"position":[[38,4]]},"232":{"position":[[239,6]]},"274":{"position":[[495,4]]},"292":{"position":[[568,6]]},"442":{"position":[[527,4]]},"452":{"position":[[521,4]]},"468":{"position":[[306,4],[403,6]]},"486":{"position":[[1648,5]]},"488":{"position":[[592,5]]},"494":{"position":[[169,4],[310,4],[629,4]]},"518":{"position":[[435,6]]},"541":{"position":[[284,4]]},"547":{"position":[[544,4]]},"557":{"position":[[2136,4],[2199,4]]},"567":{"position":[[219,5],[424,6]]},"579":{"position":[[243,4]]},"585":{"position":[[140,5]]}}}],["neglig",{"_index":2234,"t":{"547":{"position":[[376,11]]},"639":{"position":[[54,11]]}}}],["negoti",{"_index":1771,"t":{"420":{"position":[[325,11]]},"605":{"position":[[127,11],[489,12]]},"607":{"position":[[211,11],[287,10]]},"609":{"position":[[217,11]]}}}],["neighbor",{"_index":2486,"t":{"589":{"position":[[528,9],[672,10]]}}}],["neighbour",{"_index":1130,"t":{"188":{"position":[[948,12]]}}}],["neighbourhood",{"_index":1571,"t":{"298":{"position":[[365,14]]}}}],["netflix",{"_index":2399,"t":{"581":{"position":[[437,7]]},"583":{"position":[[2119,7]]}}}],["network",{"_index":35,"t":{"4":{"position":[[31,7],[320,8]]},"6":{"position":[[983,7]]},"10":{"position":[[84,8]]},"14":{"position":[[110,7]]},"22":{"position":[[1472,8],[1598,7]]},"28":{"position":[[85,8],[631,7]]},"30":{"position":[[36,7]]},"32":{"position":[[92,8]]},"34":{"position":[[599,7],[682,7],[748,7],[861,7]]},"38":{"position":[[31,7]]},"40":{"position":[[841,7],[907,7],[1020,7],[1338,7]]},"42":{"position":[[900,8],[1422,7],[2495,8]]},"44":{"position":[[113,7],[371,8],[497,7]]},"64":{"position":[[154,7]]},"70":{"position":[[22,10]]},"85":{"position":[[99,7]]},"89":{"position":[[71,8]]},"91":{"position":[[1060,7]]},"93":{"position":[[314,8]]},"119":{"position":[[606,7]]},"123":{"position":[[85,8]]},"125":{"position":[[410,8],[689,8]]},"164":{"position":[[153,7],[671,7]]},"168":{"position":[[974,8],[1253,8]]},"178":{"position":[[883,7]]},"180":{"position":[[108,8]]},"188":{"position":[[925,7],[1018,7]]},"198":{"position":[[831,8]]},"206":{"position":[[199,7],[613,8]]},"210":{"position":[[1619,7],[1651,8]]},"224":{"position":[[250,8]]},"232":{"position":[[387,8]]},"238":{"position":[[17,8]]},"242":{"position":[[454,8]]},"246":{"position":[[17,8]]},"250":{"position":[[44,7]]},"256":{"position":[[61,8]]},"264":{"position":[[212,7]]},"274":{"position":[[50,8],[476,8]]},"280":{"position":[[497,7],[700,8]]},"290":{"position":[[40,7]]},"294":{"position":[[78,8],[336,8]]},"298":{"position":[[222,8],[293,7]]},"300":{"position":[[426,8]]},"302":{"position":[[197,8],[446,7]]},"306":{"position":[[327,7]]},"308":{"position":[[202,8],[277,7]]},"310":{"position":[[197,8]]},"312":{"position":[[66,8],[435,8]]},"314":{"position":[[297,8],[408,7]]},"316":{"position":[[72,8],[477,7]]},"322":{"position":[[87,7]]},"324":{"position":[[67,8]]},"326":{"position":[[60,8],[167,8],[247,8]]},"330":{"position":[[91,8],[171,7]]},"334":{"position":[[63,8],[162,8]]},"340":{"position":[[161,7]]},"344":{"position":[[136,8]]},"346":{"position":[[206,8]]},"348":{"position":[[94,8]]},"350":{"position":[[20,7],[141,7]]},"352":{"position":[[101,8]]},"354":{"position":[[76,7]]},"356":{"position":[[153,8]]},"358":{"position":[[83,7]]},"366":{"position":[[58,7]]},"368":{"position":[[89,8]]},"370":{"position":[[122,8]]},"372":{"position":[[54,7]]},"374":{"position":[[64,7]]},"382":{"position":[[190,7]]},"386":{"position":[[201,7]]},"390":{"position":[[72,8],[157,8]]},"392":{"position":[[17,7]]},"394":{"position":[[258,8]]},"396":{"position":[[59,8]]},"398":{"position":[[114,8]]},"400":{"position":[[9,7],[68,7]]},"404":{"position":[[427,8],[704,8],[1348,7]]},"410":{"position":[[671,7]]},"420":{"position":[[353,8]]},"426":{"position":[[43,7],[73,7]]},"428":{"position":[[21,7]]},"430":{"position":[[6,7],[77,7],[416,7]]},"442":{"position":[[243,7],[871,7]]},"444":{"position":[[9,7],[43,7],[559,8],[577,8]]},"446":{"position":[[82,8],[200,7],[351,8],[467,8]]},"448":{"position":[[548,8]]},"450":{"position":[[108,8],[190,7],[434,7]]},"452":{"position":[[354,8]]},"458":{"position":[[215,8],[298,8]]},"484":{"position":[[35,7]]},"486":{"position":[[1171,8],[1617,7]]},"488":{"position":[[104,7],[646,8]]},"490":{"position":[[233,7],[601,7],[983,8]]},"497":{"position":[[512,7]]},"499":{"position":[[405,7]]},"502":{"position":[[65,7]]},"504":{"position":[[132,7],[289,7]]},"506":{"position":[[44,7],[147,7]]},"509":{"position":[[143,8],[170,7]]},"534":{"position":[[43,7],[150,7]]},"537":{"position":[[280,7]]},"539":{"position":[[117,7]]},"543":{"position":[[561,7]]},"545":{"position":[[441,7],[600,7]]},"553":{"position":[[102,7],[141,7]]},"557":{"position":[[1066,7]]},"559":{"position":[[481,8]]},"561":{"position":[[109,7]]},"563":{"position":[[541,7]]},"583":{"position":[[415,7],[443,7],[738,7],[1139,7]]},"585":{"position":[[68,7]]},"591":{"position":[[40,8]]},"593":{"position":[[23,8]]},"595":{"position":[[80,8]]},"597":{"position":[[35,8]]},"599":{"position":[[125,8],[1056,8]]},"601":{"position":[[106,9],[550,7],[837,7]]},"613":{"position":[[295,7]]},"623":{"position":[[167,8]]}}}],["networkconfig",{"_index":327,"t":{"28":{"position":[[870,14]]},"30":{"position":[[185,14]]},"34":{"position":[[769,13],[958,14],[1021,15]]},"40":{"position":[[928,13]]},"428":{"position":[[83,13]]},"432":{"position":[[231,14]]},"434":{"position":[[259,14]]},"436":{"position":[[373,14],[547,14]]},"438":{"position":[[102,13],[166,13],[233,13],[704,14]]},"440":{"position":[[37,13],[60,13]]},"442":{"position":[[844,13]]}}}],["never",{"_index":2559,"t":{"615":{"position":[[372,5]]}}}],["new",{"_index":113,"t":{"6":{"position":[[1122,4]]},"24":{"position":[[83,5],[202,3]]},"36":{"position":[[182,3]]},"38":{"position":[[79,3],[149,3]]},"40":{"position":[[706,3]]},"91":{"position":[[397,3]]},"113":{"position":[[127,3]]},"117":{"position":[[13,3]]},"140":{"position":[[188,3],[218,3]]},"162":{"position":[[919,3]]},"164":{"position":[[492,3]]},"168":{"position":[[563,3]]},"178":{"position":[[15,3]]},"252":{"position":[[15,3]]},"330":{"position":[[911,3]]},"428":{"position":[[79,3]]},"442":{"position":[[146,3],[361,3]]},"480":{"position":[[148,3]]},"494":{"position":[[79,3],[1182,3]]},"509":{"position":[[52,3]]},"537":{"position":[[613,3],[731,3],[825,3]]},"575":{"position":[[206,3],[340,3],[400,3]]},"615":{"position":[[583,3],[764,3]]},"643":{"position":[[174,3]]}}}],["newer",{"_index":230,"t":{"20":{"position":[[350,5]]},"492":{"position":[[159,5]]}}}],["newli",{"_index":1055,"t":{"168":{"position":[[186,5]]},"595":{"position":[[127,5]]}}}],["newseq[protectedshard](0",{"_index":1156,"t":{"202":{"position":[[134,25]]}}}],["next",{"_index":177,"t":{"14":{"position":[[194,4]]},"22":{"position":[[791,4]]},"91":{"position":[[461,5]]},"115":{"position":[[53,4]]},"117":{"position":[[164,5]]},"138":{"position":[[169,4],[742,4]]},"158":{"position":[[286,5]]},"160":{"position":[[579,5]]},"162":{"position":[[1882,5]]},"520":{"position":[[16,4]]},"526":{"position":[[323,4]]},"530":{"position":[[364,4],[815,4],[1887,4]]}}}],["nft",{"_index":70,"t":{"6":{"position":[[238,3],[285,3]]}}}],["nightli",{"_index":1338,"t":{"234":{"position":[[582,7],[667,7]]}}}],["nim",{"_index":1334,"t":{"232":{"position":[[34,3]]},"518":{"position":[[4,3]]},"532":{"position":[[219,3],[1121,3]]}}}],["node",{"_index":131,"t":{"10":{"position":[[70,5],[196,4],[237,5],[284,4],[343,5]]},"14":{"position":[[123,4]]},"22":{"position":[[237,5],[386,5],[855,5],[908,4],[1317,4],[1367,4],[1426,5],[1496,5],[1615,5]]},"26":{"position":[[94,4]]},"28":{"position":[[53,4],[167,4],[178,4],[301,4],[390,4],[481,5],[547,6],[556,4],[771,4],[815,4]]},"30":{"position":[[98,4],[130,4]]},"32":{"position":[[53,4]]},"42":{"position":[[1442,6],[1583,5],[1653,5],[2722,5],[2753,4]]},"44":{"position":[[58,4],[180,4],[214,4],[266,4],[325,5],[395,5],[514,5]]},"46":{"position":[[193,4],[239,4]]},"48":{"position":[[58,4],[205,4],[235,4],[332,4],[718,4],[752,4],[851,4],[1114,4],[1157,5],[1254,4],[1462,5],[1645,4],[1658,4]]},"50":{"position":[[15,4],[225,4],[388,4],[464,4],[561,4],[592,4],[735,4],[873,4],[904,4]]},"52":{"position":[[28,4],[494,4],[591,4],[639,4]]},"54":{"position":[[51,4],[174,4],[303,4]]},"64":{"position":[[1069,4]]},"66":{"position":[[195,4]]},"87":{"position":[[77,4]]},"91":{"position":[[1255,4]]},"93":{"position":[[213,4],[221,4]]},"105":{"position":[[5,5]]},"107":{"position":[[0,4],[234,4]]},"109":{"position":[[0,5],[316,4],[344,4]]},"111":{"position":[[0,5]]},"113":{"position":[[91,4],[131,4],[598,4],[645,4]]},"121":{"position":[[53,4]]},"123":{"position":[[53,4],[167,4],[178,4]]},"125":{"position":[[51,4],[290,5],[352,4],[398,4],[425,4],[573,4],[634,4]]},"129":{"position":[[100,5],[177,5]]},"131":{"position":[[99,5]]},"133":{"position":[[120,5]]},"140":{"position":[[822,4]]},"142":{"position":[[52,4]]},"150":{"position":[[255,4],[322,4]]},"152":{"position":[[137,4]]},"154":{"position":[[21,5],[124,5],[179,4],[314,5],[349,4],[434,5],[509,5],[553,4],[650,4],[688,4],[808,6],[839,5],[950,4],[1052,4],[1087,4],[1134,4],[1259,4],[1349,6],[1429,5],[1577,5],[1647,4],[1754,4],[1810,4]]},"160":{"position":[[303,4],[443,4],[610,4],[765,4],[778,5],[819,6],[847,4],[901,4],[952,4]]},"162":{"position":[[615,4],[628,5]]},"164":{"position":[[294,4],[343,5]]},"166":{"position":[[362,5]]},"168":{"position":[[401,5],[521,5],[887,5],[937,4],[962,4],[989,4],[1137,4],[1198,4]]},"170":{"position":[[60,4]]},"172":{"position":[[149,4],[234,5]]},"178":{"position":[[230,4],[866,4],[1214,4],[1273,5],[1373,4],[1420,4]]},"180":{"position":[[56,4],[148,4]]},"182":{"position":[[40,4],[290,4]]},"184":{"position":[[35,5],[126,4],[185,4],[828,4],[879,4]]},"186":{"position":[[28,5],[115,4],[160,5],[205,5],[465,4],[863,4]]},"188":{"position":[[35,5],[126,4],[183,4],[224,4],[405,5],[459,5],[476,5],[555,4],[640,4],[961,6]]},"190":{"position":[[23,5],[160,4],[204,4]]},"192":{"position":[[144,5]]},"194":{"position":[[8,4],[66,4]]},"196":{"position":[[162,5],[410,4]]},"198":{"position":[[168,5],[406,4],[720,5]]},"200":{"position":[[23,4]]},"206":{"position":[[64,4],[84,4],[150,4],[219,4]]},"218":{"position":[[510,4]]},"222":{"position":[[70,5],[114,4]]},"224":{"position":[[73,5],[83,4],[145,4],[180,4],[216,5],[419,5],[510,5]]},"226":{"position":[[129,4]]},"230":{"position":[[1504,4],[1570,4]]},"232":{"position":[[64,5],[124,5],[370,4],[434,4],[500,4],[585,5]]},"234":{"position":[[9,5],[93,5],[177,4],[303,4],[387,4],[555,4],[755,4]]},"236":{"position":[[230,5],[255,4],[286,4]]},"238":{"position":[[26,5],[211,5],[333,5],[533,5],[572,4],[657,4]]},"240":{"position":[[38,4],[86,4],[117,4]]},"242":{"position":[[39,4],[63,4],[204,4],[261,4],[320,5],[437,4],[482,4]]},"244":{"position":[[56,4]]},"246":{"position":[[26,5]]},"248":{"position":[[85,4],[333,5],[398,5],[424,5],[494,5],[926,5]]},"250":{"position":[[268,4],[869,4],[1163,4],[1489,4],[1650,4]]},"252":{"position":[[0,5],[1010,4]]},"254":{"position":[[47,5],[221,4],[416,4],[841,4],[1001,4],[1375,5]]},"256":{"position":[[47,4],[176,4],[998,4],[1145,4]]},"258":{"position":[[228,4],[414,4]]},"260":{"position":[[229,4],[381,4]]},"264":{"position":[[104,4],[198,4],[299,4],[329,5]]},"266":{"position":[[23,4],[105,5]]},"268":{"position":[[204,4],[289,5]]},"274":{"position":[[114,4]]},"276":{"position":[[32,5],[220,4]]},"278":{"position":[[70,4]]},"280":{"position":[[11,4],[684,4],[922,4],[981,5],[1071,4],[1134,4]]},"294":{"position":[[232,6],[305,5],[374,5]]},"296":{"position":[[72,4]]},"298":{"position":[[171,5],[205,5],[301,5],[451,5],[554,6]]},"300":{"position":[[383,6]]},"302":{"position":[[25,5],[284,4],[736,4]]},"306":{"position":[[355,5]]},"310":{"position":[[29,5]]},"312":{"position":[[294,4]]},"314":{"position":[[46,5]]},"318":{"position":[[58,4],[170,5],[254,4],[328,5],[411,4]]},"320":{"position":[[61,4],[122,5]]},"324":{"position":[[50,5]]},"328":{"position":[[336,5]]},"330":{"position":[[287,4],[353,4],[421,4],[522,4],[621,4],[682,4],[692,4],[721,4],[729,4],[807,5],[832,4],[840,4],[867,4],[941,4],[1025,4],[1033,4]]},"334":{"position":[[46,4]]},"338":{"position":[[124,6]]},"342":{"position":[[146,4]]},"344":{"position":[[9,4],[77,6],[191,4]]},"346":{"position":[[40,5]]},"352":{"position":[[8,4],[75,5]]},"354":{"position":[[40,5]]},"358":{"position":[[2,4]]},"360":{"position":[[2,4],[141,5]]},"366":{"position":[[23,5]]},"368":{"position":[[25,4]]},"370":{"position":[[63,5],[109,5]]},"372":{"position":[[37,4]]},"374":{"position":[[42,5]]},"382":{"position":[[218,5]]},"394":{"position":[[168,4]]},"404":{"position":[[145,5],[326,4],[334,4],[1442,5],[1747,5]]},"410":{"position":[[620,4]]},"422":{"position":[[164,5],[398,4],[492,4],[528,4]]},"428":{"position":[[49,4]]},"430":{"position":[[62,5]]},"444":{"position":[[439,6]]},"446":{"position":[[330,5],[425,4]]},"448":{"position":[[111,4],[166,4]]},"450":{"position":[[91,4],[133,4]]},"452":{"position":[[39,4],[208,4],[582,5],[752,5]]},"454":{"position":[[151,4],[301,4]]},"458":{"position":[[46,6],[261,4]]},"486":{"position":[[327,5],[380,4],[707,4],[1154,5],[1329,4],[1888,4]]},"492":{"position":[[82,5]]},"494":{"position":[[241,4],[898,4],[1034,5],[1098,4]]},"497":{"position":[[275,6],[333,6],[380,6],[399,4],[549,6]]},"499":{"position":[[168,6],[226,6],[273,6],[292,4],[442,6]]},"502":{"position":[[16,4],[54,4]]},"504":{"position":[[89,6],[343,5],[386,6],[417,6],[489,5],[545,6],[561,5],[596,5],[757,6],[784,6],[830,6]]},"506":{"position":[[59,5],[165,5]]},"518":{"position":[[13,5],[118,5],[276,5]]},"520":{"position":[[264,4]]},"526":{"position":[[38,4],[109,5],[140,5],[209,5],[364,5],[758,5],[1115,4],[1190,4],[1488,4]]},"528":{"position":[[102,4],[163,4],[265,4],[329,6],[347,4],[493,5],[530,5],[706,4]]},"530":{"position":[[102,4],[684,5],[1234,4]]},"532":{"position":[[100,5],[228,5],[1130,5],[1705,6]]},"534":{"position":[[345,6],[416,5],[457,5],[524,6],[608,5]]},"537":{"position":[[334,6]]},"539":{"position":[[134,5]]},"541":{"position":[[246,4]]},"543":{"position":[[459,5]]},"545":{"position":[[387,6],[588,4],[651,6]]},"549":{"position":[[25,5]]},"553":{"position":[[43,5]]},"555":{"position":[[148,5],[243,5],[325,4],[441,5],[542,5],[640,6],[760,4],[804,4]]},"557":{"position":[[220,6],[321,5],[337,5],[429,4],[522,5],[780,5],[865,5],[953,5],[1084,5],[1115,4],[1175,6],[1217,5],[1392,6],[1535,5],[1689,4],[1886,4],[2057,4]]},"559":{"position":[[720,5]]},"561":{"position":[[581,4],[633,5],[911,4],[1346,5],[1477,4],[1730,6],[1933,4],[2096,4]]},"577":{"position":[[154,5]]},"579":{"position":[[69,4],[312,4],[536,5],[834,5],[881,4]]},"583":{"position":[[400,6],[591,5],[642,5],[1197,4],[1501,4],[1534,5],[1598,5]]},"585":{"position":[[106,5],[199,4]]},"589":{"position":[[172,4],[217,5],[516,5],[574,5],[645,4],[699,4]]},"599":{"position":[[402,4],[485,4],[591,5],[621,5],[667,4],[683,4]]}}}],["node'",{"_index":949,"t":{"154":{"position":[[1606,6],[1705,6]]},"208":{"position":[[280,6]]},"240":{"position":[[604,6]]},"248":{"position":[[141,6],[771,6]]},"372":{"position":[[107,6]]},"410":{"position":[[80,6]]},"422":{"position":[[425,6]]},"589":{"position":[[309,6],[384,6]]},"601":{"position":[[367,6]]}}}],["node.dial(multiaddr",{"_index":478,"t":{"48":{"position":[[1370,22]]}}}],["node.filter.createsubscript",{"_index":396,"t":{"40":{"position":[[533,32]]},"91":{"position":[[224,32]]}}}],["node.filter.createsubscription(networkconfig",{"_index":401,"t":{"40":{"position":[[1062,46]]}}}],["node.lightpush.send(eciesencod",{"_index":687,"t":{"101":{"position":[[1952,33]]}}}],["node.lightpush.send(encod",{"_index":383,"t":{"38":{"position":[[430,28]]},"97":{"position":[[716,28]]},"99":{"position":[[867,28]]}}}],["node.lightpush.send(symmetricencod",{"_index":685,"t":{"101":{"position":[[1838,37]]}}}],["node.start",{"_index":310,"t":{"28":{"position":[[242,13]]},"123":{"position":[[242,13]]}}}],["node.stop",{"_index":312,"t":{"28":{"position":[[315,12]]}}}],["node.store.querygenerator([decod",{"_index":826,"t":{"133":{"position":[[403,37]]},"136":{"position":[[520,35]]},"140":{"position":[[495,35]]}}}],["node.store.querywithorderedcallback([decod",{"_index":652,"t":{"97":{"position":[[1189,46]]},"99":{"position":[[1349,46]]},"131":{"position":[[635,46]]},"136":{"position":[[434,46]]},"138":{"position":[[543,46],[833,46]]},"140":{"position":[[409,46]]}}}],["node.waitforp",{"_index":333,"t":{"32":{"position":[[8,19],[148,20]]},"54":{"position":[[238,20]]},"125":{"position":[[8,19]]}}}],["node.waitforpeers([protocols.lightpush",{"_index":338,"t":{"32":{"position":[[370,39]]}}}],["node.waitforpeers([protocols.stor",{"_index":803,"t":{"125":{"position":[[171,37]]}}}],["node=/ip4/0.0.0.0/tcp/60000/p2p/16uiu2hamlce6zvqcs6kmqqrbbhyojjfyzgr1q3thtsbykzibqkfr",{"_index":1128,"t":{"188":{"position":[[751,85]]}}}],["node=[discv5",{"_index":1120,"t":{"186":{"position":[[342,12],[399,12]]}}}],["node=[p",{"_index":1125,"t":{"188":{"position":[[329,10]]}}}],["node=enr",{"_index":1121,"t":{"186":{"position":[[608,9]]}}}],["node_a",{"_index":2102,"t":{"528":{"position":[[321,7],[671,6]]}}}],["node_b",{"_index":2103,"t":{"528":{"position":[[403,7],[628,6]]}}}],["node_c",{"_index":2105,"t":{"528":{"position":[[499,7]]}}}],["node_d",{"_index":2106,"t":{"528":{"position":[[511,8]]}}}],["node_opt",{"_index":966,"t":{"160":{"position":[[322,12]]}}}],["node_requir",{"_index":494,"t":{"50":{"position":[[488,17],[679,18],[1016,18]]},"52":{"position":[[518,17],[757,18]]}}}],["nodea",{"_index":2096,"t":{"528":{"position":[[84,6]]}}}],["nodeb",{"_index":2098,"t":{"528":{"position":[[145,6]]}}}],["nodec",{"_index":2100,"t":{"528":{"position":[[247,6]]}}}],["nodej",{"_index":266,"t":{"22":{"position":[[990,6],[1079,6]]},"42":{"position":[[1691,6],[1762,6],[1878,6]]},"56":{"position":[[109,6]]},"60":{"position":[[38,7]]},"72":{"position":[[96,6],[258,7]]},"75":{"position":[[54,6],[157,6],[210,7]]},"79":{"position":[[98,6]]},"81":{"position":[[94,7],[169,6],[338,7],[455,6]]},"83":{"position":[[28,6]]},"85":{"position":[[29,6],[119,6]]}}}],["nodekey",{"_index":1170,"t":{"206":{"position":[[207,7]]},"252":{"position":[[157,7]]}}}],["nodekey=286cae9f2990bfc49dafdd3a9e737f56ddba3656e5e427108cef456fb67680e8",{"_index":1416,"t":{"252":{"position":[[1050,72]]}}}],["nodekey=[nod",{"_index":1398,"t":{"252":{"position":[[193,13]]}}}],["nodes=1000",{"_index":2295,"t":{"559":{"position":[[698,11]]}}}],["nois",{"_index":415,"t":{"42":{"position":[[1049,5]]},"93":{"position":[[192,5]]},"402":{"position":[[5,5],[41,5]]},"404":{"position":[[305,5]]},"420":{"position":[[204,5],[278,5]]}}}],["non",{"_index":2020,"t":{"504":{"position":[[495,3],[575,3],[804,3]]},"593":{"position":[[333,3]]},"601":{"position":[[585,3]]},"625":{"position":[[333,3]]},"631":{"position":[[274,3]]},"637":{"position":[[419,3]]}}}],["none",{"_index":1181,"t":{"206":{"position":[[527,5]]},"212":{"position":[[332,4]]},"250":{"position":[[600,4]]}}}],["nonetheless",{"_index":1884,"t":{"476":{"position":[[117,12]]}}}],["normal",{"_index":2090,"t":{"526":{"position":[[1176,6],[1513,6]]}}}],["north",{"_index":2401,"t":{"581":{"position":[[542,5]]},"583":{"position":[[2678,5]]}}}],["note",{"_index":521,"t":{"64":{"position":[[194,4]]},"105":{"position":[[216,4]]},"178":{"position":[[846,4]]},"280":{"position":[[299,4],[638,4]]},"414":{"position":[[156,4]]},"442":{"position":[[826,5]]},"456":{"position":[[162,7]]},"490":{"position":[[756,5]]},"557":{"position":[[260,4]]},"559":{"position":[[274,4]]},"561":{"position":[[202,4],[356,5],[1693,4]]},"571":{"position":[[317,4]]},"573":{"position":[[339,4],[408,4]]},"579":{"position":[[1156,4]]},"581":{"position":[[212,5]]},"583":{"position":[[1588,4],[2901,5]]},"647":{"position":[[520,4]]}}}],["noth",{"_index":2241,"t":{"549":{"position":[[232,7]]},"573":{"position":[[831,7]]},"631":{"position":[[1628,7]]}}}],["notic",{"_index":1160,"t":{"204":{"position":[[133,7]]},"480":{"position":[[81,7]]},"520":{"position":[[156,6]]},"530":{"position":[[658,6],[2119,6],[2458,6],[2734,6],[3474,7],[3735,6]]},"557":{"position":[[1182,6]]},"633":{"position":[[1392,6]]},"643":{"position":[[87,7]]},"647":{"position":[[870,6],[1108,6]]}}}],["notif",{"_index":1510,"t":{"284":{"position":[[601,13]]},"290":{"position":[[147,13],[652,12]]}}}],["notificationpayload",{"_index":1530,"t":{"290":{"position":[[462,19],[632,19]]}}}],["novemb",{"_index":2144,"t":{"530":{"position":[[3822,8]]}}}],["now",{"_index":1574,"t":{"300":{"position":[[339,3]]},"430":{"position":[[399,3]]},"438":{"position":[[347,3]]},"440":{"position":[[77,3]]},"442":{"position":[[290,3],[882,3]]},"494":{"position":[[165,3]]},"547":{"position":[[35,3]]},"559":{"position":[[918,5]]}}}],["npm",{"_index":207,"t":{"18":{"position":[[68,3],[77,3]]},"20":{"position":[[570,3],[579,3]]},"42":{"position":[[107,4]]},"50":{"position":[[88,3]]},"95":{"position":[[109,3],[118,3]]},"117":{"position":[[72,3]]},"158":{"position":[[160,3],[169,3],[386,3],[395,3]]}}}],["npx",{"_index":767,"t":{"117":{"position":[[81,3],[334,3]]}}}],["ns1.google.com",{"_index":1087,"t":{"178":{"position":[[680,15]]}}}],["nullifi",{"_index":1601,"t":{"308":{"position":[[66,10]]},"380":{"position":[[11,10]]},"386":{"position":[[69,10]]},"404":{"position":[[1228,10],[1260,9]]},"408":{"position":[[96,10]]},"418":{"position":[[424,10]]},"444":{"position":[[290,11]]},"563":{"position":[[433,10]]}}}],["num",{"_index":1246,"t":{"210":{"position":[[1605,3]]}}}],["number",{"_index":1179,"t":{"206":{"position":[[436,7],[745,6]]},"210":{"position":[[1627,6]]},"214":{"position":[[329,6],[426,6]]},"230":{"position":[[410,6]]},"292":{"position":[[618,6]]},"318":{"position":[[318,6]]},"404":{"position":[[1686,6]]},"410":{"position":[[129,6]]},"526":{"position":[[452,6]]},"530":{"position":[[452,7]]},"541":{"position":[[466,6]]},"543":{"position":[[335,6]]},"547":{"position":[[319,8]]},"579":{"position":[[1474,6]]},"581":{"position":[[228,7]]},"583":{"position":[[131,7],[310,7],[2232,7],[2912,6]]}}}],["numer",{"_index":1709,"t":{"404":{"position":[[103,8]]}}}],["nutshel",{"_index":1736,"t":{"410":{"position":[[308,9]]}}}],["nwaku",{"_index":135,"t":{"10":{"position":[[155,5]]},"14":{"position":[[66,5]]},"22":{"position":[[1226,5]]},"42":{"position":[[1818,5],[2115,5]]},"48":{"position":[[1456,5]]},"56":{"position":[[179,6]]},"64":{"position":[[0,5]]},"66":{"position":[[189,5]]},"70":{"position":[[333,6]]},"77":{"position":[[128,5]]},"83":{"position":[[137,5]]},"85":{"position":[[53,5]]},"113":{"position":[[85,5]]},"142":{"position":[[46,5],[154,6],[289,6],[296,5]]},"144":{"position":[[9,6]]},"146":{"position":[[166,5]]},"148":{"position":[[10,5]]},"150":{"position":[[0,5],[207,6],[249,5],[264,5],[296,5]]},"152":{"position":[[83,5],[197,5]]},"154":{"position":[[45,5],[173,5],[343,5],[503,5],[547,5],[644,5],[750,6],[802,5],[833,5],[1046,5],[1343,5],[1423,5],[1600,5]]},"170":{"position":[[54,5],[166,5]]},"172":{"position":[[143,5]]},"174":{"position":[[4,5]]},"176":{"position":[[136,5]]},"178":{"position":[[4,5],[261,5],[1367,5],[1480,5]]},"180":{"position":[[50,5],[142,5]]},"182":{"position":[[34,5],[284,5]]},"184":{"position":[[29,5],[728,5],[822,5]]},"186":{"position":[[22,5],[459,5],[857,5]]},"188":{"position":[[29,5],[399,5],[549,5],[634,5],[842,5]]},"190":{"position":[[29,5]]},"192":{"position":[[67,5]]},"194":{"position":[[2,5]]},"196":{"position":[[76,5]]},"198":{"position":[[79,5],[714,5]]},"206":{"position":[[144,5]]},"232":{"position":[[0,5],[130,5],[364,5],[494,5]]},"234":{"position":[[33,5],[47,5],[103,5],[297,5],[332,5],[381,5],[418,5],[549,5],[569,5],[613,5],[769,5],[793,5],[831,5]]},"236":{"position":[[25,5],[224,5]]},"238":{"position":[[97,5],[222,5],[314,5],[411,5],[566,5]]},"240":{"position":[[32,5]]},"242":{"position":[[431,5],[542,5]]},"244":{"position":[[50,5]]},"246":{"position":[[97,5]]},"248":{"position":[[327,5]]},"250":{"position":[[1157,5],[1421,5],[1644,5]]},"252":{"position":[[1023,6]]},"254":{"position":[[101,5],[835,5],[995,5],[1369,5]]},"256":{"position":[[0,5],[992,5],[1139,5]]},"258":{"position":[[10,5],[138,5],[408,5]]},"260":{"position":[[10,5],[152,5],[375,5]]},"262":{"position":[[117,5]]},"264":{"position":[[0,5],[98,5]]},"268":{"position":[[198,5]]},"270":{"position":[[55,5]]},"274":{"position":[[108,5]]},"276":{"position":[[26,5],[156,5],[289,5]]},"280":{"position":[[5,5],[80,5],[157,5],[1065,5],[1222,5]]},"404":{"position":[[1787,5]]},"450":{"position":[[23,5],[85,5]]},"492":{"position":[[27,6]]},"497":{"position":[[49,5]]},"509":{"position":[[56,5]]},"511":{"position":[[52,5]]},"513":{"position":[[4,5],[196,5]]},"518":{"position":[[19,6],[197,5],[282,5]]},"520":{"position":[[34,5],[197,5],[258,5]]},"528":{"position":[[524,5]]},"530":{"position":[[678,5],[795,5],[1798,5],[1818,5],[3222,5],[3371,5]]},"532":{"position":[[1390,5],[1497,5],[1767,5]]},"537":{"position":[[328,5]]},"545":{"position":[[366,5]]},"553":{"position":[[37,5]]},"555":{"position":[[941,5]]},"559":{"position":[[103,5],[677,5],[749,5]]}}}],["nwaku'",{"_index":1995,"t":{"494":{"position":[[765,7]]}}}],["nwaku+postgr",{"_index":2067,"t":{"524":{"position":[[89,14]]}}}],["nwaku+sqlit",{"_index":2068,"t":{"524":{"position":[[108,13]]}}}],["nwakunode.com",{"_index":573,"t":{"70":{"position":[[197,13],[255,14]]},"248":{"position":[[292,14]]}}}],["o",{"_index":1085,"t":{"178":{"position":[[656,1]]}}}],["o.myaddr.l.google.com",{"_index":1086,"t":{"178":{"position":[[658,21]]}}}],["object",{"_index":370,"t":{"38":{"position":[[91,6],[161,6]]},"164":{"position":[[504,6]]},"298":{"position":[[12,9]]},"442":{"position":[[453,7]]},"476":{"position":[[831,6]]}}}],["oblig",{"_index":1870,"t":{"474":{"position":[[7,7]]},"631":{"position":[[1222,10]]}}}],["observ",{"_index":2250,"t":{"553":{"position":[[301,7],[399,7]]}}}],["obtain",{"_index":1738,"t":{"410":{"position":[[357,6]]},"422":{"position":[[256,8]]},"448":{"position":[[348,6]]},"450":{"position":[[153,8]]},"530":{"position":[[833,8],[1905,8]]},"532":{"position":[[1036,8]]}}}],["occasion",{"_index":620,"t":{"89":{"position":[[0,13]]},"356":{"position":[[115,12]]}}}],["occur",{"_index":975,"t":{"160":{"position":[[887,6]]},"210":{"position":[[965,5]]},"474":{"position":[[669,5]]}}}],["oceania",{"_index":2424,"t":{"581":{"position":[[657,7]]},"583":{"position":[[2737,7]]}}}],["oct",{"_index":2398,"t":{"581":{"position":[[372,3]]}}}],["off",{"_index":1590,"t":{"304":{"position":[[108,4]]}}}],["offer",{"_index":74,"t":{"6":{"position":[[298,6]]},"294":{"position":[[194,6]]},"322":{"position":[[43,6]]},"412":{"position":[[23,5]]},"420":{"position":[[227,5]]},"488":{"position":[[318,5],[566,6]]},"631":{"position":[[1685,5],[1725,5]]}}}],["offic",{"_index":1848,"t":{"466":{"position":[[190,6]]},"629":{"position":[[130,6]]}}}],["offlin",{"_index":1612,"t":{"312":{"position":[[156,7]]},"328":{"position":[[123,7]]},"356":{"position":[[7,7],[64,7]]},"390":{"position":[[90,7]]}}}],["offline/resourc",{"_index":1837,"t":{"460":{"position":[[242,16]]}}}],["old",{"_index":1981,"t":{"492":{"position":[[45,3]]}}}],["older",{"_index":229,"t":{"20":{"position":[[340,5]]},"494":{"position":[[1109,5]]}}}],["oldest",{"_index":834,"t":{"133":{"position":[[771,6]]},"136":{"position":[[132,6],[305,6]]}}}],["omit",{"_index":851,"t":{"138":{"position":[[947,4]]},"184":{"position":[[685,4]]},"250":{"position":[[645,4],[926,4]]},"254":{"position":[[309,4]]},"256":{"position":[[278,4],[394,4],[528,4]]},"258":{"position":[[709,4]]},"561":{"position":[[409,8]]}}}],["on",{"_index":282,"t":{"22":{"position":[[1446,4]]},"44":{"position":[[345,4]]},"105":{"position":[[286,3]]},"206":{"position":[[514,3]]},"230":{"position":[[522,3],[696,3]]},"234":{"position":[[245,4]]},"314":{"position":[[202,3]]},"376":{"position":[[184,3]]},"486":{"position":[[301,3],[956,3],[1015,3]]},"492":{"position":[[361,4]]},"528":{"position":[[91,3],[152,3],[254,3],[336,3]]},"532":{"position":[[61,3]]},"537":{"position":[[346,3]]},"545":{"position":[[400,3]]},"557":{"position":[[123,3],[846,3]]},"569":{"position":[[301,3]]},"579":{"position":[[147,3]]},"583":{"position":[[1497,3]]},"599":{"position":[[451,3]]},"639":{"position":[[532,4]]},"647":{"position":[[1652,3],[2085,3]]}}}],["onboard",{"_index":2369,"t":{"575":{"position":[[328,7]]}}}],["onc",{"_index":1315,"t":{"230":{"position":[[631,5]]},"236":{"position":[[0,4]]},"302":{"position":[[246,4]]},"334":{"position":[[72,4]]},"497":{"position":[[678,4]]},"499":{"position":[[571,4]]},"547":{"position":[[477,5]]},"561":{"position":[[2329,4]]},"575":{"position":[[0,4]]}}}],["onchain",{"_index":1219,"t":{"210":{"position":[[341,7]]},"545":{"position":[[264,7]]}}}],["onchange={handleinputchang",{"_index":1008,"t":{"162":{"position":[[1519,28]]}}}],["onclick={sendmessage}>send.example.com",{"_index":1827,"t":{"454":{"position":[[218,17]]}}}],["round",{"_index":2395,"t":{"581":{"position":[[241,7]]}}}],["rout",{"_index":319,"t":{"28":{"position":[[582,5]]},"186":{"position":[[181,7],[509,7],[905,7]]},"224":{"position":[[452,7],[543,7]]},"330":{"position":[[149,7]]},"392":{"position":[[114,8]]},"450":{"position":[[240,7]]},"534":{"position":[[172,8]]},"555":{"position":[[21,7],[79,6]]}}}],["row",{"_index":1953,"t":{"488":{"position":[[464,5]]},"526":{"position":[[814,4]]},"528":{"position":[[241,5]]}}}],["rule",{"_index":536,"t":{"64":{"position":[[587,5]]},"374":{"position":[[23,5]]},"404":{"position":[[922,5]]},"534":{"position":[[110,5]]},"565":{"position":[[290,5]]},"647":{"position":[[1316,5],[1386,5],[1963,5]]}}}],["run",{"_index":130,"t":{"10":{"position":[[64,3],[151,3],[231,3],[271,7]]},"22":{"position":[[971,3],[1486,7]]},"28":{"position":[[293,7]]},"42":{"position":[[1810,7]]},"44":{"position":[[385,7]]},"48":{"position":[[1569,7],[1641,3]]},"83":{"position":[[129,7]]},"107":{"position":[[221,7],[329,3]]},"109":{"position":[[303,7],[385,3]]},"111":{"position":[[552,3]]},"113":{"position":[[522,3]]},"125":{"position":[[329,7]]},"148":{"position":[[117,3]]},"150":{"position":[[68,3],[199,7],[243,3],[260,3],[292,3]]},"152":{"position":[[0,3]]},"154":{"position":[[10,3],[41,3],[118,3],[167,3],[304,7],[333,7],[413,7],[495,7],[539,7],[655,7],[1064,8]]},"168":{"position":[[914,7]]},"170":{"position":[[48,3],[162,3]]},"172":{"position":[[133,7],[213,7]]},"178":{"position":[[0,3],[44,3],[257,3],[312,3],[794,3],[805,3],[856,7],[985,3],[1201,7]]},"190":{"position":[[152,7]]},"206":{"position":[[72,7]]},"210":{"position":[[897,4],[956,3]]},"232":{"position":[[49,7],[116,7],[484,7],[564,7]]},"234":{"position":[[3,3],[83,7],[99,3],[171,3],[241,3],[291,3],[328,3],[375,3],[414,3],[823,3]]},"236":{"position":[[39,3],[81,3],[127,3]]},"240":{"position":[[24,7]]},"242":{"position":[[248,7]]},"264":{"position":[[109,7]]},"266":{"position":[[71,4]]},"268":{"position":[[188,7],[268,7]]},"274":{"position":[[366,7]]},"276":{"position":[[247,7]]},"280":{"position":[[909,7]]},"318":{"position":[[164,3]]},"404":{"position":[[134,3]]},"446":{"position":[[320,3]]},"450":{"position":[[19,3],[75,7]]},"458":{"position":[[42,3],[255,3]]},"460":{"position":[[150,3]]},"486":{"position":[[321,3],[364,3],[518,3],[1882,3]]},"492":{"position":[[34,7],[183,7],[295,7]]},"494":{"position":[[232,3],[888,7]]},"511":{"position":[[119,3]]},"526":{"position":[[215,7]]},"528":{"position":[[536,7]]},"530":{"position":[[690,3],[845,7],[1917,7]]},"532":{"position":[[1113,7]]},"537":{"position":[[233,7]]},"553":{"position":[[49,7]]},"559":{"position":[[284,7]]},"577":{"position":[[138,3]]},"579":{"position":[[58,3],[327,7],[603,3],[828,3],[875,3]]},"583":{"position":[[386,3],[577,3],[652,3]]},"585":{"position":[[112,7]]},"599":{"position":[[407,7],[490,7]]},"615":{"position":[[618,7]]}}}],["runstmt",{"_index":2157,"t":{"532":{"position":[[526,8]]}}}],["rustup",{"_index":888,"t":{"144":{"position":[[100,7],[638,6]]}}}],["s",{"_index":914,"t":{"144":{"position":[[505,1],[750,1]]},"504":{"position":[[705,3],[741,3]]}}}],["sa",{"_index":1909,"t":{"482":{"position":[[150,3]]},"649":{"position":[[963,3]]}}}],["sacrific",{"_index":588,"t":{"75":{"position":[[146,10]]}}}],["safeti",{"_index":1869,"t":{"472":{"position":[[141,6]]}}}],["same",{"_index":456,"t":{"48":{"position":[[378,4]]},"182":{"position":[[336,4]]},"188":{"position":[[510,4]]},"224":{"position":[[434,4],[525,4]]},"230":{"position":[[670,4]]},"378":{"position":[[130,4]]},"414":{"position":[[244,4]]},"474":{"position":[[512,4]]},"530":{"position":[[703,4],[1718,4]]},"532":{"position":[[260,4],[326,4],[1745,4]]},"549":{"position":[[0,4]]},"583":{"position":[[1276,5],[1417,5],[3008,4]]}}}],["sampl",{"_index":120,"t":{"6":{"position":[[1223,6]]},"294":{"position":[[255,8],[487,8]]},"298":{"position":[[439,8]]}}}],["sandbox",{"_index":2118,"t":{"530":{"position":[[928,7],[2000,7]]},"532":{"position":[[1058,7]]}}}],["saniti",{"_index":2047,"t":{"513":{"position":[[164,6]]}}}],["save",{"_index":66,"t":{"6":{"position":[[173,4],[313,8]]},"274":{"position":[[298,5]]}}}],["scaffold",{"_index":181,"t":{"14":{"position":[[248,8]]},"22":{"position":[[689,8]]}}}],["scalabl",{"_index":107,"t":{"6":{"position":[[961,12]]},"304":{"position":[[262,12]]},"318":{"position":[[301,12]]},"348":{"position":[[42,8]]},"400":{"position":[[36,8]]},"444":{"position":[[126,8],[302,11]]},"450":{"position":[[472,12]]},"452":{"position":[[728,12]]},"579":{"position":[[1289,12]]}}}],["scale",{"_index":1599,"t":{"306":{"position":[[311,6]]},"382":{"position":[[174,6]]},"515":{"position":[[187,6]]},"561":{"position":[[1746,5]]},"569":{"position":[[268,9]]},"583":{"position":[[761,5]]},"601":{"position":[[827,5]]}}}],["scenario",{"_index":1658,"t":{"328":{"position":[[131,9]]},"526":{"position":[[27,8]]},"528":{"position":[[75,8]]},"530":{"position":[[990,8],[1309,8],[1484,8],[1735,8],[2062,8],[2398,8],[2674,8]]}}}],["scene",{"_index":33,"t":{"2":{"position":[[366,7]]}}}],["sceneri",{"_index":2147,"t":{"532":{"position":[[171,7]]}}}],["scheme",{"_index":1363,"t":{"248":{"position":[[195,7]]}}}],["scope",{"_index":1834,"t":{"458":{"position":[[84,6]]}}}],["score",{"_index":1763,"t":{"418":{"position":[[218,7],[268,6],[347,7]]},"539":{"position":[[208,7]]},"545":{"position":[[313,8]]},"589":{"position":[[622,6],[658,6],[719,7]]}}}],["screaming_snake_cas",{"_index":743,"t":{"109":{"position":[[137,20]]}}}],["script",{"_index":246,"t":{"20":{"position":[[837,6],[848,7]]},"526":{"position":[[328,6]]}}}],["sdk",{"_index":149,"t":{"12":{"position":[[32,5],[189,3],[243,3]]},"16":{"position":[[39,3],[167,3]]},"42":{"position":[[81,3],[1225,3],[1464,3],[1733,3]]},"154":{"position":[[610,4]]},"156":{"position":[[39,3]]},"388":{"position":[[0,4]]},"404":{"position":[[112,4]]}}}],["seamless",{"_index":83,"t":{"6":{"position":[[462,8]]},"12":{"position":[[305,8]]}}}],["seamlessli",{"_index":199,"t":{"16":{"position":[[295,10]]},"22":{"position":[[633,10]]},"81":{"position":[[80,10]]}}}],["second",{"_index":747,"t":{"109":{"position":[[450,6]]},"214":{"position":[[253,8]]},"250":{"position":[[400,8],[1257,7]]},"258":{"position":[[498,7],[766,7]]},"488":{"position":[[288,8],[552,8]]},"490":{"position":[[107,8],[674,8]]},"532":{"position":[[1484,7],[1591,7],[1862,7]]},"537":{"position":[[412,7]]},"539":{"position":[[39,6],[103,8],[189,8]]},"541":{"position":[[183,7],[489,7]]},"543":{"position":[[108,7],[595,7]]},"545":{"position":[[538,8]]},"549":{"position":[[193,7]]},"559":{"position":[[1025,7],[1065,7]]},"561":{"position":[[861,7],[1423,7]]}}}],["secp256k1",{"_index":1399,"t":{"252":{"position":[[240,9],[668,9]]},"360":{"position":[[16,9]]}}}],["secreci",{"_index":1707,"t":{"402":{"position":[[218,8]]}}}],["secret",{"_index":1223,"t":{"210":{"position":[[500,6]]},"272":{"position":[[353,7]]}}}],["section",{"_index":26,"t":{"2":{"position":[[292,8]]},"154":{"position":[[1769,7]]},"649":{"position":[[289,8]]}}}],["secur",{"_index":21,"t":{"2":{"position":[[247,8]]},"4":{"position":[[245,6]]},"6":{"position":[[654,8]]},"64":{"position":[[63,6],[260,6],[327,6]]},"99":{"position":[[284,6]]},"103":{"position":[[237,6]]},"188":{"position":[[1005,8]]},"228":{"position":[[139,6],[167,6],[206,6],[222,6],[278,6],[295,6]]},"248":{"position":[[453,6],[676,6]]},"254":{"position":[[362,6],[386,6],[454,6],[471,6],[508,6],[526,6],[666,6],[700,6],[758,6],[1019,6],[1156,6],[1190,6],[1232,6]]},"278":{"position":[[235,9]]},"306":{"position":[[225,6]]},"358":{"position":[[101,6]]},"362":{"position":[[65,6],[135,9]]},"382":{"position":[[66,6]]},"388":{"position":[[70,7]]},"394":{"position":[[29,7]]},"398":{"position":[[69,6]]},"402":{"position":[[97,6]]},"412":{"position":[[52,8],[97,8],[131,8],[290,8],[342,8]]},"420":{"position":[[140,8],[310,6]]},"468":{"position":[[779,8]]},"472":{"position":[[36,8],[92,8]]},"534":{"position":[[531,6],[574,6],[716,9]]},"551":{"position":[[8,8],[117,8],[299,7]]},"563":{"position":[[488,6]]},"631":{"position":[[1764,9]]}}}],["security@free.technolog",{"_index":2245,"t":{"551":{"position":[[140,25]]}}}],["see",{"_index":765,"t":{"113":{"position":[[469,3]]},"150":{"position":[[119,3]]},"170":{"position":[[154,3]]},"504":{"position":[[632,3]]},"530":{"position":[[1121,3]]},"532":{"position":[[384,3]]},"545":{"position":[[358,3],[554,3],[642,4]]},"553":{"position":[[581,3]]},"557":{"position":[[348,3],[483,3]]},"559":{"position":[[416,4],[528,3]]},"561":{"position":[[1270,3],[1541,3]]},"583":{"position":[[2826,3]]},"599":{"position":[[696,4]]},"605":{"position":[[618,4]]},"609":{"position":[[17,3],[87,3],[160,3],[231,3]]},"613":{"position":[[27,3],[133,3],[221,3],[317,3]]},"617":{"position":[[66,3],[137,3]]},"621":{"position":[[48,3],[141,3]]},"625":{"position":[[38,3],[194,3],[358,3],[500,3]]}}}],["seek",{"_index":288,"t":{"24":{"position":[[34,4]]},"70":{"position":[[349,7]]},"302":{"position":[[303,4],[741,5]]},"647":{"position":[[989,8]]}}}],["seem",{"_index":2203,"t":{"541":{"position":[[0,5],[333,5]]},"543":{"position":[[140,5],[202,5],[342,5]]}}}],["seen",{"_index":867,"t":{"140":{"position":[[715,4]]}}}],["select",{"_index":770,"t":{"117":{"position":[[170,6]]},"178":{"position":[[92,8]]},"232":{"position":[[182,6]]},"282":{"position":[[118,11]]},"296":{"position":[[577,7]]},"310":{"position":[[38,11]]},"336":{"position":[[88,9]]},"346":{"position":[[49,11]]},"444":{"position":[[372,9]]},"532":{"position":[[917,6],[964,6],[1472,7],[1579,7],[1850,7]]},"615":{"position":[[864,7]]}}}],["sell",{"_index":2614,"t":{"631":{"position":[[1701,5],[1741,4]]}}}],["semi",{"_index":2543,"t":{"611":{"position":[[556,4]]}}}],["send",{"_index":251,"t":{"22":{"position":[[135,4],[202,4]]},"26":{"position":[[102,4]]},"34":{"position":[[1065,4]]},"38":{"position":[[3,4],[390,4]]},"42":{"position":[[2460,4]]},"87":{"position":[[137,4]]},"97":{"position":[[310,4],[374,4],[676,4]]},"99":{"position":[[448,4],[529,4],[827,4],[1522,7]]},"101":{"position":[[1705,4]]},"162":{"position":[[33,7],[1055,4],[2418,5]]},"164":{"position":[[3,4],[364,4]]},"226":{"position":[[152,4]]},"264":{"position":[[223,4]]},"274":{"position":[[122,4],[452,7]]},"280":{"position":[[222,4]]},"284":{"position":[[619,4]]},"302":{"position":[[82,8]]},"306":{"position":[[64,7]]},"314":{"position":[[159,7]]},"354":{"position":[[49,4]]},"374":{"position":[[123,8]]},"376":{"position":[[82,4]]},"382":{"position":[[106,7]]},"404":{"position":[[197,7],[1487,4]]},"488":{"position":[[441,4]]},"494":{"position":[[670,7]]},"541":{"position":[[260,4]]},"547":{"position":[[299,4]]},"561":{"position":[[656,7]]},"599":{"position":[[743,5]]},"603":{"position":[[96,5],[143,5],[454,4]]},"605":{"position":[[839,5],[1030,5]]},"615":{"position":[[791,5]]},"625":{"position":[[325,7]]},"647":{"position":[[852,4]]}}}],["send/rec",{"_index":2374,"t":{"579":{"position":[[276,12]]}}}],["sender",{"_index":376,"t":{"38":{"position":[[232,7]]},"97":{"position":[[401,6]]},"99":{"position":[[394,6],[556,6]]},"101":{"position":[[547,8],[976,6]]},"316":{"position":[[426,7]]},"545":{"position":[[223,6]]},"557":{"position":[[1552,6]]},"561":{"position":[[574,6]]},"625":{"position":[[273,8]]}}}],["sendmessag",{"_index":992,"t":{"162":{"position":[[1095,11]]},"164":{"position":[[59,13],[404,11]]}}}],["sens",{"_index":2063,"t":{"520":{"position":[[184,5]]}}}],["sent",{"_index":406,"t":{"40":{"position":[[1297,4]]},"93":{"position":[[300,4]]},"101":{"position":[[3046,4]]},"280":{"position":[[607,4]]},"316":{"position":[[232,5]]},"330":{"position":[[672,4]]},"404":{"position":[[413,4]]},"486":{"position":[[1265,4]]},"490":{"position":[[221,4],[843,4]]},"561":{"position":[[381,4],[851,4]]}}}],["separ",{"_index":1325,"t":{"230":{"position":[[1285,11]]},"362":{"position":[[55,9]]},"478":{"position":[[97,8]]},"605":{"position":[[530,8]]},"611":{"position":[[45,8]]}}}],["sepolia",{"_index":1463,"t":{"268":{"position":[[57,7],[92,7],[115,7]]},"448":{"position":[[9,7],[103,7],[246,7],[278,7],[320,7],[355,7],[400,7],[437,7]]},"450":{"position":[[125,7]]},"537":{"position":[[473,7]]},"547":{"position":[[95,8]]}}}],["sequenti",{"_index":815,"t":{"129":{"position":[[234,13]]}}}],["serial",{"_index":1043,"t":{"164":{"position":[[85,9]]}}}],["serialis",{"_index":380,"t":{"38":{"position":[[282,9]]},"164":{"position":[[633,9]]},"284":{"position":[[440,13]]}}}],["serialisedmessag",{"_index":381,"t":{"38":{"position":[[325,17],[470,18]]}}}],["serious",{"_index":1867,"t":{"472":{"position":[[45,9]]},"551":{"position":[[17,9]]}}}],["serv",{"_index":532,"t":{"64":{"position":[[492,6]]},"160":{"position":[[28,6]]},"214":{"position":[[310,5],[348,5]]},"230":{"position":[[1339,5]]},"238":{"position":[[684,7]]},"250":{"position":[[30,5],[163,5]]},"254":{"position":[[110,5]]},"258":{"position":[[19,5]]},"260":{"position":[[19,5]]},"322":{"position":[[130,5]]},"330":{"position":[[128,6],[294,6]]},"364":{"position":[[67,7]]},"378":{"position":[[33,6]]},"534":{"position":[[705,5]]}}}],["server",{"_index":484,"t":{"48":{"position":[[1559,6]]},"178":{"position":[[1163,9]]},"184":{"position":[[408,6],[436,6],[513,8],[662,6],[713,6],[769,7]]},"188":{"position":[[427,6],[541,7]]},"208":{"position":[[115,6],[154,6]]},"218":{"position":[[64,7],[141,6],[195,6],[525,7]]},"220":{"position":[[39,6],[71,7],[98,6],[156,6],[171,6],[223,6]]},"222":{"position":[[178,6],[217,6],[312,6]]},"256":{"position":[[162,6],[263,7],[379,7],[786,6],[832,6],[1029,6]]},"262":{"position":[[27,6]]},"296":{"position":[[94,7]]},"300":{"position":[[87,7]]},"324":{"position":[[348,8]]},"504":{"position":[[443,8],[474,8]]},"579":{"position":[[726,6]]},"585":{"position":[[394,6]]},"599":{"position":[[339,6],[390,6],[427,6],[545,6],[764,7],[778,6],[842,6],[922,6],[1005,6]]},"603":{"position":[[124,7],[136,6],[432,6]]},"605":{"position":[[867,6],[917,6],[1023,6]]},"607":{"position":[[102,6],[172,6]]},"611":{"position":[[127,6],[761,7],[1189,7]]},"615":{"position":[[36,6],[142,7],[192,6],[246,6],[475,6],[587,6],[699,7],[768,7],[874,6],[1063,6],[1135,7]]},"619":{"position":[[81,7],[149,7]]},"625":{"position":[[184,7]]}}}],["server'",{"_index":1456,"t":{"262":{"position":[[94,8]]},"605":{"position":[[810,8]]},"611":{"position":[[260,8],[913,8]]},"615":{"position":[[117,8],[314,8],[946,8]]}}}],["server=8.8.4.4",{"_index":1118,"t":{"184":{"position":[[1148,14]]}}}],["server=8.8.8.8",{"_index":1117,"t":{"184":{"position":[[1110,14]]}}}],["server=[dn",{"_index":1111,"t":{"184":{"position":[[645,11]]}}}],["servic",{"_index":1193,"t":{"206":{"position":[[780,7],[854,7],[1023,7]]},"234":{"position":[[873,7],[938,9]]},"352":{"position":[[67,7]]},"410":{"position":[[10,7],[87,7],[344,7],[414,7],[656,7],[708,8]]},"412":{"position":[[39,8]]},"422":{"position":[[93,8],[248,7]]},"444":{"position":[[406,8]]},"446":{"position":[[451,8]]},"458":{"position":[[207,7]]},"486":{"position":[[881,8]]},"528":{"position":[[66,8]]},"534":{"position":[[449,7],[600,7]]},"583":{"position":[[1912,9],[2086,9]]},"613":{"position":[[111,7],[199,7]]},"639":{"position":[[176,9]]}}}],["set",{"_index":302,"t":{"26":{"position":[[75,7]]},"28":{"position":[[372,3]]},"42":{"position":[[1618,7],[2740,3]]},"44":{"position":[[161,3]]},"48":{"position":[[3,3]]},"60":{"position":[[55,3]]},"109":{"position":[[169,3]]},"154":{"position":[[1561,7]]},"158":{"position":[[7,3]]},"160":{"position":[[79,3],[289,3]]},"178":{"position":[[927,3]]},"204":{"position":[[63,4]]},"212":{"position":[[325,3]]},"230":{"position":[[229,8],[270,3],[603,3],[659,3],[736,4],[859,7],[905,7],[1017,8],[1093,3]]},"248":{"position":[[8,3]]},"250":{"position":[[581,3],[812,7]]},"278":{"position":[[191,7]]},"282":{"position":[[36,3]]},"294":{"position":[[366,4]]},"328":{"position":[[16,3]]},"374":{"position":[[16,3]]},"404":{"position":[[1644,3]]},"428":{"position":[[29,8]]},"486":{"position":[[1025,3],[1143,3],[1625,4],[1778,3]]},"526":{"position":[[751,3]]},"534":{"position":[[632,3]]},"557":{"position":[[166,4]]},"565":{"position":[[313,3]]},"577":{"position":[[25,3]]},"583":{"position":[[1147,4],[2565,3],[2926,3]]},"599":{"position":[[893,3]]},"623":{"position":[[136,9]]},"647":{"position":[[888,7]]}}}],["setinputmessag",{"_index":986,"t":{"162":{"position":[[378,16]]},"164":{"position":[[851,20]]}}}],["setinputmessage(e.target.valu",{"_index":990,"t":{"162":{"position":[[551,32]]}}}],["setmessag",{"_index":987,"t":{"162":{"position":[[428,12]]}}}],["setmessages(allmessages.map((wakumessag",{"_index":1059,"t":{"168":{"position":[[652,41]]}}}],["setmessages(filtermessages.map((wakumessag",{"_index":1053,"t":{"166":{"position":[[429,44]]}}}],["setup",{"_index":483,"t":{"48":{"position":[[1520,5]]},"170":{"position":[[119,5]]},"264":{"position":[[47,5]]},"555":{"position":[[983,5]]}}}],["sever",{"_index":1515,"t":{"286":{"position":[[94,7]]},"442":{"position":[[0,7]]},"532":{"position":[[87,7]]},"553":{"position":[[447,8]]},"649":{"position":[[581,9]]}}}],["sh",{"_index":906,"t":{"144":{"position":[[303,2],[450,2],[598,2]]}}}],["shadow",{"_index":2277,"t":{"559":{"position":[[6,6],[871,6]]},"561":{"position":[[2212,6],[2334,6]]}}}],["shall",{"_index":2608,"t":{"631":{"position":[[1264,5]]},"641":{"position":[[4,5]]},"647":{"position":[[841,5]]}}}],["shape",{"_index":1747,"t":{"412":{"position":[[77,7]]}}}],["shard",{"_index":322,"t":{"28":{"position":[[670,7],[786,8]]},"30":{"position":[[78,9],[115,8],[216,7]]},"34":{"position":[[801,7]]},"40":{"position":[[960,7]]},"202":{"position":[[128,5],[160,6]]},"210":{"position":[[1516,5],[1551,5],[1557,5],[1609,6],[1637,6],[1690,6]]},"344":{"position":[[248,7]]},"426":{"position":[[102,8],[116,8]]},"428":{"position":[[125,8],[142,9]]},"430":{"position":[[469,7]]},"432":{"position":[[116,7],[262,7]]},"436":{"position":[[72,8],[89,8],[281,9],[404,7],[455,9]]},"438":{"position":[[259,8],[276,8],[378,9]]},"442":{"position":[[902,7]]},"444":{"position":[[317,8],[366,5]]},"484":{"position":[[75,5]]},"486":{"position":[[418,6]]},"490":{"position":[[1226,7],[1252,6],[1273,6]]},"494":{"position":[[95,5],[401,8],[526,8],[852,8],[987,8],[1232,8]]},"577":{"position":[[76,5],[304,6]]},"579":{"position":[[151,6],[389,7],[462,5],[1428,6]]},"583":{"position":[[114,6],[2801,6]]}}}],["shard:pubkey",{"_index":1157,"t":{"202":{"position":[[222,13]]}}}],["shard:public_key",{"_index":1989,"t":{"494":{"position":[[187,16]]}}}],["shard=\"4:your_public_key",{"_index":1991,"t":{"494":{"position":[[361,25]]}}}],["shardinfo",{"_index":1779,"t":{"432":{"position":[[89,10]]},"434":{"position":[[89,10]]},"438":{"position":[[125,9],[547,10]]},"440":{"position":[[168,10]]},"442":{"position":[[443,9]]}}}],["shardinfotopubsubtop",{"_index":1790,"t":{"442":{"position":[[266,23]]}}}],["shardingparam",{"_index":1785,"t":{"440":{"position":[[0,14]]}}}],["share",{"_index":116,"t":{"6":{"position":[[1148,8]]},"34":{"position":[[1096,6]]},"42":{"position":[[2654,7]]},"97":{"position":[[36,6],[1388,6]]},"99":{"position":[[1421,5]]},"272":{"position":[[415,6]]},"288":{"position":[[44,5]]},"290":{"position":[[209,5]]},"444":{"position":[[22,6]]},"446":{"position":[[127,6]]},"450":{"position":[[233,6],[365,6]]},"456":{"position":[[43,5]]},"532":{"position":[[1680,6]]},"591":{"position":[[65,8]]},"593":{"position":[[15,7],[269,5]]},"597":{"position":[[145,7]]},"601":{"position":[[98,7]]}}}],["shift",{"_index":1178,"t":{"206":{"position":[[404,5],[418,5]]}}}],["shift=1",{"_index":1127,"t":{"188":{"position":[[725,7]]}}}],["short",{"_index":52,"t":{"4":{"position":[[343,6]]},"178":{"position":[[649,6]]},"314":{"position":[[79,5]]},"328":{"position":[[369,5]]},"404":{"position":[[992,6]]}}}],["shorten",{"_index":2467,"t":{"585":{"position":[[162,10]]}}}],["shouldn't",{"_index":2211,"t":{"543":{"position":[[363,9]]},"583":{"position":[[1928,9]]}}}],["show",{"_index":505,"t":{"58":{"position":[[135,4]]},"528":{"position":[[759,5]]},"530":{"position":[[325,5],[1213,5]]},"532":{"position":[[161,5],[1368,5]]},"561":{"position":[[21,5],[79,7],[429,4]]},"581":{"position":[[21,5]]}}}],["shown",{"_index":2290,"t":{"559":{"position":[[599,5]]},"561":{"position":[[324,6]]},"583":{"position":[[2099,5]]}}}],["sia",{"_index":2513,"t":{"597":{"position":[[66,4]]}}}],["side",{"_index":593,"t":{"77":{"position":[[32,4]]},"226":{"position":[[97,6],[226,5]]},"599":{"position":[[434,4],[507,4]]}}}],["sign",{"_index":261,"t":{"22":{"position":[[439,4],[537,4]]},"42":{"position":[[941,4],[1111,4]]},"93":{"position":[[104,4]]},"101":{"position":[[8,7],[181,7],[478,4],[863,7],[912,7],[1139,5],[1368,7],[1439,5],[1663,7],[2396,7],[2547,5],[3035,6],[3218,6],[3280,6]]},"103":{"position":[[59,7],[1002,6]]},"184":{"position":[[355,6]]},"398":{"position":[[161,7]]}}}],["signatur",{"_index":85,"t":{"6":{"position":[[533,9],[562,9],[593,9],[629,10]]},"101":{"position":[[87,9],[2020,9],[2725,9],[2794,9],[2826,9],[2906,9]]},"420":{"position":[[122,11],[266,11]]}}}],["signaturepublickey",{"_index":689,"t":{"101":{"position":[[2049,20],[2859,18],[2947,18]]}}}],["signifi",{"_index":1625,"t":{"316":{"position":[[364,10]]},"410":{"position":[[18,9]]}}}],["signific",{"_index":241,"t":{"20":{"position":[[463,11]]},"559":{"position":[[319,11]]}}}],["significantli",{"_index":863,"t":{"140":{"position":[[569,13]]}}}],["sigprivkey",{"_index":675,"t":{"101":{"position":[[406,10],[1320,11],[1615,11],[2644,11]]}}}],["similar",{"_index":1860,"t":{"466":{"position":[[373,7]]},"486":{"position":[[1977,7]]},"530":{"position":[[1629,7]]},"532":{"position":[[1883,7]]},"561":{"position":[[1873,7]]},"611":{"position":[[648,8]]},"629":{"position":[[324,7]]}}}],["similarli",{"_index":1774,"t":{"422":{"position":[[468,10]]}}}],["simpl",{"_index":710,"t":{"103":{"position":[[339,6]]},"264":{"position":[[161,6]]},"611":{"position":[[753,7]]}}}],["simpler",{"_index":585,"t":{"75":{"position":[[70,7]]},"611":{"position":[[1006,7]]}}}],["simplest",{"_index":940,"t":{"154":{"position":[[90,8]]},"234":{"position":[[199,8]]},"589":{"position":[[752,8]]},"605":{"position":[[248,8]]}}}],["simpli",{"_index":2061,"t":{"520":{"position":[[0,6]]}}}],["simplic",{"_index":601,"t":{"79":{"position":[[134,10]]}}}],["simplifi",{"_index":1672,"t":{"338":{"position":[[41,10]]},"428":{"position":[[63,11]]},"605":{"position":[[355,10],[607,10]]},"607":{"position":[[150,10]]}}}],["simul",{"_index":2017,"t":{"504":{"position":[[173,10]]},"509":{"position":[[123,8]]},"515":{"position":[[158,9],[270,10],[286,9]]},"526":{"position":[[346,8]]},"537":{"position":[[241,11],[264,10]]},"539":{"position":[[323,11]]},"541":{"position":[[100,10]]},"545":{"position":[[339,11]]},"549":{"position":[[5,10]]},"553":{"position":[[585,10]]},"555":{"position":[[947,10]]},"557":{"position":[[2204,12]]},"559":{"position":[[13,10],[64,8],[297,10],[402,10],[738,10],[927,8]]},"561":{"position":[[66,12],[393,11],[1709,11],[2270,9]]},"563":{"position":[[31,11]]},"623":{"position":[[126,9]]}}}],["simultan",{"_index":500,"t":{"52":{"position":[[70,15]]},"180":{"position":[[195,15]]},"526":{"position":[[170,14],[788,15]]}}}],["singl",{"_index":645,"t":{"97":{"position":[[28,7]]},"290":{"position":[[394,6]]},"292":{"position":[[27,6],[703,6]]},"486":{"position":[[411,6]]},"515":{"position":[[194,6]]},"518":{"position":[[291,6]]},"530":{"position":[[3231,6]]},"532":{"position":[[65,6]]},"579":{"position":[[455,6]]}}}],["site",{"_index":1901,"t":{"478":{"position":[[86,5]]},"631":{"position":[[607,5]]}}}],["site.thes",{"_index":2602,"t":{"631":{"position":[[628,10]]}}}],["sixti",{"_index":2677,"t":{"647":{"position":[[1062,5]]}}}],["size",{"_index":233,"t":{"20":{"position":[[378,5]]},"42":{"position":[[415,4]]},"212":{"position":[[286,4]]},"250":{"position":[[503,4]]},"486":{"position":[[1288,5]]},"490":{"position":[[662,4],[734,4],[1121,4]]},"497":{"position":[[187,4]]},"499":{"position":[[80,4]]},"504":{"position":[[234,5]]},"506":{"position":[[235,4]]},"541":{"position":[[62,4]]},"543":{"position":[[180,5]]},"553":{"position":[[85,6],[270,4],[493,5]]},"557":{"position":[[1453,4],[1647,6]]},"561":{"position":[[175,6],[791,6],[1250,4]]},"607":{"position":[[356,4]]}}}],["size:10gb",{"_index":1376,"t":{"250":{"position":[[570,10]]}}}],["size:512mb",{"_index":1375,"t":{"250":{"position":[[556,10]]}}}],["size:{new",{"_index":1000,"t":{"162":{"position":[[1301,10]]}}}],["spawn",{"_index":2113,"t":{"530":{"position":[[564,5]]}}}],["special",{"_index":416,"t":{"42":{"position":[[1213,11]]},"178":{"position":[[919,7]]},"639":{"position":[[193,8]]}}}],["specialis",{"_index":1642,"t":{"322":{"position":[[136,11]]}}}],["specif",{"_index":330,"t":{"30":{"position":[[27,8]]},"32":{"position":[[345,8]]},"97":{"position":[[1417,8]]},"125":{"position":[[383,8]]},"142":{"position":[[124,8]]},"146":{"position":[[208,8]]},"168":{"position":[[849,8],[953,8]]},"174":{"position":[[154,8]]},"230":{"position":[[91,8]]},"282":{"position":[[230,8],[291,13]]},"284":{"position":[[351,8]]},"290":{"position":[[124,8]]},"294":{"position":[[426,13]]},"302":{"position":[[709,8],[762,8]]},"310":{"position":[[63,8]]},"316":{"position":[[323,8]]},"324":{"position":[[263,8]]},"336":{"position":[[140,8]]},"344":{"position":[[32,13]]},"346":{"position":[[74,8]]},"396":{"position":[[135,8]]},"404":{"position":[[913,8]]},"468":{"position":[[144,8]]},"474":{"position":[[429,8]]},"504":{"position":[[613,8]]},"511":{"position":[[176,8]]},"557":{"position":[[2085,8],[2161,8]]},"567":{"position":[[364,8]]},"569":{"position":[[204,8]]},"579":{"position":[[1465,8]]},"633":{"position":[[1290,9]]},"649":{"position":[[828,8]]}}}],["specifi",{"_index":336,"t":{"32":{"position":[[207,7]]},"34":{"position":[[395,7]]},"107":{"position":[[95,7]]},"111":{"position":[[241,7],[349,7]]},"113":{"position":[[60,10]]},"125":{"position":[[222,7],[591,9]]},"131":{"position":[[242,7]]},"133":{"position":[[213,7]]},"136":{"position":[[25,9]]},"138":{"position":[[18,9]]},"140":{"position":[[22,9]]},"168":{"position":[[1155,9]]},"204":{"position":[[196,9]]},"206":{"position":[[452,7]]},"218":{"position":[[397,9],[453,7]]},"262":{"position":[[185,10]]},"316":{"position":[[13,9],[454,10]]},"364":{"position":[[210,9]]},"402":{"position":[[16,9]]},"438":{"position":[[392,7]]},"577":{"position":[[222,7]]},"603":{"position":[[232,9]]}}}],["speed",{"_index":2294,"t":{"559":{"position":[[644,6]]},"583":{"position":[[2264,5],[2330,5]]}}}],["speedtest",{"_index":2397,"t":{"581":{"position":[[349,9]]}}}],["spend",{"_index":1681,"t":{"356":{"position":[[39,5]]},"541":{"position":[[292,5]]}}}],["split",{"_index":2488,"t":{"591":{"position":[[7,5]]},"603":{"position":[[202,5]]},"611":{"position":[[1019,9]]}}}],["spread",{"_index":2172,"t":{"532":{"position":[[1639,6]]}}}],["sqlalchemi",{"_index":1378,"t":{"250":{"position":[[780,10]]}}}],["sqlite",{"_index":1259,"t":{"212":{"position":[[527,6]]},"518":{"position":[[219,6],[326,6]]},"526":{"position":[[491,6],[573,6],[866,6],[1425,6]]},"528":{"position":[[189,7],[215,6],[721,6]]},"530":{"position":[[762,6],[1134,6],[1227,6],[1460,6],[1688,6],[1765,6],[2993,6],[3413,6]]}}}],["sqlite://store.sqlite3",{"_index":1256,"t":{"212":{"position":[[369,22]]},"250":{"position":[[963,23]]}}}],["src/app.css",{"_index":1015,"t":{"162":{"position":[[1943,11]]}}}],["src/app.jsx",{"_index":972,"t":{"160":{"position":[[669,11]]},"162":{"position":[[132,11]]},"164":{"position":[[196,11]]},"166":{"position":[[182,11]]},"168":{"position":[[211,11]]}}}],["src/main.jsx",{"_index":965,"t":{"160":{"position":[[224,12]]}}}],["src=\"https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js\">{message.message}/ -Security | Waku Documentation +Security | Waku Documentation - - - + + +
    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}
    + + \ No newline at end of file diff --git a/terms/index.html b/terms/index.html index f85f18a..dbb6706 100644 --- a/terms/index.html +++ b/terms/index.html @@ -3,19 +3,19 @@ -Terms of Use | Waku Documentation +Terms of Use | Waku Documentation - - - + + +

    Terms of Use

    Last updated: 14 February 2024

    These website terms of use ('Website Terms of Use') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website.

    It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use.

    If you do not agree with these Website Terms of Use, you must not access or use the Website.

    1) Who we are

    For the purposes of these Website Terms of Use, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at:

    Logos Collective Association
    c/o PST Consulting GmbH
    Baarerstrasse 10
    6300 Zug
    Switzerland

    Whenever we refer to “Logos”, “we”, “us” or any other similar references, we are referring to the Logos Collective Association.

    2) Disclaimers

    The Website is provided by us on an ‘as is’ basis and you use the Website at your own sole discretion and risk.

    We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site.These disclaimers will apply to the maximum extent permitted by applicable law.

    We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws.

    The content herein or as accessible through this website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein.

    The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such.

    Nothing in this Website should be construed by you as an offer to buy or sell, or soliciting any offer to buy or sell any tokens or any security.

    3) Forward looking statements

    The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general.

    The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what’s presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website.

    While we aim to update our website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.

    4) Intellectual property rights

    The Website and its contents are made available under Creative Commons Attribution 4.0 International license (CC-BY 4.0). In essence this licence allows users to copy, modify and distribute the content in any format for any purpose, including commercial use, subject to certain requirements such as attributing us. For the full terms of this licence, please refer to the following website: https://creativecommons.org/licenses/by/4.0/.

    To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, Status does not represent or imply that it endorses or supports such third party websites or content therein, or that it believes such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.

    6) Limitation of liability

    We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.

    7) Indemnity

    You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys’ fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.

    8) Modifications

    We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.

    9) Governing law

    Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.

    10) Disputes

    In these terms, “dispute” has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website.

    We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions.

    If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking.

    If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers’ Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration.

    Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.

    11) About these Website Terms of Use

    These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.

    The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use.

    If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them.

    If you have any specific questions about these Website Terms of Use, please contact us at legal@free.technology.

    This document is licensed under CC-BY-SA.

    - - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

    Terms of Use

    Last updated: 14 February 2024

    These website terms of use ('Website Terms of Use') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website.

    It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use.

    If you do not agree with these Website Terms of Use, you must not access or use the Website.

    1) Who we are

    For the purposes of these Website Terms of Use, the relevant entity is the Logos Collective Association, which has its registered office in Zug and its legal domicile address at:

    Logos Collective Association
    c/o PST Consulting GmbH
    Baarerstrasse 10
    6300 Zug
    Switzerland

    Whenever we refer to “Logos”, “we”, “us” or any other similar references, we are referring to the Logos Collective Association.

    2) Disclaimers

    The Website is provided by us on an ‘as is’ basis and you use the Website at your own sole discretion and risk.

    We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site.These disclaimers will apply to the maximum extent permitted by applicable law.

    We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws.

    The content herein or as accessible through this website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein.

    The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such.

    Nothing in this Website should be construed by you as an offer to buy or sell, or soliciting any offer to buy or sell any tokens or any security.

    3) Forward looking statements

    The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general.

    The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what’s presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website.

    While we aim to update our website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.

    4) Intellectual property rights

    The Website and its contents are made available under Creative Commons Attribution 4.0 International license (CC-BY 4.0). In essence this licence allows users to copy, modify and distribute the content in any format for any purpose, including commercial use, subject to certain requirements such as attributing us. For the full terms of this licence, please refer to the following website: https://creativecommons.org/licenses/by/4.0/.

    To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, Status does not represent or imply that it endorses or supports such third party websites or content therein, or that it believes such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.

    6) Limitation of liability

    We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.

    7) Indemnity

    You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys’ fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.

    8) Modifications

    We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.

    9) Governing law

    Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.

    10) Disputes

    In these terms, “dispute” has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website.

    We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions.

    If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking.

    If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers’ Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration.

    Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.

    11) About these Website Terms of Use

    These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.

    The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use.

    If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them.

    If you have any specific questions about these Website Terms of Use, please contact us at legal@free.technology.

    This document is licensed under CC-BY-SA.

    + + \ No newline at end of file

    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�mX>TIpp-iLFRCIgVA+*C2JO!fjsPPAam z!Sm|})FIS|wcuP#LY_Mm|Fpqr^X7N~WZH0tBm?ALH!%O}Djfu~KB2v_*Z-WE)ml~k z_~~YDe9N%pBp_Vaav(P>I157I>tgiK|1xu^IV@CA+`K6m8P}d*Aq6JloA{yOev=Vc z%XXEHLEp&>Jan}?q^Pl`v#vLeFvS1u0d~yBz8;E>veaU$8{s3+vmEL{Q>ceO{I%iG zK2|TFLOE_5?V#&90=8oaHLf4FLm04rto%w+5Kg6wXVE}}-dWPQo6jUPli(;TiO{8gP@nj*!T*Xu{_3If)_P0!IbMk`6nf-cCOzxue zTg1^0b<_q%V%+Nu8-=dLikn|32@~K!Nu;;u;D%50y(*A5zsW7Rk7Z-&IG>+c1W50% zzIw$>5ru_9;Mtn{lEPP&j_J z@$CV$lrrKDLBxv{DYjL}$4q9ON{!0LO#1!UDy}7l`?fe98gm3D2wm*Ig$| z47^1lIHERqr+6Q5`>YDDl&$V;@~Y9$B1}b()NxRO3ZYkwS)e!imP6|o;nQm&Jd-~H z(Fb6Cn1iGwjDkyN3ZtOF-P2rz`;8#@>RLEGwc7(@Qn?_xW{mcg+aJe?Yg{9C=eqW- z>$QAd8=0><+)VY_@ zsr`uc_1jo9RXcgAq_r|byuuW){e3o1ePCb}?o$q7B_dPF>BAe_6H)AZaIO6vUV2m9 zY8pB`2c-DX`vc;P<$eFkcUD0L(A|ANQ#3gVKop3~6o)vAXWLhmB3*T3blU{PPw%Qi(cx_4M!<9{BA~ z-W8G4)JO@l5JX%?W}lX&MTbhHTa9jc9wly0ZFYxA!?S_TG_?c-3L7bdVK!d}9lO@b zL~&eKxOO8C@<%n2+|*nH_f!fKf$SG# zfPC$GM@aa5*s?cxSe`P6OVzox9}D61iS!2`**MZ8r9lf zY|KKYZ$HdH|gIuz_)Q{1LVWproIIz94HLrLek^n#Fu59UzjmT$uS zjcg1`e3#kPZ*aqpC2e$L=st6hKl8fAADlb16GD;;3q9PF(>)H7lYiF%d1DRh3iUY& zxjLRGLA39$S@Unx2I9_*D*XI7bf>sk6)>dRJ}p6|Qs%@4Gg$5JEtC&SU>+RVeExKq!RGGgQP(!WD3K&AjDvwYm*>90DYokiB>*ORo_a% zz(R(63n(9KXiDFeNrZhM43(wjCmMLF`hM++(&78SRd}$ zNr~!*L0S;Jm7@Fv4WZljLs2l=Hk|;aP+urPnbr*(r5|R1j5aj+hV@HssRp*9$f`o? zB4cc0V!ce|0^nc$aA-mSSSx<%YJgryMdTkOCv){=#2fj@^|zH548Uj~v{40eP75&2 zF@bk5wUCS|Tu4Q*2W!FOzuUHAI9jUv`UyP!QTpnjY-9gwCAqXFJHhL}OiG*~JygT2 zVmqH*sr?bRkvhTFnz8Ydpt9LgMQ6v>R589W=tn_BxLOp-_cYmnWy zCfM~2JiFod4LsZU4W0Rh&Omwm4W0R4jLv+U4E%2!+>GA((|g^zbsNu|JgxzQtaKBu b<@G&QaiJx2n{4>=b!SdpIGOpU@n8QBgTAV9 literal 0 HcmV?d00001 diff --git a/_og/f4aada6aa81328f54dc1620d786116367e1fb61b.png b/_og/f4aada6aa81328f54dc1620d786116367e1fb61b.png new file mode 100644 index 0000000000000000000000000000000000000000..f540e1695c5b734e13ecd6aa77b8598acd7a8366 GIT binary patch literal 32990 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 A_5c6? literal 0 HcmV?d00001 diff --git a/_og/f59c4de77bf3708c7062d3e8ede1bec641164471.png b/_og/f59c4de77bf3708c7062d3e8ede1bec641164471.png new file mode 100644 index 0000000000000000000000000000000000000000..46f2ecae08ad3ff8515a1d968565175d19276f1e GIT binary patch literal 48838 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 literal 0 HcmV?d00001 diff --git a/_og/f7641fc6da304fe60a93afe444d44e2c71b2b2e8.png b/_og/f7641fc6da304fe60a93afe444d44e2c71b2b2e8.png new file mode 100644 index 0000000000000000000000000000000000000000..c81499093ccbec3f04d8666fba7226dfde4afd48 GIT binary patch literal 40431 zcmeEvXH=70x2}lFRun{O0)m1HN)u6fu>mRqBE2IBNH_GB02>=!M0!&Y5a~7afD($7 zNbf<3)Bur^1PFnTuKOB;{~dmM$G~;pKKhf;e>D3NliBy}JG1ZZ?Hk%& z$qVE3m5!Ffm$&Z@wR$K_`#H#JKYUaA`gZy`riX7%{K&lBgV%|=CBU-rOd#s`eEvC? zBcd@{5zCS1A9Nh^-oV2?hyiB)9!g5@X0>}91INn%}2Py(s^U<^l_Jeo)2_fubGR^Tt5Dr zkC2ltEl@{$lVR@((HwfSpY_0@{d+&c8J(+inV#2we;E%O{%*Mbn~(4zPZqo@iSrh_Fak03CTMb#a(dn!{XzZ%yvpJXD zt83(_<74)GZw|PgPvyEZ;MLYhr?}pD_1pFa#$RHb)E$W^gN>FCni~E7AF0vUPo7=> z%vS$R;Ndu&JYID$?>+MH-uxFhGSmg71Zioh*>^!bostvD^(!%jWic6F7!_+ZKU8mT z;**>x4Ri|MDi@bqczBkpNTbfEwV%-%Sp@$b3YJIt)IT#Cl; z2IU}LKDttjg0IidC>0K+50s@E(avjw#=@@d+Z!{IOa21}HrK{01`O>p8yzF0r(3Bt z$Z-!N9702G`F7$}+c)G_T6;1TNd7088(rFk<3y@w)7_d+*?jPxPT=>P`1C}D2kzEB zQ@!$4kdrJw9dDWFWQ5q5N=mhlQetiMi}=DIn>U95X94eB>~2xq`oTE&<0X$er*kcA zZsX*h6nou~_a`Vp?$1h5*Lpe8>3k7V7DJ11#x8epq(M_(;ry!U#43#YOp2$(5+zd< zo-+| zO_h#k9JP-&Q+<~bypNlqCt1-UV)zn91?}g$P4kV!x7a_dU>{PQT zv9N3gtd#?a0`_J*6{9C2@4x5u**~g10~J}|VII_Ge<8>7_x@Wr9@|(0>r)c4^Ph4H z?5ab)bJ*u~yQK-}A9I4Se0g65Ssy2o$L-sVaDV?6S#0-JSwVZ-?+&G%vD{wY1DoL@ zwZA?e-l;Ffm$v`2W&|#jen#J)N=ypTFmf!{nYJc~*8aMQQz)M3A9KZwSHcHPJRQeK z;A^Yxl%Za`cPVZ?cf+j$g9>HVw^lLPz`A{gEG@;!jgEE10YQ1^-#yV=sK(UH&E#~d ze6Pv1iR0OcPl&D~jpXLMS_9uy!bYQ1xQExtNlw)lSC{#dpMnnnoBFbj)Y6bIpOaQx zO~8bCJ^unOt;@Gr`2Q_?cgx4T!!OKVp7wZh=^VPG{yjN3^EsQDAFP*ph*To8v$e{( z<3Sp>vDpqElC^&~4jkc&wN8rrfI&i}@8~FYzzvmmY;vzdHeAp5mwr7~{5q(z1X!ZN zkidx)So5g_veDDVgS~u_ay@0nPoJ~s-a%r0>~RwevI|8WE#RIj)Km|q0S9aLpMbTT zp6hf*xK85^VS1_w^^|#EmzWgMz2$b_g@>ThZK#Y8_1|cpBcpcUBQ|O9o)34U4Y86( zG-wymY-abP`8B#~Ck}Bsyf*b+EN_Nex{`*5;O`tka z<25frzL)%B?UE9!!H4=~-{B3m-*~JXgKnSi_(ArvT6pp2WWZp!shFI@PsI|`P2u)}Mg4w~E4 zj>Zc~4iC*HHI+2l3t~Zn?@o-KsWjwd!f_XziqWidiS`9;esF)v=tK|j3&+3$q^a5G6)R7> zG&hn%N!g0joGDix#QKkLih7DndGVT9>_NnmYg#Vb_mYtmPpm=OBUaAdxD?Odm{RjC z$dsOi#2<{&YYh>k1=m?TSG(F}zh%@>WJmPV)aIyd+q{0m;g^DbyC}-fXEK=o%8qHS z;1T7scJEHR_i5UqS@iC=@c8@H-HGj=y!Q%Nc2F*J1dYue=eENM?uNtWmkMj|$8HXM zBc+mS`N`gs6?v?s8PiG5^=02~(r4BX>Sf7QmWT8PR_hlXojG-rL(YdAEXEo+-5qsA zn!wEpN>(rJ!IOa_UL7EBv+EUubdYs7`a(H;=a|IMI|baOf?siiB6Vv$WgsS6D{Qx$ zZM)zQLF8NxeO|A{@<9peC`iP~rap6-&HjXvc9Acs;zu+ms7sz&xvc0s=nLX0t3~F5 z3mU1(vBoZKJrg{?Imu7)0OwwIvPgrIa@ahw)RJ^3Xg@`_D8puwCbq15xAhE?(s}%T zHQEka#dX%&{b2N8|FU^u$$JslO^zsmvYNItwvIfhAy>RDS8S$ZeD{~{1jW>6ty{%4 zjjzDP3w)8yqO1Qte~<;858|PqJbBEOxPSBp-D&Mj%DKG%Mk6?a+Nl7K1m)P7t?| zU~#bcvMNs+%D_?ITPSOH{Io-&Pc-Rgu|=9Zj#BCYkJDQz9Lv-Nz6hU*xT#mOn6|TJ zW9V4kFSF!ptg}3^vrR5iuogC8-V>Sj(Ox^4*L~}F(x;X~^S4H);>=Qkxl~1@3dU|7 zD|^XtiEHOIwa9R*7f{%zO0(*l2WE|0Sd!mUtd5o0qQEL9NimTHwKFw>>z5Jn050(*<5dS zb{!d8vp5qBFFQ06c1pa**tJu~e+h(Z>fBo`^}A3Jh9l{F4Bh3)cqj2~3H-F%)^f`r zxgkVt)(nc-jv&R^8e!Oc?cs~|W~zm?EBAWs5uots-KG%C(qhnw7>+&pt*^R0u!$&0 z2b*emuSXL`0@i+|QDVZe8iNm;)%p?`mb;x7{SK zBLhjF=|w+CgW|4f#?Y->sh4N_*ULwR;sp=1t zC?5W_1{WbaPces0xuXA3zU-qdpL98skP#D9dE&cmc8Y{Uj)_B=0!D82>bNH;BsF*_ zLoGcR1gW%{Y6^;+&63XuqI2;1*e4@n)NU0XH8$g?H)Pho2jP7m9TW2HFucMZDf{Eu zNht3geW0MV$0}YQ>7vojNC`UaF?3d*vQVma@LkPPwICETiJu=}V-96Fg8T=^4{qWM z(5ygM{X#>ri9%@s^2iUrn zqTxaci|WZ^x`zb!0FjRgf&FFyA@EKY`s7ML{_Eil3y1{Az_3V4l-^NSV+`F|7h zSfH49>9n4SyUwV1#1d*}+YRKW54{?S@^C8NtPq18dHUs8Z;z^IipLnNP8yG4)>=34n8?}G}l1ySUV}{VU``*Z{Nn1@GC{FTmx+Ndxf0jcTNG14@?*>db%Ur{!j<#F6+;%p zOm9B_0^?OOsCKwTErm0Czd2yZLZDPwhJR2@XM>6l4fvJ?hs|3O7I8% zwK?uFnxC3RB~K_Wf;!6wucVAI`_>^HPb0{*ITX{7yP?N>3|9Lg!*@=5=~s2xFIc0LO9P0ZW?SiV&O1w4Q*! zm;l{sm#lN0x%Tvl&!DK41CQ&d244ptFBT-?y9AcPyTX2ePzFx8gP(y>@HzSKDpBjTQ-_;f_*SDmR$$QTLRov4#5UWl_3XT2Pm8Br z{BKMX$7_MgKFF$nM!067WG>$sZtpW#gVmX!$A973emdeysOtr=FQE&RD4VIeo>*_2 zL|&Nd1h4z`(?D_)}jHsPL-9RKJzB*yriQK{J#y6^bE7 z+lw=)z9J^xQ!!scoHZ+YfDr7*L<>yU zqayvz!B>+e@|?F6zD>gDMQfilP95mfO=`i6;&!i z?2E%}{|Pe?lh&S#`n_M{qTkcfdMCjRO;ax1ZtD3Al0-$$>`8QbMx;V@JwY3bgOF%5 z)ft>eJ=yi?qfh`It0hD8^`jk5dak z4l1}!>#+T*Gz^8Ld6e9J5|QkbKG68 z#rxH;ezDmgFtUL)V~hgD0Um5I{NG^%ruL~rNT{y21qGNhWf`(*c$=w1>NYrnY1SBv zW}S`#9}qA(c34$e=|WUMcet~trO8#9Nq9+ew`N{5+aa3GfhTq{XbM4<1M~Apj`Xa< zo6Lc3tZ%O?T8E(>k+ye~_#oGC*MNi5wtn&xc{@RckfK1$(I}@@#*4W((9o3$okK5V z0vi*AuYciD-*pNYpyB21jT zEIHxlIs)1uoc^ekcsOYo@9Tu-HXRqbyBEM*S7SIMz;L7EouPZbPA^DUgQTOG0zLq= zstVg&Pw|=zPSB$T{R4SUvNr&Ny#UEz*DApsNtu9%uC^oL6-|tUFIXl}4Z-)jRr}a> zQ%|#i2NX|F3kQc;MMUvUAC=paFCXBA=uSwCNDqPL2)>=(sI!8@_^BZb%_5%0Z>=^} z4)Ug0CrC`T@1L`NO&(^!)U@)3{v^Rb15cH&9N@aFRg9uyesMF$A?`H3y=4QugT@@x z+@O!{Hx%|Ukd-raXC)4GpVP5S6Q1+^dME{Hm>PG@SCG_f=unL2Acw*$Q^DhAQ9yNe zTA0Eio@o)87w7?%si4A>yE1Uu_s--P> zL&uFV2ypbCKo1>2dXZN6l7UUiH4~6V)G%;RYyQM47I3k* zGrz2Wuz|4I7XZa)vaFuna*iA<2A=)FAC#tFQYjlVX&S%^z2*o(zc~gS4AcQY7B?Q^ zylQL~n#H=`>h8%9R$74QTG*=TkQ2d^9J=E%@f!<1zRjfhJ z`8eYqHx$$|f|@r@TcaRtzuwpay#xX$S$d_F4-Wz)2OUyNUHbfLF?451OJryyw&wS{ zSxD6GEX1$r#R35Ao*CEIY9^>6;`~r6Nb9Vvd91EOfkMv-6oeFDX(k@Snac!d!jPEi z3Ob|hep_mi<9(GF02U>GOo%(do&GuTf}Y{rfno#7_X+@X7;7-lJn3J9mPO%N9t3PRuWss%BC*!}8v%(utzBRhWriW9Ey?#9ZlFBFXHd62+Ls@*)RGnqq9%_u;5q%s_BM2SiS4(X%@?n^S-(H8$=}Z^B1G1}b@8RfXGJl=XnCPXaCz79J}$=&98d(R~AU1 z*eQfjR7LCF?#|iB2B5wLNe9HE7vl)v6<3`=gj#i_lz`{Vf`<8B9y0R;5`@+`6+U$Ka_T5!b<>j_g>8VvyvsNYXYL zg_)z>3+hyUw=;;S&O4sdpANm;--{58P5!)R#*)#wOXpbphk0Q?=t zSj9gYPRYd{R#^LXOD*Xuqe;o0m;zudxa{M30HdjKX0=!o^36Nq#WG;fRH1IJ0;;27 zqX11^<1G?Kj+MZ6Km_+5syE(S)tQ4X$-x^PJ~99p^?($XL;@zmq}epRNb4AMOrmw% z2G7T{amT2^La_ie{BjTnZwH--+?%HbCF!sM%ddm<=Ow=Z9FsIQsq4^Z>haqN`R=fr zz4rc7;I8)7i@?q7#wtK95r@^=8`7X2UZU4u6(e@JYiqq4+4coh)vPd=WzfE4HC1E}T?O??5Wrx$3x5_L`7`(rWXKzon{C}ARyD$EwJx78tO z&|INr>kWfLS@#p(Kvc9fK=-?R8Zc&U0n2teO6A|<@jK_I_9=k(3Y_Qg>P^DF1@!3h zGQf<;gg6*;fE%C=X6ovYdIUc%SX&BCmp85_*P|nq0ys1^Q z7%qvuqbgjkJ?$!7)UbaJ40KPE;=#)aLo5-jqz8X;pn!g7vUKU(>Se(DDg&&@SghoK zMqqsxEOx0wVSx8@ZndQsut*axs3l(g1m75&QHUFkgUAt?Gq!R~{@XMD*3**Pbqn?3 zgRd|TIw~QtV$a%KuNMDeFn{VDFw*sb2OBV>z9NLvDO`X4T(toT_fr2BJC6FrjZ z4JluKJRdwv^bXHNdJ8Lf7HcCH6hgLn1S52P0ZDR-`ZzIg$L5RzqroB|2gLHFMW3TP z9%e@)I3m`YuY33P4mvVV)WwXNudde$EvZ8wm7bpQdI2?OpvljLTcQ;nI%$ahJ>H z*J(lz;%?;YFzh?ExLeOd3L1>0V^GD+wLU+n&~=$wh6XIM;9V0DVB5at3+=qR!=G~ESJ0S6euXN0mp~Wv83&SEf90%JAdUCFSIy0UpsS^Hg}7x$F@jqy*NpsX7Es-EY17? zbLMio0jbrG0Xo~hXMUQ0C?4n559|AR#%144gM)cbikaLE=*}O}NB;zmtmuUM`Zu7w zcp0T-*!E`i$CWlAbe9uCs8K*%O74@iiwv)ilv`XXuWLcK(!z8D%3Z;ybhwx$u}wH9Hhd+-@>0knDayt&M{S0h+(RPM@8&We^m zaUdWMuA(`F=3w5+1g$1#`z~*xI)Df%p#fRDwh*q_Fi-H!576;b&+uYa`Vch&q|Ul# zm&Ab>0$JzzaKYUjoPPNF7^C9W(>nc!Bz@jQ*CJqYHuYwJ{{nbPL$3AKKzmu8Q#sTO z+$CONIas4?QMI+vOVIpSSc@jtb|WL=f#?(A^1g?8k+<*>Ebab`&$z;_RwM_IgvE4boPN7DSh-(!S&yR@P&JJZ*4vwdr~&#@bz3PQGKt6oGJx<-7er?8 zx$#9x+M}M|Lf1r>UfhbT2HsG}JUBRtwk2fO0F^mLS&G1>ur0xCj5X*`A?-fPbG#*z^6mWe}G_ zRIkeAL5~>@G9)o;9V+0cbx{4dU`5Z$3Y=wJD20q``+_Nw+cQ) zqgrB0EQ0#;AOYzBUH-DmgOV|q_RLO+Q6a#6tV{{r40k^Xkl3|wtmeC-ElA{6tw7oM3GTK)Y zc~R5$GTYuOtLy8y$VkKGS;#%V+QW$X2C{Jd$Gn;$DN?$%od?0FES z2nkx&0vY|zuO{TcpFcoDr)@sz_eDj2PNBZjevL zxOwUU4W4gRVFw6kc7=3pL2rhbWe<_eb~XngU7vcsAv50M4CK;SBo(#7%MgIO$LV&Y}86;0B0gUtk~P9Wd-Y#WwCs;m^3uNR5wH&On#i5$yc|bTW2MDPM$FbtjPN|AQ-*chSXthfc^F1q`K65(;}hjr>yM~FPnkk#d`06 z{R`sMUoRE!12K)`@XV0p0#Glh^MDUtqwqag;W1J8NTR_a;5>UyQ|VfOtW9!qqSMzQ z${P}-%!@PN>=Fy>NQO?_Hb9gC*pSsen&OB)8~H)A?UlGk@Nj>8|MjRsX@)IXSS$>EOG0#^#RNS%dL}v;&s+~s$7Mlc0@DKmC8(1*0W3=4a_tlA&5}npI5nlJceW|w zJIa39L_@jolP7NCGPR8SrfX@t zChl?)Wk0fbYb#$LcA}-k8}&RLy{yTV%?A7Yz89Aw703*)1$C;595y(#wTbK&#m}XZ z8^98MIQbe5+=#7`A&XF!kw{(sjmdM`TZo8alujs2s^AVBtj-wl z7Y$e5xt*WKbq8_kVBV`}4FzfPEp{_@9T|b(Po78DAS(Mj$Z7h<$3*aFif4z+gO0g` zGV`&VfCN38<}xD(^K^6#GE>uZ&DQcqK!v5PIK-3tJg=6FbM~hgQR#3`NaqQwCkXyq zmzSoh_;!|+xCkmpVHXy<6{Xq%NWy7OEah|VA3w%-!?PtUj218oO zK$U4cp^>lCeW?)AKoNNqZ>5RbOE~je`lbe^o4RV2POmUbYseG(9;Ho0F}T!RG*>z+ z5yFyBn&Zqtub<}ktWK~RpNG#^pea{+Cc?K!t6$reX*U*1F-vw1rv!{!7`K4>=H2V< zpLN*x1cQ#--r!(lmYla5LQblRWw8=B5(U7~Ol*^oRnI4RtrvdE``0>;r(O?9*Xv*n z#wD1J9FrV-;5mr52lp5*X8p^HO(~$&o?p1a_lbKlGy07eR$$Yuhj#~%Y^^oYk~|_k zc`Y2c=5CwlhE819d?h-0ZoPlAH22>r%^z_T3wL%9F25h#f4@Vn7T_K563uat6efdEwXE9^LKcj*YFP;9HT0|SIh7`R(Hzo`n55n3 zcp}zrlh=9t<4qdDip*9)gfWPe^75X{FIPsuqM3<)*JhXOct@Sbp@eNy>&-CjhL9L$ zvD~6j(yuR!HX{);kp?YwW%>rkOMh+}G=!XTsjHZ^Ddhi20pC~=#I$l=v5FtI9CnLJ zTU{6O(7N7Xw?jeg7)?ZEv~CBF=tI)A_#$w}QW?>n5(*(Vm6CN9W^UX~ww<+>XuPus zG!3qgY_#dJ7+T($X@~NN(^BzzG=g1M(c0tbqY&x2TbqDT>9A|1JPf1Fxw6UJZaL{H ze$@gMbtT65r|1G2YvT08a=B>X+0BI9xE6DR5dbKI_ zIxVI!fVjg_R8L)W_I%soL4O%$j-3;F=3&(F$r1VLTIvyf*h&FU8e!exS&(V0cQ`l- zYHx_$GOZ)n(lA$Dc(OQv1qL)6Kc}yf)bOMOHdrO&N!g;LI`?!@KH-xK73hbfP9UAL z6j{W23BAOZD|K0*CIV5XFeZJ)x0zclBwQ82dwj0^$Xa^K(yYH2T$_A`ObX4QI;Bkm zamC^JJ;`OBon;;qOlzlov5-9Jl(1#(iE_l$b(eM_^YTjpw<*IIgoHKYJqt`AqC%fj zah<+s^wnGjwEp7<73i^7H^FO`+82}6P=?9Gi1e@e>sw}kgPZ_|P?{>ih>0nwl=WKs znOt=01DHg9QhmA1yU<~ONRUszXwUVwj6!QE$6Pe|at)G{e>PL`3Ng5`EXiD?t_I+$ zQwv?~BD49VLJBi?#y1w<3l*i$VDI37WWP99YFG|@V1GgF%GW*&t17id*rNQBIr_P& z@(BJ@FKemGDhbKC`0*Z%V2F@+X@aHBElIY&LPBMkt2lT`+>1YdI(3vp7H32|N_7D) z@Mn5`F|F#49*qat`gTm$MK--iC}3FhqULBN-VmAYtLyM%^p=?cEJpgwCR`k2lksAt zLkkuDFs8R2k%7?Cnaz^1p*NNv;3w%~?bX{$RbEOOWb&~_b!#P$B3zITQ zxOb0%Jj+q~LDRldW|x7?MUVPYH(5A1C?Z~mSt}Gb&sxmbbjK!pQnfHHsAfG$EGbtf zG*DEcH$qNjB0X}sa@Muu^{D?2)s->UVs$y4UVj;>a*3-cP<`P&t65lalOTfmS;nmE z{h095CO)(N>9unSUM7HH)O z&4pm9iE`q-(`i$U?S`RJ??wSR{w39SA?A3JWeba4df_9HuKg_~5$pF`5VU+Oc#Da6 zk1np3=cgz4IX!8b5z9qi3D2W2Ml|~R{Zul=Pg9*|TCOkHuRwB3g!whE+2k}lWa=ht@}dGtOhOrv zA<)xxB_&={o8+kzb3~sBrkPT^Uo-FM?9Zx6-?Ie$tJX1YBgmr5JxAlDmV$+aCuI?{ z)0`H$Ir?y@?!onSk!sS2J$`A@>zvC8oIx$2nAzhyyQqYV zbH9bg7pF}&ehVY-5S^p2&-~4kdA#m^))w@Mx<=QU7UcCV<%P!q*1l~zTM@5?n&*AV zPC?zZlDnqebmy0E)$|9#{g&@1T*=Iz3E{DWRh0ENK0*32hFz_3{C-roMz80UmFKPO z>n(9`Y)_LDy?$|{Rj%mgoz21>JKsd$Yj(sb4%M?Y(nbc_&+xSaiwbm>=O@iC5<TD_xw@6g{bbOm`sZ>NJXfyAPumqqE%x2outYZcDeODZ?1POdC1C7CP?bB znf%zArW+nY*K9pAu$5-XMQ!#e#@9;5YngT21WE!}I9DRvqTYH)+D2H0=_xsk2- z)Cd$4{Lj*Vjdf*VHN)1yi;uf3L|E4H#$xY(*spt=IdZl6nR>x%R{p~!hJOB@)kn_M z2N|Wjj_?2*;E;7n%E>?N%XL&bZqB)3hH5AHgCr9oQEV-Vd?rlt>YLjD%V6O7uq|mf z$}@q#%3V(ghWO^IW6>{`Q)-uL3Dxn9C(~vcg%P->wn&eHzj)G?hmK_QAKnl^cvk-` z1@_JrS6+R^PtK;}vC~YIMfA2neMMqE2}JmkB6@+N3zUH+8<``{#Xc7c(RY8SQ!dz9 z?y4k>m9s&f1d2X>GA&zN*pkORzbLx%V%N&RO&dq0C*?My8Ix<Bmqf<1*}N<%xH-@jBRBbSNneh_c`!MTmDQ)t*nPO$ z?y#|6YRxc;x9hT1XXU9UV$s>rGxjzH54o-vln)r5mUrfQFhdn!moi@#G>0)$l!z>Ptz3<{fET;y16%9Ys9lBReZ6G z%TCskO2t?R% zt|2olh#a>X(wv>M4vUN~fLUBAM2D4@fL!~xcp*A3%SpGoDJ-w{l$Mya+m+sn1=gu?`>Hf^dGT9FC@hkZv|rcn`{YYU(@@(KD^UGuPu8-wU-4-( z=y>{-0%KKOmk|y_Z&HBQ+-SPaL;%~E?kWKQNagWiee%nfMK#1n`dhoKpcGhIQPFjU z$TxYS-dp_3*I5nC;(lGDsp?l$GoJ(^E5l0Got8j7ew#2AkcCAz1M6aC!sFe0>`vJu z6^C*kG(ZY<*EIgFD;`F*p|7Uy@s$VbH-unri?Us1f92(Dk#IvdG&33OG<&2maoSt4 z*`nf$m#}&Hrc-G2U9hRfN(1ho(=@;4>-Ay(fb>jqFR?8~pLN*ISYVQxcn268*b~89 zidnYw`ap=6%IX;9<`pUWrslsAQJSt;=R|j+y~c2{#Za3jH_5`T!^`nn`_u2Gy`A`o z<@c}DD5C%kh}DfJ-0}A3b8hpJ^W@L94Y_1K1>aGY{rUQq&y`b3*xLP19jtoV+N$zc z`S;hL0j$h%zev4!X(g+##UU#mF^*qFjyPN;?Gu;}5FydeXQnM%Di)%J;+DaQ?!U9J z8q+^HF*@w|BUgi=ZnjR4I%UfKg;zK z$Lx7hVawvhiqlXiuVVy^FhU z(|pPkF=^g<46br@oPhAu6MTN#F>eZ5xYj;f5x`OmAVd~#p}tn%jk{RpX?FIIk)v`9 zx9JMM@Qhg;aVWHToDuL1PcwVHiOnSHU|y}DI9g^a-MHCxisg(7&QiMc2|N;YQl!3g=?P&dD_HTD^fM4+T9mo2~9oOrg3e^OXlvf z^!4Mz$BTnKP+Vk}Ja&E!OVl@nQX!i|aP&>FXt`Xp&frQ&-?B+UzeTJ)(?(eFHB#Y` zojT(L$6r_lZ~lTw+4ryZ>mtQ7_$;(m((NhrpR1`(#Ja<8$ z%pUqVuIaP(+No|>NqNf5E7-e_R<*bIHXrm66f`+ip$;|fiVyIHvXOv- z-poTvEJaR0$b1t(KW12YWFD*8*rLP2>4WvP!7XU^>~- zUx?|O54~W|s(ar#QZR3g0v&8xNFHm_MudmiCN&Y-<8+fuG_+2zauLlc>Q$E|`d!!S zQ;zdyJOAn?5%iH$z_yu$$jIf=R`SklMr79_{>2-PWS)s(`m$KGiN z3uDzoa{BDVACB&~Kz%E&-Lb}s*>qf*Ba+)3k>dke6OhiXKBYF4g}n~(5@5(n>H1f^ zVw6p9)Qx9;P+~4B5!pT=tRSjX-H`-mqdX{IT{qjBWP9#R=C#Ag|0@a<9?XkhNkvA; zSj)MWe8>ZbpPP$TdX8!xLpOeb)_4)$WPv>yimS!2Z$oVl|28f7yVsURa3I8{99nhq ze6)jdvt3qe7}F|?f7qY@(d}Li-`Sk~A^`j{~ z?b0QN3uN7&zC1~z(<$L;ASSLWaM9~M#h+WLI6Q0ZJ*O{fKDFq0Lfkqe{)e=b1!Gw) zE1Ub=6tVdPI(;(%sqxUbE$@Du4rnn9L4!%8I~R+3iTZZa{ZdmB$La7_)ElLS{7Dfr zR0V0UNyJB_Yo?q%+sAvU(!yCcR4|Hl*@O+J$u#<|Oq}VgH6~J-M$lAapyQ(y>5@;C z3-g23Sf+~Ab*Oc;x(o|5daS7ADEDvYEeFoKF`YECeLZ-XYti%vWUkoZ{GpTSJodq> z)@)^^+UH_@AD72B%O|#@Wq`3E4pY~AFd} z@nDUpnEW~QeZMvK%>b{>ELm_xj+jIJ}2w-{cHbVWf(666~4V4 zw7}JNgUsaEGZ-0I)Ni<{zb(l4JyCzW0RC+%X7|_YaRf*`IJbsL{0@!)X}+61C8g8?Ruz%PxSH8V z@q}nz(vuGRai~BbbIsiliJvHn}v{nFDtPE2_;00G})qoWo+;eIcs#AMv!!HmYmfW#7BaE ztqExXqvX+*V)D4B*)$GX=cReNY*ZM;u{rXa=kN8RJM3WAg*^U+NuQt8pofcDy$?Pg z`c`V@FYfI3Wad+fH=SE?m7^wAu=@IySbBYL&Q1s#EVlcmdA{)EWhs)W``~qoiLr;0#JzaT6hlKZciLMl2YsO@TqRQ&zT>v)K?AWtwm89@3;ZySPMY z?Abyf>CK#05KaHagvM5WSHt$;(vRq;$f=lWmk0EBvS3GpAt5;ad|F-obnQ)VS>MB+ zC+n6hS=dOn{k(Co8xdDXc$V_w-Mxz<86Wo#G@OY=8n`YX#e4cyLIljGQk24n<)~jD znVz)^6|QK7-_OHG1V!bsvTP&P#0jeD<3Zh(H?2 zFDFuG$vv;3$&RzXxJdfzeg^5EuL~GwLuws1Zvzuu^k!;Lq%31+gfXDT9>>7hBir3u z4yRP!_hkNLVc^9aw;D^Y4u)B&n3vo>ADszGSOxuMg|bzuZj%lhu)W+?LQwZBFzuIJ zJ@5oOy#e)BRq^)5H^fL~;q--m#9Xs{=c(hle_32yfEWWcYBaeN%c%Gbt+mt#e2$DK zd}&EF0niB5N&x|O%HZ3bLn{-#MOzd#_3c~ylJ^Cp+=m{$>?bP=&fA5g>z3~>NjRm% zTEsgUlsE{j<*Da+`}p+HrZYWD3dZA2EPBS>FtIZQTT%V#JJdvONbbGncA3M5zxf`1 zhBDm7JOf6C2yKd{_88a}l2FKB|CmCQTopO@3z{l5wOlekhPi8MKU3FgR1dAAsCHIF zlqBxg-BG~7NRrJ9`U*U0Ue|B`j`Fsh>a5cG7LoR`}+%%Ybl_`TVju;jr(c@5`&L_f&C7gH2IOWax7unv& zCs$CvxuYS9J2&8(96xYkGB4uo8f9f{F{~3zQVG}C&?NmA0~iVH5q)n}V+!0Vr`9TQ z(cxS^;0CB>oLc6Su-+`UgPo{I!b2DXYh&QPJGieA zl2SJ8CpPey0BAp;3RWX5}Kx^v?cCcU}t8v;!1z_AnY~JrGo=%^OUdU+QWvBL2+HfLJG4R zM{&28X=rIo#&8@jFCoDD1ANpc7;0;qbasS2Xy8bVt{rGUT010F$wPo+t=gfXiSHqANMsax1+kT zvwaWFH1uYzu@&n*=NuffUpF6*OBoW+H)EI#88KJ{9D*fZ8bN|@))C(^w9YNur`5U& zu!2uwcjGM9duDOeSLj}Q;7>i!Sd2pYYnFj$zTz7B@)K*(3Mtl3r{QbOXH(jyP#~=n=Ch8 zvQ}K>i^VoCRt$+&hoCOr22`4JAMYK^lgf=oV(ygzE=kd^{kr!9xm8vFB7+6Mv3kB= zM;qMB$S^x(0E^9BiQ)a7aM4fQVMAIrWi8KkmtzxKroO4vh*Ax2vUAdt@y>=fr96)4 zqd-$#oQG3u7{o47uzfJWUxOwWS=(%Sw>a-ZGzqMX_y7QDrs>C!VnKPd+$`cX_2 zOEgOg4;VxBsfE^+mmv5;4Rv<+bXlzduX}3kHBx4qfZ@?newk_|WO0&QOB)FG!;^(y zie(7p0`6Mcyq6a4NpWP`lhi4Da)SU#rPU66G{jtl3ST{FWm?y7gXwDSTD?1mH(ddY zH3#HAjG3&>y3kp!T}!w6fCBs4h>Lbc1|aexYn7SoKCm7v5YR>|PXXrFV-<{|<`I1e zyiZ$NS{o^n6~5Zji&UDMnK>6qmp?12%tS5o)s0(uE19ZMAX?oke{pNO7OI7kETk%%v|&M&7^V9wF}^fTq<%DX9UzkeVH2oh;*<{7-~^3V&S+rBM}( z*XLlqaqz7g6Vu_G8P;!~TdkRorr*A4{I|uCqYBJ#K0XU*YE3skc<^fN?c?DBH`D*p z)O_$NU_Id6-$wV}X+OKIsXjldBYsW1P@@nzqmH2@e_ExhO&!hlr_Q+&sN|W|cV5F~nlaRgH&DlD)CSP&5{DSUT3+fz zP5sO#o!n3U(HGyAqjx-jf1a1Wam+_7(L_9Ulh>Vi0=upt>4~^ zGLq__pgK-CR2a@M?R}R#*5gcAy9Vqd5pj@P}vKqmubvUmrBBU@z z&g-ks-?(}LU>AOKr7ItMk}bMW(bw`$XMgU-fq`>_#`$owI_@S(_paPdr}&>)Hy!(r zX0lJBfPLuPHo6La3q?`iJ&^~# zRL2+3Jq5i-WO7IaCN&j!Uxq6aX8Y~Ow3r9GYUeg$Cf$;`jlU7yLEIsM&c*NGp z$(~UPs-YvPSZFtpYJM^x-i7BO&j(%`AyiLPIRVOn-Izr^ArUzvHzR#gaV7-}|5dAV zI$UxLNEhtS+qhZfKc2ohx~ToHgRtK(s5NQFmvJT8rQ#N34>g*JeIg>|=WZ%DuTe%v z1meL!5V`DOE#M^FE%9W(pvHD}%1@Uu;?%_(Ckn>zWffRwf6jDJP3}7Z;H#^9S8S8wz$c@6_!MJYh{cjdUhlTddAW@wMaB5kel&m5BLh zvX%-~_=MMK2tPvgoY2ql9D}J0qA(0FHMA?D^X(hM6^n}s1S!I!0|Q>L&W()_!Gc+i zQLx#hF8To+Yy;Ii9a9WQKN^pZbqLKW%qdLpF5%7>9XeI4;4ltWT2t@o!sHt}0V!*@sk?H5G+&2BU6flQPhD!&=P}qw%*|<(!f^Aa0L18 z!ob(da9`Hbsb$0W-$M?Q)iiid;xF4vcXf@lT+Ux8va31FnD~IB;(}&(J{MROue##h z;>`$LBy8=zcXz1iRWgMFxJD)^+;a1OwHwn7dcZj!mvz1)0;<%bLGtSc4$;6E`(K%c z6GXrgXK-ZTJoMADA+PN>@G9>fI%Vf-WJYqX&EvPwM9w+^NuocHLfk)9`ic zm*L-!py{38Jp;$MVA#O;owkApY8B-kmJ$o-CogJ5V&bL@ebFutdllIR!S>6dkrzVo z@?CH1`*Zaqu~>+VY%+ldbOr8N!oLq;Gv)D!y`x^Y(B<(y&mBMnEE*Yjv`HE(>UXMT zP+0$7JeqL8V1OqPoJQ)9x{r*fleN7SbQD^fCF*yhQ7`*!6jl>V{!e?~8P;UhMe87< z42*ojh$6)nK%@%N6~zJrQlt|~Kp-FlM0y9YqX-geLRF-P77RtIBE2ev5=tEDM2ONt z4fnj@jLtas-@X6*;}ahsZ#n1ev(MUVuSFJ4)!+Rjm$7G5L=$hTJ`Fj6u)d@q11AU( zEvb1%n0L!V>MFNRFFuuxzuf%@OeAL9Ao;ZX$k7R+$@9~SnqqbG;(72S zeM&e~J$gbA${TCa5r$y)(>*l#08%+E#fnpd7B_qdWYxYRwPm9h-XiLd^r4RkbM4Pi6qJ? zZiFcIvIF4Eg#*6bI;sW(WrOU-gk6L22@Hd%!~_8jW3@P$cf&3m3Ye36@%3Ns%T_!q zEKNrMwPc9DDOgEm;x z+&?Uz#MU^h(qgHphKSF%4~X>3=l2L|S*^sf@?E!j(m0sRdMH)dq5WQ^3Nl-&>(HGZ z?t)_!U4a7KqAKq z>L0xmY`ktvJLn-|tQm4-6tc6-=kfAt`MhYAGM8ac{VnGc4)Ett%#n`hgh=17_>Kb) znHW2cLLda4Y&zrhpkKzE0kx`PiR3(=+l_v~g>eC#GWU&mD7SbKSk^NkTj+kdeF~y? zWhd(~pw<};RX!ul-?>!hgqG%*@3gUxRX%&#rM(3gNvi#V>+kP&mS{?eg6f9Tut+JS z;&G0%s98V(j%#IOCGTzkuIk%Q?@Jk;sMADL3Ym4)y@@ zoQC1V?k+N^Nu)LuLJP(F!C+fw%2?g>JgI%759{9n2#Wbdw@|sEbMd(|Bn-{oN@o?A zqTorxvQ=N6>^!Wx{l*K@9r#(i!+rmZn<7@GlfpQZtnC4|ZHJ_su*w+RV7QLvh;gAlT?G zc93jUEH?q0CR3gbpx+q|H3Qg2vKRwN_oo>})Eqh&OzbB4H}Ls6E-sg8 zn>M>4*pmrd3Tk-dqs`J}+3Lbj*BL|C-#V#ORDhR^*P#+8pXI^aQF?BOO`1ZNEvx@8 z!u-L}TBD%YBy=Z6Cn=lg3BS^$xh8So(PN6~@LbGvp{mcZ7@u*%Tw!>C<7kEzJhQwv z^R|w-ire$7L`HNd_c%kEX=U<>9Z%DG|{$$8CW$d+lV$2>4uQc z1;t6d7c0`tk4P?&pLlIfI_7h@ips}Zvq@pKw%_Q9-=TdvT{3$6F{gYD7g+!CHov3qCRUl!Hm;*mlN%HUGl~mtor17?YZ@fghaqB zY;Bxrk#2xuW_^!#R1G$7pD}?K??#`Y6$tnK56+ij+9ZwWAvjp+FO=#Py0zzP)+UOw z8@IsuuaGw-{u?0IHAr+PIfFUW6m zgXR^}e2`#X#;L_#ZVK`m)B4rc=~mZ=%9P)XBM46z4IPq7AwWv>PLz(AI@)F`8g`}l zEK3!eTdUcn?qV6OrtUmQ?fJ!&FbJ61z5<2!XG*&;ONWl0p6%)uxnQce!k;ytE?a32 z%nmSCCZ-btV-SWxsm81Gw3Sq``u>y;AcL}4 z>{C1aM3Prh`<|bsM{8s9wJ^c$>=hJ8LOKFNW;M8#fC#p)0DXQzDTXtMiWxQ<;Ps5E z+JNjwI*P}Sxjm&z>M?WDqzPH#EvJGFu2{nC&ot|=Ec9X&%mzfg1Gzk+jAjyk4;qeIg<$lOP=q6?KV9V`~_AgJW)1ok_j`mEJ0HMJQi@D5+YMPH$iT;;w7V^UQ>x^dR0JsBDd{(`vxr2bq1nb?9@!Y7f55Q~Y;qe7s=hXDUY$VVb( z_k1esp{w~-KZ!`ccY_apa}Cl}RPl`F9pj1F-Ce1Y!zRV9l?cx}b-nTzVSI6Pjr!S- z505t=L3Teziy#mKGf2sSXZKM0bGxL0OZ^x5YXQCui0LjZ0h ztj#zcE5eyPsvX(&%c|zCwkCnc?riABW=(g_{ZtR#Hoa%cT9Q}Hq3yVWRaY|ib3TY{ ziYyYnDiLFwf?UypmkIU-kFTKbjl4W3*a^X~#1X+?BA$Wtq{@eEjXb(ZQjn~jJtJ4G zZkfv+X~I=k1N8ccw5AnDSD5TT*@tG5uUg*b{JBjxz|=ZWs~H$nnJ&>0qd{!?qd()! zn2=jYFpP}P^jCRjj4H6kq%%NB^ z`2|H{fYfka#wgRAgVhz0m|GT@8GVh@xBdNo0xB0);8t{QQkT2`WxD6#cVI_d47Z>0 z$J|?!@+cT!GPo1EquImL)1NB+W(m;u*E^dQz-ZcAJ3XQ}24QsS?+mhxx{bazjj^6G zxX%S&3*TH0KihGwEQ4p^&j8L_R6-#<#^s=A$~}c59_vouorX3}Qo%&ZM!au!45NC! zJwm9gw6)DxEGg2g@t%E;C19pP>WuJ96&ChZ0iibp)9d(U5gAFo4jE4N)+Fq+8o1Yy zkUKY0Npqv(vYCV-6%|d(w8&ZMA*magaE{_YJdP)U_*~JWYEtfLu5wkmc)CA5RAN%r_xNMqa7k9P?Esj`gg!!*p0kNUPx(vWes(6kwA!L674m*jL-azNub_L9r zp`5oi?RQdNYBS_iqWjoZ&u;W5Z@?GjY6EGNGHmMal{SYjNjfgc#-W;x+g+J4=1;4R zhoH^e1eB8kOHCzh+OX0@ZZ~EeovfKZk5u6x&Z^A?jQT3|+LVoVNSovl@xr6$HoDF& z4n8@<-+L=n=bdB8; z6Vd6sbd|HFqtY5}C*Rwi)TCj-EU_;g8dL_v+S0g|?D_DV@OF#+dC% z?bP^_T-W+?!p-uSaiM)Y?%B%{{Iba_vkuI0E}W03gmLR!R#!cu`vt*}_oU3R^mY_z z-s)>~iK;Q7gTKJ#JaKO(-AP4s^r)lT@9+sewxV%kB-NWp{#<`X)ALLtYNj`b78EUP zVJ<55vT#==UXOj7Y6JtYyN#Pun&%KMpnOgpEYrs4lR@d9W2#f?qejX1T}t;&@LZO1J8=WNZtqm_H4rVQV+*K@Y`Xg-_}LWZ+yfJ+AnWuIEU*&nDtr|UJ6sQ+pW#SezT|O)tVLfzagZy^x!zWdG!k8G-{>Y`kh8^RXD`YNivfPZ4)8fUhJ+5G2g?99ap zDE#_sITt;<7*kdg=bA^jmZQPZ*gum9@4Me5U`!K_W@ttYO4#&G!>l4$l37=H7nxj( zVd;ST|8CGlFuDeti{UdK5b%vc*YT*r3kqkjR4RaI#ZbL@qM9*0;w))lcsaU+w6?9( z2J&fL!df)0F6N!+NHKhCp{widm7L}enIhfrA_y74d#`0xRhzko`|jk7$M8vQdUwUu zsB2zOEIeFdG2# zdPJ!fFJ}5Y!A1x6+NUoHZ8ns4YYqQ zZt})RdSHLQkksQU zThW4kLO3>CO;_WUb7o~jrfdy?Y^oQ4igZeJH-E%vvs!s3qP=)w%FQ)3?vk$x45o&@ zWcpDm=Wc)?e`nH%u+T=S=PK zZT*#}%Sq|sO?%S(o#78Czz1~N@rGohZ;%?^6NTz|Y>&_NdHQtMouc8Z=u!gVx~o=L zEsVp}scV5&@q2Q~5?|yi+k-F1rFvGY(=tP@8Y`>JlXE;1nAN1^XVkb7*A1O5uD<9c~CULTAoxx6uF}`z?5TS z^TY(8$0tQ(tG#gNKATLZ3tOzH+vzXLb?p*d#5^cFtp4T%+cSug<8VPZg!m~hF>ci4 z)s&lI3AVIqZHPMCy3oXQl7OCfo!yC7a#=;Ib!1-!tq)*_x@zRj>bfsk2vxS+_%Xih z9mf2egFNxf6n5yHRdJ$IiG8Q1U{!zg@r!Lz3|3LRQ-->l&nI-keY^F~`ZP_}0%`Cs ziShWsKWtw2EN=Me`!yV4esqIB75?_d9P{Mhpbc+h_d+#>PeC)F-8D}QHp(Q%&0@oG zHzD3BV3$E^3#Q^_lLU zemYZ89vzAX{)^i^@i8~v;!iTMw*FzMoN|2IaX6(s7((NzzRF2i0aoK)wOe8#w-`Bh zt_EYG4*+N-<8DdEk#aYB^rsB*YL^F+;oBDt91bGGt%@;)S4eeAD%YL~RF{rijv0qB$tM>7UxV9b+9P z{BJbK4>MMO6`(GLP=8{5SaPB)ik~IEcw@!j>+gv%h1NK1DqgL#OfNgQC;i}-{EyYf}T>tNHl1>Ohr$HH%FKq<-? z>Lr+-%nW_&J48YBVi0nl3c(iJH3ywH&j2Gg;>cmB#?kQgg$Iw>{P(kS_4!hATf#x- z#rqsHV01DDG|pWF|0Ghqq2iC7XfAX{`Q+0IgtOBf3tlsc6t#Z$;_(-tr25-CG0ZhF zfDBsR=R-x_F_1S2+ao#$X|BNEBNl2@90U63qM+^3+6N#kt9%on8E_g` zPF$KWtlLsGwJhV3V942^p5K25Gj4Sx&T3mN=zJH`(y$-Z6_nj#)M9bD1mMdo(JHa6 z6vA%II=Q>~*KlaTeEpWohrB^q*bFkc))4XW03G69Ng^d1@_&s^-hYmcgwRf?Yfm1~ zW?CQsu%6urG_ul~byRt!-&=jo-X27pHWRFXw7FORRGhsS(`}*c;bGMv)qqZl!Tw+g zipdjQP++!*0;TK<2$voMzL;`AgkkGhjs(};3QWP-K~es%Z!}^``g~U~3No8c@SV;= zg8X=_SvX$=@*6Az33$4J?@M@h_%<8$GkuI za(IUU>y|Ldzy5i|$jPX{@PqM#Wr~LVca!*EUwWB=g@Jc#@qSf{`}*^%>8HPo8UOs! z;A6qNg2VoPl5Y=oLJz`OzXpSUeqYV`h??8yRsVj%Zx0+L^yJ&L`PY}Gd>4iO@uTLb z`jkbc%&&9vpO?A{D>%}*@7o3b{)ANjZpnPR>#a{G*p2@;x#wSR6#O?>GVSLuL8JC_ zn6_uk&(-vGwf$U8+tK3xN6-`f<@TMu3Yj=~k!^}EFrADV2|ri$se~Me1R4&sZLH)0!FgO$4t?eNH`Imq4{qB?l{0E0y4?Dj|B)Xo0-6nE<0&3^s@+ZJGyVhnX$ z&VhdBL;8vPfAId5kdQjC^L3m)0|gYRwFyapaWMvp5L2O5CT6oBiN}L7%*AGbAO7z5 zQ%`HKlY4N=^znV+-k0QoSyc;(fI6@~1KnOM&^J1y%lqTyem`|9g~-_BIAjy4*$m`% zNS|#rJ37MA4?D zf$EI`|{KEdbU#J?8?7T@70C9daX~?WZ8ImKfljl*R+pkP_o= zPJ1=~bE~SUX%eY}XE}~5F?ye6>uTF}X7z1*mnf>L13NS>j-(IBEzX-u z&IdxV)6uL7K;wzCf(qFQx1X+nYIQt7gk&r_-ybQz*sa&X7Wny&hsqVG$PzFx=M_Zr zVxfzL;9?@DTmfb@JJR7(g5= zlER8~v4eswRZK2j`ZdWb@2_*mUrA6+>-&cDow3#olv_LZ8sEeT0wo}Gi`YvYkjZFS zZ@`2iSqM^=DzB13sUe55SH=K8!m`7Y$FuJm3!>U{hBOyycP5pBf-*i}Mpe>UDKi7P z9ryZ}tLT^mK@Ye5a?m!NO|gT_DaRljeGo+jY5E*@^%ri1E7d<3b=mghfE4f6em%eg zf-D_b!WM5Is7Rsc*TSM~TOg}0JgA>8CGK4Y{e-T{X!}@m&n$t8acyJ;Xa-o*QuKcx znbZw0awxX>Wu-3P=M6_v!G|KG%L<~weVbNK>k1gE5NkPn8Q{~EUuAj*3ZDbJ|SPX+?bI@0AZb8HLR@lx;tMQ$k zkniA{T!x3EiXmwP6T6{os2I*dssu_p3ukRr0?sZKh7;wND}S6U2q>Kclf{MsmHI@+ z=q$aI(enlj!9|hINz6t zT5s%&$BSAwX^_|6Yr7V!S*IYcuPOfDX&|eFL{Y+4MMA?#GME6wSj6QFIb|)@u`6BR z{ms057FO**%-+?|VPf()Lr|bl+B6KfFV=s22`t9ld+=CMjB6>-?s!Sx$oe4xt!Z_I z(plqEgeE{C!(uHEtM6mQmT9U=a}g}`05G83)638(wm=Nnvg)7~(_#DvGJt_H#N_B< zinD#!aau|%qxe!YVA(hpPM-|VX6gBQ!uYnlpun-kX|Qqt#RI#u6gU{F&7@7LwokJj z=enQM(IvzpkSLiQBqxJz2^RW{SKx#fCr>r`<4kQ2tWyl=?dS^kV?F~ltjW+bYXplm zLQl2nj{!5zUW#dlSOa6vK2@H=561BB0D3j#%M6|+C%5>}>RI{>neH@81%BtPyEcod zRcm5$f$6`?IPo{EcYy*z`vq#HI%h)1jr$v(#`^yei=w|h2F%g61#Akh+N+>xJ=j z*lYWdI;mTV2t?_ZNwkUyQ8_wPuhSN}!Sy6s2o1&Fm7bC+1I;b#L<+2jL{Iv!Ih|#_ zV+ce%WV0Dsx@gRqKJMJ((`L;#AGeDdeYZ=3S_r%ZMU4O0Z~{U$w}Z$)bBB{B2!Q>@ zl2I#;pk2UH9>^7PYPe~Xfx=F1#F#AQ((8YQa*3khzXKixh&ox^OaOaJE`<^ZlodKE z1%jkn{Y12`R(?W?n|`JOn|1gKum_Z;Q6Vo#;ZtpsI3Pe`t!!G(zwq@?|Bpq<->|(v zE-|1WYetFH=_?kix{HKlU>P}qph3_vUE>Sx)&ekEiow(b-Rv#Ew^b)#gBvLC?4tHk2#-~z zhrpKX7DR(=fhiPl5%K3)Y zu)9TLfX>{jwmkG7Az=IUDFB86G24KGqrLRLwph0aurz%;&CLEe$V^dcF`w)Qv42^H z1(`E$w*wENPS7O3}&ULG)Zo&(2z{OT(7 zWGslyG4Y@>sbkqotH4w);57x}_!xvIj~cM+&R=17du%}i-f}^&PZWXu{Ds||g9|qT zbQ4fu>pvJ8#=-NqfO|&<6aXA3-N4KkSA;M~?`^Yy1q8|id8C$FzNLcTVJYS$9=E_1 zPz5pqF`^U?5V+qyPi+%YdeBUk2jZf%PG<4eCMW!tQ82 zZQu8i%~DBULS2C>idbAs+#K)|rxCNz=fKN404o#&%3^pRtmMTRs~rzvJzCGFA-wBm zt484`* zkb0|Ry1(RCtxmT;#F0*c1|qU6AY`z4w89#bmfs2%)6f3rv~1Y%N`}K2>NhF_B7!Z4 z*IyrIJu{tMtVbRgUMk*oJlLLkW#0GUgg3L79h5uy5Y_%%a_5G@Wg zP+fs|R%^ww4eO9bqDRK1{|I*Q!&}3l(Wd{Zw{q4afC5+*b9fNzqd-EE9_j6X{|(-^ z(Re&u1fuTS6)tEPQ~;i53)JEQuh@X%m2pE*t2Liqn9}NGyNMCx)jP4=Ywl&f0&=+i zl}-3^K->s&BUj@+D{e97^UyGJ@ltF$Tt7)QTX4<%U1jW`^^?i{X=Ah z()^$B$=4YD6Xp7PR{e=`ZOw?EVB}X6;3sCheJuEi8E*pwKcW4vDAxbu3XC-?{jf$8 X$|aiaoB=wqcc@*~x|Dap^7j7$!cHPq literal 0 HcmV?d00001 diff --git a/_og/ff5c094994ec6a35ff6c61fe54c2eccca9966a3b.png b/_og/ff5c094994ec6a35ff6c61fe54c2eccca9966a3b.png new file mode 100644 index 0000000000000000000000000000000000000000..e93d966192ffa8e1d891892bcf81fa167b620186 GIT binary patch literal 40552 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

`nQ&g2((u&wQy$iJcmWO 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 literal 0 HcmV?d00001 diff --git a/_og/925054aeb1340d93aef9709bd95ecf5435f420f0.png b/_og/925054aeb1340d93aef9709bd95ecf5435f420f0.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d8ec29fe36ef00873b7e7df97e8df0ab8c1ac3 GIT binary patch literal 47750 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